GNU/Linux >> Tutoriales Linux >  >> Debian

Instalar/habilitar y configurar actualizaciones desatendidas en Debian 11

Mantener su sistema actualizado es un factor importante para cualquiera, desde simples usuarios de escritorio, desarrolladores, administradores de sistemas; bueno, seamos realistas, cualquier persona con un dispositivo que esté especialmente conectado a Internet. Debian, por defecto, no está configurado para actualizaciones automáticas. Sin embargo, al habilitar y configurar paquetes de actualizaciones desatendidas, puede aplicar fácilmente actualizaciones de seguridad, paquetes o incluso nuevas funciones de una manera fácil, simple y eficiente si no siempre tiene tiempo para verificar u olvidar. Se recomienda enfáticamente habilitar esto solo por seguridad.

El siguiente tutorial demostrará cómo instalar o habilitar y configurar actualizaciones desatendidas en Debian 11 .

Requisitos

  • SO recomendado: Debian 11 Bullseye o Debian 10, 9 o cualquier sistema Debian aún actualizado.
  • Cuenta de usuario: Una cuenta de usuario con privilegios sudo o acceso raíz (comando su) .

Actualización del sistema operativo

Actualice su Debian 11 sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:

sudo apt update && sudo apt upgrade

Acceso raíz o Sudo

De forma predeterminada, cuando crea su cuenta al inicio con Debian en comparación con otras distribuciones, no recibe automáticamente el estado de sudoers. Debe tener acceso a la contraseña raíz para usar el comando su o visite nuestro tutorial sobre cómo agregar un usuario a Sudoers en Debian.

Instalar paquete de actualizaciones desatendidas

En primer lugar, si no ha instalado actualizaciones desatendidas o ha eliminado el paquete, debe volver a instalarlo con el siguiente comando:

sudo apt install unattended-upgrades

Por defecto, esto debería estar instalado.

También deberá instalar el paquete apt-config-auto-update si desea que su sistema Debian se reinicie después de aplicar actualizaciones que requieren que el sistema se reinicie automáticamente. Para hacer esto, use el siguiente comando a continuación:

sudo apt install apt-config-auto-update

Para usuarios de portátiles, deberá instalar el paquete powermgmt-base si planea utilizar cualquier opción desatendida que utilice opciones de batería.

sudo apt install powermgmt-base

Una vez completada la instalación, Debian debería iniciar el proceso de forma predeterminada. Para verificar, use el siguiente comando:

sudo systemctl status unattended-upgrades

Ejemplo de salida:

Los siguientes comandos systemctl le explicará las opciones que tiene para iniciar, detener, habilitar en el arranque, deshabilitar en el arranque o reiniciar el servicio de actualizaciones desatendidas:

Para iniciar los servicios desatendidos:

sudo systemctl start unattended-upgrades

Para detener los servicios desatendidos:

sudo systemctl stop unattended-upgrades

Para habilitar en el arranque los servicios desatendidos:

sudo systemctl enable unattended-upgrades

Para deshabilitar al arrancar los servicios desatendidos:

sudo systemctl disable unattended-upgrades

Para reiniciar los servicios desatendidos:


sudo systemctl restart unattended-upgrades

Configurar actualizaciones desatendidas

Después de comprobar o instalar una actualización desatendida, ahora editamos las 50actualizaciones desatendidas. config usando su editor de texto de terminal favorito. Desde aquí, puede configurar actualizaciones desatendidas a partir de algunos de los ejemplos de este tutorial y explorar algunas de las otras opciones menos utilizadas; la documentación en el archivo de configuración brinda una buena explicación de cada ajuste por sí mismo.

Puedes hacer esto con el siguiente comando:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Ejemplo de apertura de ventana y primer vistazo:

Orígenes y actualizaciones permitidos

El paquete de actualizaciones desatendidas no procesará líneas que comiencen con // sintaxis . De manera predeterminada, solo las actualizaciones de seguridad se instalan automáticamente, como se muestra en las líneas a continuación. Sería mejor si nunca deshabilitara las actualizaciones de seguridad; sin embargo, puede agregar opciones adicionales aquí.

Por ejemplo, para incluir actualizaciones de paquetes normales que están desactivadas de forma predeterminada:

Cambiar de:

//      "${distro_id}:${distro_codename}-updates";

Cambiar para habilitar:

       "${distro_id}:${distro_codename}-updates";

Configuración de ejemplo que viene por defecto (recomendada para la mayoría de los usuarios):

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}ESMApps:${distro_codename}-apps-security";
        "${distro_id}ESM:${distro_codename}-infra-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

Ejemplo en un entorno en vivo:

