Actualizaciones automáticas en Ubuntu

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

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

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

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. APT::Periodic::Update-Package-Lists "1";
  2. APT::Periodic::Download-Upgradeable-Packages "1";
  3. APT::Periodic::AutocleanInterval "7";
  4. 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

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"

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

8 Respuestas

  1. ks7000 dice:

    Muy importante vuestro artículo: mi preocupación en los equipos en producción son los reinicios necesarios (pero eso aplica a las actualizaciones de kernel y Ubuntu tiene «Livepatch» como servicio de pago).

    Voy a revisar esto de instalar las actualizaciones automáticamente de seguridad porque recientemente estuve casi 7 días sin conexión a Internet por mi principal ISP y es necesario automatizar ciertas tareas; os dejo el guion con alias que utilizo actualmente para la tarea de marras:

    touch ~/.bash_aliases
    echo «alias actualizar=’sudo — sh -c \»apt update && sudo apt upgrade -y && cat /var/run/reboot-required\»‘» >> ~/.bash_aliases

  2. Añadir que al hacer siempre actualizaciones automáticas de todo el sistema, se corre riesgo de que el sistema se acabe rompiendo a la larga. Hay algunas actualizaciones que pueden requerir intervención manual porque sobreescriban ficheros de configuración ya existentes o por otros motivos. En este caso, por ejemplo, se podría configurar la aplicación reseñada para que no se instalara el paquete y se avisara al usuario? Además, también es bueno leer las notas de las actualizaciones porque pueden tener información útil para prevenir errores al actualizar.

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.