Configuración básica en Ubuntu 20.04 server
Una vez importada la máquina virtual será necesario realizar una configuración básica que incluya:
- Modo del adaptador de red en VirtualBox (NAT o puente).
- Configuración de la red en el sistema operativo con Netplan.
- Nombre de equipo: hostname.
- Configuración de la zona horaria.
- Actualizaciones automáticas.
Configuración de la red en el sistema operativo con Netplan
Ubuntu 20.04 utiliza Netplan para configurar la red en el sistema operativo. Netplan configura los parámetros de red del host a partir de ficheros de configuración YAML.
El directorio de configuración de Netplan es: /etc/netplan
En su interior el instalador de Ubuntu habrá dejado el fichero de configuración diferente según se trate de la versión de escritorio o de servidor.
| Sistema operativo | Fichero de configuración en /etc/netplan | Backend |
| Ubuntu 20.04 Desktop | 01-network-manager-all.yaml |
NetworkManager |
| Ubuntu 20.04 Server | 00-installer-config.yaml |
Systemd-network |
En estos ficheros es muy importante utilizar espacios para sangrar los elementos del fichero de forma adecuada. Netplan puede utilizar NetworkManager o Systemd-network. En la versión de escritorio se utiliza el primero y en la de servidor el segundo.
En Ubuntu 20.04 Server resulta muy sencillo especificar que una interfaz de red debe configurarse automáticamente mediante DHCP.
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
dhcp4: true
version: 2
Y también especificar una configuración de red con un IP fija.
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.254/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
version: 2
Cuando se haya editado de configuración de Netplan se puede:
- Utilizar el comando
netplan applypara aplicar la configuración. Si se detecta algún error en el fichero se indicará. - Reiniciar la máquina para que arranque con la nueva configuración. Si hay algún error en la configuración de Netplan la máquina arrancará sin configurar la red.
Se puede obtener más información sobre Netplan en: https://netplan.io/
Directiva routes en lugar de gateway4
Las versiones actuales desaconsejan el uso de la directiva gateway4. En su lugar se aconseja el uso de la directiva routes que permite añadir la ruta por defecto o cualquier otra ruta.
En este caso, la configuración anterior podría ser:
# This is the network config written by 'subiquity'
network:
version: 2
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.254/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
Nombre de equipo: hostname
En un equipo de red conviene configurar el nombre de equipo (hostname) para poder identificar de manera adecuada al equipo.
Fichero de configuración: /etc/hostname
Bastará con editar el fichero y escribir el nuevo nombre del equipo.
Las herramienta hostname muestra el valor actual:
usuario@laika:~$ hostname
laika
usuario@laika:~$
Y la herramienta hostnamectl permite consultar y modificar el hostname y otras informaciones relacionadas.
usuario@laika:~$ hostnamectl
Static hostname: laika
Icon name: computer-laptop
Chassis: laptop
Machine ID: 42b940a893ab4089912138fe2f0a751b
Boot ID: 0923046719e449eb943a7863b4b8d1c2
Operating System: Ubuntu 20.04.1 LTS
Kernel: Linux 5.4.0-48-generic
Architecture: x86-64
usuario@laika:~$
Finalmente vale la pena recordar que el fichero /etc/hosts contiene una lista estática de nombres para algunas direcciones de red. Si se cambia el hostname se deberá actualizar este fichero.
127.0.0.1 localhost 127.0.1.1 laika # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Configuración de la zona horaria
Los equipos Unix suelen tener su reloj con la hora UTC y además tienen configurada la zona horaria para poder mostrar al usuario la hora local. Si un equipo no tiene bien configurada la zona horaria se mostrará una hora equivocada al usuario.
En Ubuntu (que es un derivado de Debian) se puede configurar la zona horaria con el comando: dpkg-reconfigure tzdata
Una vez configurada la zona horaria el comando date mostrará la hora indicando la zona horaria utilizada:
usuario@laika:~$ date
lun 28 sep 2020 19:30:31 CEST
usuario@laika:~$
El comando timedatectl mostrará la configuración relacionada con la fecha y la hora del equipo.
usuario@laika:~$ timedatectl
Local time: lun 2020-09-28 19:32:12 CEST
Universal time: lun 2020-09-28 17:32:12 UTC
RTC time: lun 2020-09-28 17:32:12
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
usuario@laika:~$
En la salida de este comando se puede apreciar que se está utilizando el protocolo NTP para sincronizar la hora del equipo con una referencia horaria a través de la red.
El comando timedatectl timesync-status nos mostrará información sobre la sincronización horaria con NTP.
vcarceler@baba-yaga-2004-v2:~$ timedatectl timesync-status
Server: 192.168.0.10 (192.168.0.10)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 2
Reference: C035676C
Precision: 1us (-23)
Root distance: 22.086ms (max: 5s)
Offset: +615us
Delay: 914us
Jitter: 559us
Packet count: 567
vcarceler@baba-yaga-2004-v2:~$
Si se quiere configurar un servidor NTP se puede utilizar chrony: Introducción a NTP con chrony.
Actualizaciones automáticas
En Ubuntu 20.04 hay un sistema que aplica automáticamente actualizaciones de seguridad. Esta es una práctica conveniente y en una máquina en producción conviene dejar activadas las actualizaciones automáticas de seguridad.
Pero en el aula, cuando únicamente se quiere realizar una práctica resulta molesto intentar instalar un paquete y descubrir que no se puede porque se están realizando actualizaciones automáticas. Así que probablemente en el aula resulte conveniente desactivar las actualizaciones automáticas.
Afortunadamente es muy sencillo. Será suficiente con editar el fichero /etc/apt/apt.conf.d/20auto-upgrades y dejar su contenido tal y como se muestra:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