Para desglosarlo aún más, las opciones que puede habilitar además de las predeterminadas:

  • “${distro_id}:${distro_codename}-updates”; – esta opción será lo mismo que ejecutar sudo apt update en su terminal para obtener actualizaciones de paquetes. En la mayoría de los casos, esto no se recomienda, ya que ciertos paquetes necesitan una intervención manual al actualizar, si configura este ajuste para incluir en la lista negra ciertos paquetes que sabe que causarán problemas si se actualizan sin supervisión, como se explica más adelante en el tutorial.
  • “${distro_id}:${distro_codename}-proposed”; – esta opción extraerá actualizaciones de las pruebas, esto definitivamente no se recomienda para todos los usuarios ya que los paquetes son inestables y es posible que ni siquiera lleguen a un entorno en vivo.
  • “${distro_id}:${distro_codename}-backports”; – esta opción habilitará backports que se usa principalmente para actualizar paquetes, esto normalmente es más estable que lo propuesto, pero como regla general, debe investigar antes de activar esto, ya que puede causar inestabilidad.

Excluir paquetes de las actualizaciones

Con las actualizaciones, algunos paquetes pueden volverse inestables o romperse por completo si no está supervisando el proceso. Por ejemplo, se interrumpirá una actualización automática de Nginx para un usuario que tenga compilado ModSecurity; a menudo no necesitará llenar nada aquí; esto es solo para servidores dedicados que ejecutan paquetes que necesitan intervención.

Tenga en cuenta que siempre es mejor usar las expresiones de python para hacer coincidir los paquetes:

Ejemplo de

// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
    // The following matches all packages starting with linux-
//  "linux-";

    // Use $ to explicitely define the end of a package name. Without
    // the $, "libc6" would match all of them.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";

El cambio de ejemplo también excluye la aplicación web Nginx:

// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
    // The following matches all packages starting with linux-
  "nginx";

    // Use $ to explicitely define the end of a package name. Without
    // the $, "libc6" would match all of them.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";

Ejemplo en un entorno en vivo:

Eliminar dependencias no utilizadas

A continuación, proceda a la eliminación automática de dependencias no utilizadas. que tienen tres opciones; El valor predeterminado es falso. Sin embargo, opcionalmente puede habilitar esta configuración. Básicamente, si actualiza automáticamente un paquete, las dependencias y/o el núcleo y los remanentes antiguos que ya no están en uso ya no son necesarios; automáticamente los limpiará y eliminará por usted. Normalmente, esto siempre es seguro para la mayoría de los usuarios.

Si no desea hacer esto, deje la línea intacta.

Ejemplo de:

// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
// Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
// Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
// Unattended-Upgrade::Remove-Unused-Dependencies "false";

Ejemplo de cambio también:

// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";

Ejemplo en un entorno en vivo:

Notificaciones por correo electrónico

Se recomienda configurar notificaciones por correo electrónico, especialmente si se ejecutan servidores desatendidos. En la configuración, una excelente opción es seleccionar el correo electrónico "al cambiar", de modo que solo reciba notificaciones cuando el software haya cambiado. Alternativamente, puede elegir "solo en caso de error", de modo que solo reciba notificaciones cuando se produzca un error.

Se recomienda seleccionar on-change porque debe saber qué actualizaciones están ocurriendo en su sistema. También puede establecer una dirección de correo electrónico aquí:

Tenga en cuenta que esto requerirá que tenga correos electrónicos configurados en su servidor para que las notificaciones funcionen.

Ejemplo de:

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
//Unattended-Upgrade::Mail "";

Ejemplo de cambio también:

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
Unattended-Upgrade::Mail "[email protected]";

Ejemplo en un entorno en vivo:

La segunda opción para las notificaciones por correo electrónico es sobre qué informar realmente. Para la mayoría de los usuarios, solo en caso de error o de cambio es suficiente; establecer la generación de informes en siempre incurrirá potencialmente en una gran cantidad de correos electrónicos no deseados, pero para los sistemas críticos, esto puede estar justificado.

A continuación se muestra un ejemplo de solo en caso de error, que está bien para usuarios de escritorio en entornos que no son de producción/servidor web:

Ejemplo de:

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
//Unattended-Upgrade::MailReport "on-change";

Ejemplo de cambio también:

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
Unattended-Upgrade::MailReport "only-on-error";

Ejemplo en un entorno en vivo:

Opciones de reinicio automático

Desplácese hacia abajo hasta la opción Reinicio automático. De manera predeterminada, esto está desactivado, y casi todos los escritorios y especialmente los servidores que ejecutan software y/o servicios dedicados no lo tendrán activado, ya que a menudo puede causar grandes interrupciones en esos servicios de software.

Aún así, suponga que sus servicios solo sirven a unas pocas personas. En ese caso, esta opción puede ser viable. Los sistemas Linux/Ubuntu normalmente solo se reiniciarán debido a una actualización de Kernel Linux que es crítica, pero tengo notificaciones automáticas para cambios. Sé que será necesario hacerlo y puedo planificarlo.

