Actualizaciones automáticas de seguridad en GNU/Linux
Algo que es extremadamente importante en un servidor GNU/Linux es mantener el sistema actualizado. Esto permite mantener el sistema seguro, parchando vulnerabilidades.
El problema con las actualizaciones es la posible inestabilidad. Si bien las actualizaciones de seguridad no suelen introducir errores (nótese el resaltado "no suelen"), las actualizaciones de versión pueden requerir interacción humana. Es por ello que no es recomendable actualizar automáticamente un sistema. Imaginense si una actualización del apache requiere instalar un nuevo archivo de configuración que pisa el archivo donde habilitamos SSL... en estos casos el sistema suele preguntar si deseamos pisar el archivo actual o bien dejarlo. Si la actualización es automática, no sabremos qué hará el sistema, tal vez por defecto lo pisa y perdemos nuestra configuración! Una actualización incorrecta de libc puede dejarlos con el sistema totalmente inutilizable (no anda ni un "ls", lo digo por experiencia...).
Existen formas de automatizar la instalación de nuevas versiones (ej usando cron), pero por lo explicado anteriormente, no es recomendable.

Como dije, las actualizaciones automáticas de versión son muy peligrosas, así que las dejaremos de lado para hacerlas cuando estemos seguros. Lo que sí podemos automatizar es la instalación de updates de seguridad, algo que nos dejará tranquilos sabiendo que el sistema se mantiene al día con la seguridad. Para este proceso existe una herramienta llamada unattended-upgrades, la cual descarga las actualizaciones de seguridad (si existe alguna), y las instala. Si la actualización requiere interacción, no la instala, dejando el trabajo al usuario. unattended-upgrade en sí es un script escrito en python que se ejecuta a través de cron (ver /etc/cron.daily/apt).
La instalación de esta herramienta es tan simple como ejecutar:
# apt-get install unattended-upgrades
Una vez instalado unattended-upgrade, debemos configurar el intervalo de tiempo (en días) para que se realicen los upgrades. Esto lo hacemos en el script que ejecuta cron (/etc/cron.daily/apt), cambiando las variables UpdateInterval y UnattendedUpgradeInterval. Por defecto estas se encuentran en 0 (deshabilitada), yo las pondré en 1 para que se ejecute todos los días:
UpdateInterval=1
UnattendedUpgradeInterval=1

Pueden ver los logs de esta aplicación en /var/log/unattended-upgrades/. En las líneas que dicen "Packages that are upgraded" se listan los paquetes que se instalarán automáticamente, y si luego ven "All upgrades installed" es que todo fue bien.
También se encontrarán con líneas del estilo "package <paquete> not upgraded" que indican los paquetes que tienen actualizaciones disponibles pero que no se instalarán automáticamente (por el ya mencionado riesgo de hacerlo). Si desean instalar estos paquetes, deberán hacerlo a mano.

Vengo usando este sistema de actualizaciones automáticas desde hace un mes y no he tenido problemas, espero que les resulte de utilidad.

0 comentarios:

Publicar un comentario