Cómo asegurarse de que sus servidores Ubuntu estén siempre parcheados
Mantener tu servidor actualizado es muy importante. Linux y el software de Linux se actualizan constantemente, tanto para recibir actualizaciones de seguridad como para corregir errores. La aplicación rápida de parches lo ayuda a evitar ser víctima de errores de día cero.
Gestión de parches
La gestión de parches se refiere a sus prácticas para actualizar servidores. Una buena administración de parches significa que todos sus servidores se actualizan rápidamente en respuesta a los parches de seguridad, tanto en el kernel y el sistema de Linux como en el software que está utilizando.
La seguridad comienza con el administrador del sistema; debe realizar auditorías periódicas de seguridad y actualización, y mantenerse actualizado sobre la información de seguridad. La mayoría de las distribuciones de Linux tendrán listas de correo de seguridad a las que puede suscribirse. Estos le enviarán notificaciones cada vez que haya nuevos parches disponibles. Otro software que use puede tener sus propias listas de correo o requerir que realice un seguimiento manual, para que pueda decidir cuándo se necesita una actualización.
El tiempo de actividad es importante, pero si su red es tolerante a fallas (es decir, tiene más de un servidor), reiniciarlos uno a la vez no debería ser un problema. La mayoría de los parches para el software de la zona de usuario no requerirán que reinicie todo el sistema, aunque si un servicio en ejecución necesita actualizarse, generalmente tendrá que reiniciarse. Para algo como nginx, eso puede estar bien, pero ciertos servicios, como MySQL, tardan mucho en reiniciarse porque deben apagarse y reiniciarse correctamente. Debe evitar reiniciarlos tanto como sea posible, especialmente si no tiene servidores de conmutación por error.
Actualización regular y manual
Para muchas personas, un simple comando de actualización y actualización hará el trabajo de actualizar el servidor:
sudo apt-get update && sudo apt-get upgrade
El comando apt-get update
actualiza la lista de paquetes y obtiene la información más reciente sobre las versiones más recientes de los paquetes que ha instalado. El comando apt-get upgrade
instalará nuevas versiones del software que ya tienes instalado.
Esto no instalará nuevas dependencias y no instalará algunas actualizaciones del sistema. Para eso, necesitarás ejecutar:
sudo apt-get dist-upgrade
que realizará una actualización mucho más completa. Cualquiera de los comandos instalará todas las actualizaciones nuevas e imprimirá una lista de lo que ha cambiado. Algunos servicios pueden requerir un reinicio de ese servicio para aplicar los cambios, pero normalmente no tendrá que reiniciar todo el sistema a menos que dist-upgrade
lo requiera.
Este proceso es fácil de realizar si solo tiene unos pocos servidores, pero la administración manual de parches requiere más tiempo a medida que agrega más servidores. El propio servicio Landscape de Canonical le permitirá administrar y actualizar sus máquinas a través de una interfaz web, pero solo es gratuito para 10 máquinas, después de lo cual requiere una suscripción a Ubuntu Advantage. Si su red es particularmente complicada, es posible que desee buscar un servicio de orquestación como Puppet.
Parches de seguridad automáticos con actualizaciones desatendidas
La utilidad unattended-upgrades
aplicará automáticamente ciertas actualizaciones de seguridad importantes. Puede reiniciar el servidor automáticamente, lo que se puede configurar a una hora determinada para que no se apague a la mitad del día.
Instale actualizaciones desatendidas
desde apt
, aunque es posible que ya esté en su sistema.
sudo apt update
sudo apt install unattended-upgrades
Esto creará un archivo de configuración en /etc/apt/apt.conf.d/50unattended-upgrades
, que querrá abrir en su editor de texto favorito.
Asegúrese de que la configuración sea la siguiente, con la línea seguridad sin comentar:
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";
};
Esto activa las actualizaciones automáticas para las actualizaciones de seguridad, aunque puede activarlo para todo descomentando la primera línea.
Para activar los reinicios automáticos, elimine el comentario de esta línea y cambie el valor a verdadero:
Unattended-Upgrade::Automatic-Reboot "true";
Para establecer una hora de reinicio, elimine el comentario de esta línea y cambie el valor a la hora que desee.
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
La configuración predeterminada hará que su servidor se reinicie a las 2 AM si hay parches de seguridad que requieren un reinicio, aunque esto será algo ocasional y no debería ver que su servidor se reinicia todos los días. Asegúrese de que sus aplicaciones en ejecución estén configuradas para reiniciarse automáticamente al arrancar.
Alternativamente, las actualizaciones desatendidas
pueden configurarse para enviarle notificaciones por correo electrónico indicándole que reinicie manualmente el servidor cuando sea necesario, lo que evitará reinicios inesperados.
Livepatch canónico
Canonical Livepatch es un servicio que parchea automáticamente su kernel sin necesidad de que su servidor se reinicie. Es gratis para hasta tres máquinas, después de lo cual necesitará una suscripción a Ubuntu Advantage para cada máquina.
Asegúrate de que tu sistema esté actualizado e instala Livepatch a través de snap
:
sudo snap install canonical-livepatch
A continuación, deberá obtener un token Livepatch de su sitio web. Una vez que lo tengas, puedes ejecutar:
sudo canonical-livepatch enable TOKEN
Luego, verifique que esté funcionando correctamente con:
sudo canonical-livepatch status --verbose
Tenga en cuenta que la imagen predeterminada de Ubuntu en AWS actualmente no es compatible con livepatch, porque AWS usa su propio kernel para obtener un rendimiento adicional. Tendría que volver al kernel anterior o instalar una versión diferente de Ubuntu si quisiera usar Livepatch.