Guía de tecnologías

Actualizaciones automáticas de seguridad en Ubuntu 16.04

7 min read Seguridad Actualizado 08 Oct 2025
Actualizaciones automáticas en Ubuntu 16.04
Actualizaciones automáticas en Ubuntu 16.04

Qué haremos

  1. Instalar unattended-upgrades en Ubuntu 16.04
  2. Configurar unattended-upgrades para actualizaciones de seguridad
  3. Habilitar las actualizaciones automáticas periódicas
  4. Comprobar paquetes actualizados y revisar registros

Requisitos previos

  • Ubuntu 16.04 Server actualizado
  • Privilegios de root o acceso sudo
  • Conexión SSH al servidor

Definición breve: unattended-upgrades es un paquete que automatiza la descarga e instalación de actualizaciones APT, especialmente útil para parches de seguridad.

Paso 1 - Instalar unattended-upgrades en Ubuntu 16.04

Conéctate por SSH al servidor:

ssh root@hakase-labs

Actualiza la lista de paquetes e instala unattended-upgrades:

sudo apt update
sudo apt install unattended-upgrades

Tras la instalación editaremos la configuración dentro de /etc/apt/apt.conf.d.

Paso 2 - Configurar unattended-upgrades

El archivo principal de configuración es /etc/apt/apt.conf.d/50unattended-upgrades. Edita con vim u otro editor:

cd /etc/apt/apt.conf.d/
vim 50unattended-upgrades

Definir tipo de actualizaciones

Para limitar las actualizaciones solo a parches de seguridad, deja comentadas las líneas generales y habilita la línea -security:

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";
 };

Pantalla de configuración de unattended-upgrades

Paquetes en lista negra

Si necesitas evitar que ciertos paquetes se actualicen automáticamente (por compatibilidad, control de versiones o motivos críticos), añade sus nombres a la lista negra. Ejemplo:

Unattended-Upgrade::Package-Blacklist {
        "vim";
        "mysql-server";
        "mysql-client";
 //      "libc6";
 //      "libc6-dev";
 //      "libc6-i686";
 };

Consejo: en servidores de producción, evita añadir bibliotecas críticas (como libc6) salvo que estés seguro de las implicaciones.

Configuraciones adicionales útiles

Para recibir un correo por cada ejecución, descomenta y establece la dirección:

Unattended-Upgrade::Mail "root";

Nota: necesitas tener instalado un agente de correo (por ejemplo sendmail o mailx) para que el sistema entregue mensajes localmente o hacia tu relay.

Instala sendmail si falta:

sudo apt install -y sendmail

Habilita eliminación automática de dependencias no usadas:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

Habilita reinicio automático si una actualización lo requiere:

Unattended-Upgrade::Automatic-Reboot "true";

Puedes fijar la hora de reinicio (formato 24 h HH:MM):

Unattended-Upgrade::Automatic-Reboot-Time "00:00";

Guarda y cierra el archivo. Con esto unattended-upgrades está configurado.

Paso 3 - Habilitar actualizaciones automáticas periódicas

Configura la periodicidad en /etc/apt/apt.conf.d/20auto-upgrades:

cd /etc/apt/apt.conf.d/
vim 20auto-upgrades

Contenido recomendado:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "3";
APT::Periodic::Unattended-Upgrade "1";

Significado rápido:

  • Update-Package-Lists: 1 habilita la actualización diaria de la lista de paquetes.
  • Download-Upgradeable-Packages: 1 descarga paquetes disponibles automáticamente.
  • AutocleanInterval: limpia el cache cada X días (aquí 3).
  • Unattended-Upgrade: 1 habilita la ejecución automática de unattended-upgrades.

Con esto, las actualizaciones de seguridad se descargan e instalan de forma automática según los intervalos.

Paso 4 - Comprobar paquetes actualizados

Revisar registros de unattended-upgrades

Los registros están en /var/log/unattended-upgrades. Mira los archivos:

cd /var/log/unattended-upgrades
ls -lah

