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 apply
para 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";