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
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:
apt-get -y update
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:
nano /etc/apt/apt.conf.d/50unattended-upgrades
La sección donde veremos los paquete que se actualizarán es:
Unattended-Upgrade::Origins-Pattern {
// ...
};
Si queremos recibir notificaciones por correo debemos descomentar la siguiente línea:
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:
dpkg-reconfigure -plow unattended-upgrades
Vemos la imagen:
A la pregunta contestáis que sí.
Si hacéis una vista al fichero veréis el contenido:
APT::Periodic::Update-Package-Lists "1";
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:
nano /etc/apt/apt.conf.d/02periodic
La configuración habitual es la siguiente:
// Control parameters for cron jobs by /etc/cron.daily/apt //
// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";
// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";
// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";
// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";
// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "21";
// Send report mail to root
// 0: no report (or null string)
// 1: progress report (actually any string)
// 2: + command outputs (remove -qq, remove 2>/dev/null, add -d)
// 3: + trace on
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:
[apt]
frontend=pager
email_address=root
confirm=1
save_seen=/var/lib/apt/listchanges.db
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
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)
EMAIL="nuestro-correo@dominio.com"
DIFF_ONLY="1"
LISTCHANGES_PROFILE="apticron"
SYSTEM="**HOSTNAME.OF.SERVER**"
NOTIFY_HOLDS="0"
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.