Lista de archivos de registro de unattended-upgrades

Archivos típicos:

  1. unattended-upgrades-dpkg.log — acciones dpkg durante actualizaciones (instalar, actualizar, eliminar).
  2. unattended-upgrades.log — resumen de paquetes, lista negra y errores.
  3. unattended-upgrades-shutdown.log — eventos relacionados con reinicios durante el proceso.

Para buscar entradas recientes:

sudo tail -n 200 /var/log/unattended-upgrades/unattended-upgrades.log

Notificación en el inicio de sesión SSH

Si hay actualizaciones pendientes o si se han aplicado, normalmente verás mensajes al iniciar sesión vía SSH. Ejemplo de pantalla antes de aplicar actualizaciones:

Notificación previa a actualizaciones

Y tras la actualización, el sistema puede informar de paquetes actualizados:

Notificación de paquetes de seguridad actualizados

Notificación por correo

Si configuraste Unattended-Upgrade::Mail, revisa /var/mail/root o el buzón configurado:

cd /var/mail/
cat root

El correo incluye paquetes actualizados, paquetes en lista negra y posibles errores.

Comprobar reinicios

Para ver el historial de reinicios:

last reboot

El resultado muestra la fecha/hora de reinicios antes y después de aplicar actualizaciones.

Resultado de reinicio tras actualización

Resumen rápido

Hemos instalado y configurado unattended-upgrades para aplicar automáticamente actualizaciones de seguridad en Ubuntu 16.04, con correo de notificación y reinicio automático si fuese necesario.

Lista de comprobación antes de habilitar en producción

  • Tener backups recientes (snapshots LVM, ZFS o backup offsite).
  • Verificar espacio en disco /var/cache/apt/archives y /boot.
  • Revisar que los paquetes críticos no estén en la lista negra por error.
  • Configurar correo para notificaciones (sendmail o relay SMTP).
  • Probar en un entorno staging antes de producción.

Playbook/SOP: despliegue seguro paso a paso

  1. Hacer snapshot del servidor o backup completo.
  2. Actualizar listas: sudo apt update; sudo apt upgrade (manual en staging).
  3. Instalar unattended-upgrades: sudo apt install unattended-upgrades.
  4. Editar /etc/apt/apt.conf.d/50unattended-upgrades según políticas.
  5. Editar /etc/apt/apt.conf.d/20auto-upgrades para periodicidad.
  6. Instalar y configurar agente de correo para alertas.
  7. Forzar ejecución de prueba: sudo unattended-upgrade -d (modo debug).
  8. Revisar logs en /var/log/unattended-upgrades y correos.
  9. Monitorizar los primeros 7 días para detectar regresiones.
  10. Documentar cualquier paquete en lista negra y justificarla.

Pruebas y criterios de aceptación

  • Criterio 1: unattended-upgrades ejecuta sin errores en modo debug.
  • Criterio 2: tras una ejecución programada, /var/log/unattended-upgrades muestra paquetes instalados.
  • Criterio 3: si se requiere reinicio, last reboot refleja el reinicio automático.
  • Criterio 4: el correo a root contiene resumen de la actividad.

Prueba de ejecución manual:

sudo unattended-upgrade -d

Observa la salida y los logs para confirmar comportamiento.

Alternativas y cuándo usarlas

  • apticron: notifica actualizaciones disponibles pero no aplica cambios. Útil si quieres aplicar manualmente en ventanas de mantenimiento.
  • landscape (Canonical): solución empresarial con control centralizado para múltiples servidores.
  • cron-apt: más antiguo, permite tareas programadas y scripts personalizados.

Elige unattended-upgrades cuando quieras aplicar parches de seguridad de forma automática y segura con un bajo mantenimiento central.

Escenarios en los que puede fallar (contrajemplos)

  • Bloqueos de APT (lock) por otras operaciones: unattended-upgrades fallará si otro apt/dpkg está en ejecución.
  • Espacio insuficiente en /boot o /var: instalaciones pueden truncarse.
  • Paquetes retenidos (held): no se actualizarán.
  • Dependencias rotas o PPAs incompatibles: pueden impedir la instalación automática.

