Actualizaciones automáticas en Debian y Ubuntu

En muchos casos me he encontrado con sistemas en los que sólo deseo actualizar los paquetes de seguridad. Hasta ahora lo hacía de tal manera que debía modificar los ficheros fuente ubicados en /etc/apt/sources.list para dejar sólo los de seguridad, pero ésta solución nunca me parecio correcta. Hoy veremos el uso del comando UnattendedUpgrades que hará el trabajo por nosotros, ya que actualizará sólo los paquetes de seguridad pendientes, de forma automática, e incluso nos lo puede notificar por correo. Recordemos que éste tutorial es para sistemas Debian y derivados, como Ubuntu, LinuxMint, etcétera

debian-world-conference

Sobre UnattendedUpgrades

El propósito de éste fabuloso programa, que nos puede ahorrar mucho tiempo a los administradores de sistemas GNU Linux, es mantener el sistema al día con lo último en seguridad (y algunas cosas más) de manera automática. Si lo vamos a utilizar, necesitamos de algún medio para controlarlo, uno de ellos es instalar el paquete apt-listchanges, que nos enviará mensajes de correo electrónico cuando se realicen cambios.

La instalación de ambos paquetes es muy sencilla:

  1. apt-get -y update
  2. apt-get install unattended-upgrades apt-listchanges

La configuración del programa unattended-upgrades la encontramos en la carpeta /etc/apt/apt.conf.d/ en el fichero 50unattended-upgrades

En principio no es necesario modificarlo. Si queremos modificar alguna parte  lo podemos hacer con nuestro editor favorito:

  1. nano /etc/apt/apt.conf.d/50unattended-upgrades

La sección donde veremos los paquete que se actualizarán es:

  1. Unattended-Upgrade::Origins-Pattern {
  2.     // ...
  3. };

Si queremos recibir notificaciones por correo debemos descomentar la siguiente línea:

  1. Unattended-Upgrade::Mail "root";

Automatizar las actualizaciones

Para que el programa funcione de forma automática debemos configurar el fichero /etc/apt/apt.conf.d/20auto-upgrades. El fichero lo deberemos crear con su configuración predeterminada, ejecutando el siguiente comando:

  1. dpkg-reconfigure -plow unattended-upgrades

Vemos la imagen:

unattended-upgrades-debian-01

A la pregunta contestáis que sí.

Si hacéis una vista al fichero veréis el contenido:

  1. APT::Periodic::Update-Package-Lists "1";
  2. APT::Periodic::Unattended-Upgrade "1";

De manera alternativa también podemos utilizar otro fichero de configuración. Ubicado en la misma carpeta, llamado 02periodic, lo debemos crear de manera manual:

  1. nano /etc/apt/apt.conf.d/02periodic

La configuración habitual es la siguiente:

  1. // Control parameters for cron jobs by /etc/cron.daily/apt //
  2.  
  3.  
  4. // Enable the update/upgrade script (0=disable)
  5. APT::Periodic::Enable "1";
  6.  
  7.  
  8. // Do "apt-get update" automatically every n-days (0=disable)
  9. APT::Periodic::Update-Package-Lists "1";
  10.  
  11.  
  12. // Do "apt-get upgrade --download-only" every n-days (0=disable)
  13. APT::Periodic::Download-Upgradeable-Packages "1";
  14.  
  15.  
  16. // Run the "unattended-upgrade" security upgrade script
  17. // every n-days (0=disabled)
  18. // Requires the package "unattended-upgrades" and will write
  19. // a log in /var/log/unattended-upgrades
  20. APT::Periodic::Unattended-Upgrade "1";
  21.  
  22.  
  23. // Do "apt-get autoclean" every n-days (0=disable)
  24. APT::Periodic::AutocleanInterval "21";
  25.  
  26.  
  27. // Send report mail to root
  28. //     0:  no report             (or null string)
  29. //     1:  progress report       (actually any string)
  30. //     2:  + command outputs     (remove -qq, remove 2>/dev/null, add -d)
  31. //     3:  + trace on
  32. APT::Periodic::Verbose "2";

Respecto a apt-listchanges

El fichero de configuración de apt-listchanges está ubicado en /etc/apt/listchanges.conf, con la siguiente configuración por defecto:

  1. [apt]
  2. frontend=pager
  3. email_address=root
  4. confirm=1
  5. save_seen=/var/lib/apt/listchanges.db
  6. which=both

Si nos fijamos se guardarán todos los cambios en una base de datos.

Configurar apticron para el envio de las notificaciones

Evidentemente para que nos lleguen las notificaciones necesitamos un programa que realice dicha tarea, para ello utilizaremos el programa apticron

  1. apt-get -y install apticron

Añadiremos nuestro cuenta de correo en su fichero de configuración /etc/apt/apticron.conf (Debian Squeeze) o en /etc/apticron/apticron.conf (Debian Jessie)

  1. EMAIL="nuestro-correo@dominio.com"
  2. DIFF_ONLY="1"
  3. LISTCHANGES_PROFILE="apticron"
  4. SYSTEM="**HOSTNAME.OF.SERVER**"
  5. NOTIFY_HOLDS="0"
  6. NOTIFY_NO_UPDATES="0"

Espero que el artículo haya sido de utilidad.

La mayoría de información la he extraido de la página Wiki de Debian.