Actualmente Ubuntu es una distro de referencia en Linux, basada en Debian, cuando nació, allá por el 2004, cogió fama por su acercamiento a los usuarios menos experimentados, así como por una facilidad de uso mayor frente a otras alternativas, su lema lo dice todo: “Linux para seres humanos”. Y es que entonces, la cruda realidad era que instalar o administrar un Linux no era para cualquiera, requería formación y sobre todo una constancia para poder terminar configurando aspectos, que hoy en día resultan baladí.
Aún recuerdo aquellos años, en los que me pegaba con Debian día sí y día también, para configurar las X, obtener drivers de tarjetas de red, o en los que recompliaba el kernel a mano para obtener un soporte adecuado del hardware. Un tiempo en el que la instalación de una simple impresora suponía un par de horas pegándose con ficheros de configuración y buscando controladores PPD en la red, y eso sin el internet tan completo de hoy en día, donde prácticamente es imposible no encontrar lo que estás buscando.
Se puede decir, que Ubuntu nació con el objetivo de mejorar determinados aspectos de Debian, un auténtico referente en robustez y funcionalidad, tratando de proporcionar un sistema operativo más sencillo de implantar, configurar y usar en el día a día, además incluyeron herramientas extras para facilitar tareas como la gestión software o dispositivos del sistema.
Todo ello rodeado de una buena campaña de marketing, envío de medios de instalación gratuitos, pegatinas (aún debo tener alguna por algún sitio)… y bajo la batuta de un inspirado Matt Shuttleworth, que independientemente de críticas, sobre todo del sector más purista del open source, sin duda ha conseguido dejar huella en el mundo tecnológico.
A día de hoy, Ubuntu aún no ha podido triunfar a nivel de usuario, y es más que probable que nunca lo consiga, a pesar de todo por aquí hemos hablado de las bondades de Linux en nuestro escritorio en alguna ocasión: https://ciberseguridadtotal.com/linux-es-guay/; Sin embargo si lo ha logrado a nivel de servidor, y de qué manera.
Por ponernos en perspectiva, casi el 14% de los servidores web de todo el mundo usa Ubuntu por debajo: https://w3techs.com/technologies/details/os-ubuntu, pero lo más importante, Ubuntu ha sabido posicionarse en el nuevo entorno de computación en la nube, de modo que es protagonista absoluto en los marketplaces de referencia como puede verse en estadísticas como las de EC2 de Amazon: https://thecloudmarket.com/stats#/by_platform_definition, y además se entiende perfectamente con Microsoft, de modo que no sólo destaca en la nube de éste gigante (Azure), sino en el resto de sus servicios (por ejemplo WLS: https://ubuntu.com/wsl), y por último, es igualmente protagonista en las infraestructuras basadas en contenedores, todo ello enmarcado en el boom actual de dispositivos IoT, del que hablamos en: https://ciberseguridadtotal.com/iot-estamos-listos-para-conectados-al-mundo/.
En todo caso, el objetivo de este artículo no es profundizar sobre Ubuntu, el preámbulo anterior simplemente es para posicionarnos un poco en el contexto, y para recomendar este maravilloso sistema operativo, especialmente en entorno corporativo, a quienes aún no lo conocéis o habéis trasteado con él.
Vamos al lío…
El objetivo, es mostrar cómo podemos hacer que nuestro servidor Ubuntu se mantenga actualizado de modo automático.
Y es que como hemos repetido en muchas ocasiones, mantener los sistemas actualizados es una de las medidas primordiales para que se mantengan seguros ante ataques, sean del tipo que sea, reduciendo drásticamente las brechas de seguridad existentes.
En entorno Windows, y a nivel corporativo, tenemos WSUS para garantizar la actualización de los sistemas operativos, y en lo relativo al programas, disponemos de distintas opciones, algunas gratuitas como las que comentamos en: https://ciberseguridadtotal.com/tu-software-siempre-actualizado-ninite-chocolatey-y-patch-my-pc/
¿Y en linux?
Pues Unattended-Upgrades, incluido nativamente en Ubuntu (y por supuesto Debian), nos permitirá de un modo sencillo automatizar la aplicación de actualizaciones en nuestro servidor, incluyendo sistema, software y kernel.
A continuación, indicamos cómo. Señalar no obstante, que esta pequeña guía, está orientada a la última versión estable de Ubuntu server: 20.04, para otras versiones el proceso es similar, y en todo caso documentación hay más que suficiente en internet
paso i. Lo primero, instalamos dependencias:
sudo apt update sudo apt install unattended-upgrades update-notifier-common
paso ii. Posteriormente, configuramos Unattended-Upgrades editando el fichero: /etc/apt/apt.conf.d/50unattended-upgrades. A priori vale con incluir o descomentar las siguientes directivas:
Habilitamos las actualizaciones, como mínimo las estándar:
"${distro_id}:${distro_codename}-updates";
Ahora indicamos que elimine los kernel y dependencias en desuso, y que reinicie el equipo si es necesario (orientado a actualizaciones de kernel), también podemos definir la hora de reinicio (de madrugada puede ser buen momento). Importante, con Live Patch podemos aplicar actualizaciones sin reinicio, incluyendo el propio kernel: https://ubuntu.com/security/livepatch, merece la pena echarlo un ojo:
Unattended-Upgrade::Remove-Unused-Dependencies "true"; Unattended-Upgrade::Automatic-Reboot "true"; Unattended-Upgrade::Automatic-Reboot-Time "05:00";
paso iii. Programamos las actualizaciones a través del fichero /etc/apt/apt.conf.d/20auto-upgrades. El concepto del fichero es sencillo, mostrando el tiempo en días. En el siguiente ejemplo, actualizamos 1 vez a la semana, y realizamos labores de limpieza cada 2 semanas:
APT::Periodic::Update-Package-Lists "7"; APT::Periodic::Download-Upgradeable-Packages "7"; APT::Periodic::AutocleanInterval "14"; APT::Periodic::Unattended-Upgrade "7";
paso iv. Configuramos un aviso por correo (opcional). Podemos indicar que el equipo nos remita un correo electrónico con el resumen de acciones de actualización realizadas, si ha reiniciado, etc. Para ello simplemente debemos añadir las siguientes directivas en el fichero /etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Mail "nuestra-dirección-de-correo";
Como es lógico, lo anterior requerirá que dispongamos de una utilidad de correo, tipo postfix, habilitada y funcional.
paso v. Probamos que todo va bien con el siguiente comando:
sudo unattended-upgrades --dry-run --debug
También podemos revisar si va la cosa bien, en el fichero LOG /var/log/unattended-upgrades/unattended-upgrades.log, dónde se incluirán las acciones llevadas a cabo en una ejecución de la actualización automática programada.
En definitiva, los pasos son sencillos, es posible ampliar información en internet, y complementar el sistema con Livepatch, pero en todo caso y aquí va lo importante, es fundamental tratar de mantener los sistemas actualizados, y Unattended-Upgrades puede ser una gran ayuda si usamos Ubuntu en nuestros sistemas.