Mitigaciones: configurar alertas de espacio, usar snapshot previo, y excluir paquetes críticos con Package-Blacklist.

Modelos mentales y heurísticos

  • Regla 30 días: aplica parches de seguridad dentro de 30 días desde su publicación en servidores expuestos.
  • Separación de responsabilidades: unattended-upgrades para seguridad; procesos manuales para cambios disruptivos.
  • Fail-safe: siempre tener backups y snapshots antes de permitir reinicios automáticos.

Hardening y privacidad

  • Limita las actualizaciones automáticas solo a -security si dependencias y estabilidad importan.
  • Evita exponer información sensible en correos locales si el buzón puede reenviarse externamente.
  • Considera enviar solo resúmenes diarios a un correo seguro y centralizado.

Consejos de compatibilidad y migración

  • Ubuntu 16.04 llegó al final de su soporte estándar en 2019; valora plan de migración a LTS más reciente (18.04, 20.04, 22.04) para soporte a largo plazo.
  • Extended Security Maintenance (ESM) puede estar disponible para algunas releases; añade ${distro_id}ESM:${distro_codename} si tu suscripción lo permite.

Solución de problemas rápida

  • Mensaje: “Could not get lock /var/lib/dpkg/lock” → espera que termine otro apt o detén el proceso en mantenimiento.
  • Fallo en sendmail → verifica /var/log/mail.log y la configuración del relay SMTP.
  • Reinicio no ocurre → verifica Unattended-Upgrade::Automatic-Reboot y que systemd- services permitan reinicios.

Checklist por roles

  • Administrador (Admin): configurar políticas, listas negras y backups.
  • Operador (Operator): vigilar logs, espacio en disco y reinicios.
  • Seguridad (Security): revisar políticas de notificación y cumplimiento.

Ejemplo de plantilla para documentación interna

  • Servidor:
  • Rol:
  • Snapshot previo: Sí/No
  • Política aplicada: security-only
  • Lista negra: [vim, mysql-server]
  • Reinicio automático: Sí/No
  • Correo notificaciones: root@localhost
  • Fecha despliegue: YYYY-MM-DD

Diagrama de decisión básico (Mermaid)

flowchart TD
  A[Inicio] --> B{¿Servidor en producción?}
  B -- Sí --> C[Crear snapshot / backup]
  B -- No --> D[Probar en staging]
  C --> E[Instalar unattended-upgrades]
  D --> E
  E --> F{¿Aplicar sólo seguridad?}
  F -- Sí --> G[Habilitar ${distro_codename}-security]
  F -- No --> H[Habilitar orígenes adicionales]
  G --> I[Configurar correo y reinicio]
  H --> I
  I --> J[Habilitar periodicidad en 20auto-upgrades]
  J --> K[Monitorear logs y alertas]

Notas finales

  • Mantén un inventario de servidores y aplica políticas coherentes.
  • Prueba en staging antes de activar reinicios automáticos en producción.
  • Revisa periódicamente la lista negra y la configuración de correo.

Referencias

Autor
Edición

Materiales similares

Retrasar elementos de inicio en Mac con DelayedLauncher
macOS

Retrasar elementos de inicio en Mac con DelayedLauncher

Crear y administrar cuenta de invitado en Mac
Tutorial

Crear y administrar cuenta de invitado en Mac

Descargar imágenes desde Google Docs
Guías

Descargar imágenes desde Google Docs

Chrome no se abre en Windows: soluciones rápidas
Soporte técnico

Chrome no se abre en Windows: soluciones rápidas

Recuperar el icono de Configuración en el menú Inicio
Windows

Recuperar el icono de Configuración en el menú Inicio

Ajustar barras de desplazamiento en Windows 10 y 11
Windows

Ajustar barras de desplazamiento en Windows 10 y 11