Ejemplo de:

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

Ejemplo de cambio también:

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
Unattended-Upgrade::Automatic-Reboot "true";

Ejemplo en un entorno en vivo:

Si habilita la opción, puede configurar el reinicio con los usuarios conectados o no. Esto debe deshabilitarse, ya que los usuarios que inician sesión y se ven obligados a salir debido a un reinicio pueden causar interrupciones en los entornos de trabajo, sin mencionar la frustración de ese usuario que inició sesión.

Sin embargo, si prefiere esto en:

Ejemplo de:

// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

Ejemplo de cambio también:

// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

Ejemplo en un entorno en vivo:

Si tiene un servidor pequeño en una zona horaria particular y conoce un buen momento para reiniciar, diga a las 2 am y luego ajuste lo siguiente:

Ejemplo de:

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Ejemplo de cambio también:

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Ejemplo en un entorno en vivo:

Lista de verificación final para actualizaciones desatendidas

Para asegurarse de que los archivos de actualización automática estén presentes en el directorio /etc/apt/apt.conf.d/ usando los siguientes comandos:

cd /etc/apt/apt.conf.d
ls

Ejemplo de salida:

ls
00CDMountPoint	      10periodic      20packagekit	     60icons
00trustcdrom	      15update-stamp  20snapd.conf	     70debconf
01autoremove	      20archive       50appstream
01autoremove-kernels  20listchanges   50unattended-upgrades

Ahora abra el archivo /etc/apt/apt.conf.d/20auto-upgrades :

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Ejemplo de salida:

Debería ver el código de comando a continuación en el archivo siguiente. Si no, copia y pega:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

De forma predeterminada, el ajuste "1" está habilitado. Sin embargo, si desea deshabilitarlo, puede cambiarlo a "0". Si no desea verificarlo a diario, proceda a cambiar el número a "2", lo que hace que las actualizaciones automáticas verifiquen cada dos días. En nuestra guía, por ejemplo, solo lo cambiamos a 2. Recomendamos dejar este conjunto en "1":

Ejemplo en un entorno en vivo:

Guarde el archivo (CTRL+O), luego pulsa Y , luego para salir presione (CTRL+X) para salir del editor de texto.

Crear cronjob para actualizaciones desatendidas

Opcionalmente, si desea un control total sobre el tiempo de sus actualizaciones automáticas, puede crear un cronjob. Para hacer esto, primero, abra el crontab:

sudo crontab -e

A continuación, agregue esta línea al final de la última entrada; puede modificar el "tiempo" de la forma que desee. Si es nuevo en Linux, visite Crontab.Guru, donde puede obtener ayuda, hacer y probar la configuración del cron.

A continuación se demostrará que se ejecuta exactamente cada 3 días, a las 4:00 am.

Ejemplo:

00 04 * * */3 /usr/bin/unattended-upgrade -v

Ejemplo en un entorno en vivo:

Guarde el archivo (CTRL+O), luego pulsa Y , luego para salir presione (CTRL+X) para salir del editor de texto.

Cómo acceder a los registros de actualizaciones desatendidas

Por último, las actualizaciones desatendidas registran en su directorio, por lo que si desea verificar los archivos de registro en busca de problemas y encontrar errores, puede encontrarlos en la siguiente ruta:

/var/log/unattended-upgrades/

Herramientas adicionales:Comprobar reinicio (artículos valiosos de Debian)

Un programa excelente para verificar si ha regresado a un servidor al que se le aplicaron actualizaciones automáticas en lugar de verificar registros o correos electrónicos es ejecutar el comando checkrestart eso le informará si algún paquete requiere reiniciarse.

Para instalar checkrestart, ejecute el siguiente comando:

sudo apt install debian-goodies -y

Ahora ejecute el siguiente comando para buscar paquetes que requieran reinicios:

sudo checkrestart


Ejemplo de salida:

Found 0 processes using old versions of upgraded files

Como puede ver, la máquina que usa el tutorial está actualizada; sin embargo, si algo necesitara un reinicio manual, se enumeraría aquí en la salida.


Debian
  1. Cómo instalar Tomcat 8.5 en Debian 9

  2. Cómo instalar MongoDB en Debian 9

  3. Cómo instalar Nginx en Debian 9

  4. Cómo instalar Apache en Debian 9

  5. Cómo instalar Jenkins en Debian 9

Cómo instalar y configurar Wine (WineHQ) en Debian 11 Bullseye

Instalar y configurar GitLab en Debian 11 Bullseye

Cómo instalar y configurar Git en Debian 11

Cómo instalar y configurar Fail2ban en Debian 11

Instalar/Habilitar SSH en Debian 11 Bullseye

Cómo instalar Go en Debian 11