En esta entrada os explico cómo habilitar las actualizaciones automáticas en Ubuntu, en unos pocos pasos. No hace falta que os diga la importancia tener asegurados nuestros sistemas informáticos, de hecho, hace poco os hablé de los 12 pasos para asegurar tu servidor Linux. Entre otras cosas, una de las partes más importantes, es tener todos los parches de seguridad al día.

Para ello podemos hacerlo de dos formas, la más habitual, por lo menos en entornos de producción, es de manera manual, coordinando dicha tarea con el correspondiente departamento de seguridad. La otra, generalmente enfocada para entornos de desarrollo, es de forma automática.

Actualizaciones automáticas en Ubuntu

En esta entrada vamos a ver cómo utilizar el paquete “unattended-upgrades“, ofrecido para distribuciones Ubuntu, para facilitar la instalación automática de paquetes de seguridad; aunque también existe la posibilidad de configurarlo para que actualice todos los paquetes disponibles, esto es, actualizaciones por mejoras, bugs o erratas.

Instalación de unattended-upgrades en Ubuntu

El paquete no viene por defecto instalado, (parece ser que a partir 18.04 sí) aunque esta disponible en los repositorios principales de esta popular distribución sudafricana.

1 sudo apt install unattended-upgrades sudo apt install unattended-upgrades

Configuración de unattended-upgrades

La instalación, por defecto, solo actualizará los paquetes de seguridad.

Su fichero de configuración está ubicado en la ruta /etc/apt/apt.conf.d/50unattended-upgrades , podemos ver su contenido.

En un primero apartado indica que repositorios va a utilizar:

1 2 3 4 5 6 7 8 9 10 11 12 13 // Automatically upgrade packages from these (origin:archive) pairs Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; // Extended Security Maintenance; doesn't necessarily exist for // every release and this system may not have it installed, but if // available, the policy for updates is such that unattended-upgrades // should also install from here by default. "${distro_id}ESM:${distro_codename}"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; }; // Automatically upgrade packages from these (origin:archive) pairs Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; // Extended Security Maintenance; doesn't necessarily exist for // every release and this system may not have it installed, but if // available, the policy for updates is such that unattended-upgrades // should also install from here by default. "${distro_id}ESM:${distro_codename}"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; };

Tal y como se observa, solo actualizará los paquetes de seguridad. Para que actualice otros, solo debemos descomentar las líneas correspondientes.

Además, le podemos indicar que paquetes queden excluidos de las actualizaciones:

1 2 3 4 5 6 7 // List of packages to not update (regexp are supported) Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; }; // List of packages to not update (regexp are supported) Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; };

Aquí podemos añadir los paquetes que nos interesen que no queremos que se actualicen.

En cualquier caso, para habilitar las actualizaciones automáticas, debemos editar el fichero /etc/apt/apt.conf.d/20auto-upgrades , y configurar las opciones de apt más apropiadas:

1 2 3 4 APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1"; APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1";

La configuración anterior actualiza la lista de paquetes, descarga e instala las actualizaciones disponibles todos los días. El archivo de descarga local se limpia cada semana. En los servidores actualizados a versiones más nuevas de Ubuntu, dependiendo de sus respuestas, el archivo mencionado anteriormente puede no estar allí. En este caso, crear un nuevo archivo con este nombre también debería funcionar.

Para comprobar que todo ha ido bien y que efectivamente las actualizaciones automáticas están funcionando correctamente, podemos revisar los ficheros de registros ubicados en /var/log/unattended-upgrades o bien en /var/log/apt

Habilitar notificaciones

Hace un tiempo, os hablé de Debsecan, y como nos permitía recibir notificaciones de los paquetes de seguridad, por correo, en distribuciones Debian. Pues bien, con Ubuntu podemos conseguir algo similar.

Para ello debemos añadir “Unattended-Upgrade::Mail” en el fichero de configuración de APT ubicado en /etc/apt/apt.conf.d/50unattended-upgrades , de esta manera se enviará un correo electrónico a un administrador destallando los paquetes que necesitan actualizarse.

Para que el envío funcione debemos tener instalado el paquete “mailx” y configurada una cuenta de correo.

En este aspecto, otro paquete útil es apticron, este configurará un trabajo en cron para enviar por correo electrónico a un administrador, información sobre cualquier paquete en el sistema que tenga actualizaciones disponibles, así como un resumen e los cambios de cada paquete.

Para ello debemos instalarlo:

sudo apt install apticron sudo apt install apticron

Una vez instalado el paquete, debemos editar /etc/apticron/apticron.conf , para configurar la dirección de correo electrónico, entre otras opciones:

1 EMAIL = "root@example.com" EMAIL="root@example.com"

Más adelante, en otra entrada, os explicaré como realizar los parcheos de seguridad de forma manual, en este sistema operativo de la compañía Canonical.

Para elaborar esta entrada, he consultado:

Help.ubuntu.com – Automatic Updates