Actualizaciones automáticas

Ben Cotton, Petr Bokoc, Jean-Baptiste Holcroft Version all Last review: 2022

Usted debe decidir si desea utilizar actualizaciones automáticas de DNF en cada una de sus máquinas. Hay diversos argumentos a considerar tanto a favor como en contra de las actualizaciones automáticas. Sin embargo, no hay una única respuesta a esta pregunta: depende del administrador del sistema o del propietario de cada máquina decidir si las actualizaciones automáticas son convenientes o no para esa máquina. Una de las cosas que caracterizan a un buen administrador de sistemas es la capacidad para evaluar los hechos y las sugerencias de otras personas, y luego decidir por sí mismo lo que debe hacer.

Una regla general que se aplica en la mayoría de los casos es la siguiente:

Si la máquina es un servidor crítico, para la cual un tiempo fuera de servicio no planificado no se puede tolerar, no se deben usar las actualizaciones automáticas. En otro caso, usted puede elegir usarlas.

Incluso la regla general anterior tiene excepciones o se puede solucionar de formas alternativas. Algunos problemas pueden resolverse mediante una configuración especial por su parte. Por ejemplo, podría crear su propio repositorio DNF en un servidor local y únicamente almacenar actualizaciones probadas o confiables. Seguidamente, utilizar actualizaciones automáticas desde su propio repositorio. Estas configuraciones, aunque quizás sean más difíciles de configurar y mantener, pueden eliminar una gran cantidad de riesgos inherentes a las actualizaciones automáticas.

¿Cómo se hacen las actualizaciones automáticas?

Puede usar un servicio para descargar e instalar automáticamente cualquier nueva actualización (por ejemplo actualizaciones de seguridad).

El paquete RPM dnf-automatic es un componente DNF que proporciona un servicio que se inicia automáticamente.

Instalación y ajustes de dnf-automatic

En una nueva instalación de Fedora 22 con las opciones predeterminadas, el RPM dnf-automatic no se instala. El primer comando a continuación instala dicho RPM:

sudo dnf install dnf-automatic

Por defecto, dnf-automatic se ejecuta a partir de las configuraciones del archivo /etc/dnf/automatic.conf. Estas configuraciones solo descargan sin aplicar ninguno de los paquetes. Para cambiar o agregar alguna configuración, abra el archivo .conf como usuario root (o usando sudo) desde una ventana de terminal.

env EDITOR='gedit -w' sudoedit /etc/dnf/automatic.conf

Puede encontrar una descripción más detallada de la configuración de dnf-automatic en la página dnf-automatic.

Ejecutar dnf-automatic

Una vez haya terminado con la configuración, ejecute:

systemctl enable --now dnf-automatic.timer

para habilitar e inicializar el temporizador de systemd.

Comprobar el estado de dnf-automatic:

systemctl list-timers 'dnf-*'

Cambios a partir de Fedora 26

A partir de Fedora 26 hay tres temporizadores que controlan dnf-automatic.

  • dnf-automatic-download.timer - Solamente descarga

  • dnf-automatic-install.timer - Descarga e instalación

  • dnf-automatic-notifyonly.timer - Únicamente notifica a través de los emisores configurados en /etc/dnf/automatic.conf

Todavía puede utilizar las configuraciones download_updates y apply_updates desde /etc/dnf/automatic.conf.

¿Podemos confiar en las actualizaciones de DNF?

Dnf en Fedora tiene la comprobación de claves GPG habilitada de forma predeterminada. Suponiendo que haya importado las claves GPG correctas y que aún tenga gpgcheck=1 en /etc/dnf/dnf.conf, podemos al menos suponer que las actualizaciones instaladas automáticamente no fueron dañadas o alteradas respecto a su estado original. Al usar comprobaciones de claves GPG, no hay forma de que un atacante genere paquetes que su sistema acepte como válidos (salvo que tengan una copia de la clave privada correspondiente a la que usted instaló) y cualquier corrupción de datos durante la descarga sería detectada.

Si bien, la pregunta también sería aplicable a la cuestión de la calidad de las actualizaciones. ¿Causará problemas en su sistema la instalación del paquete? No podemos responder a esto. Cada paquete pasa por un proceso de control de calidad y se supone que no presenta problemas. Sin embargo, los problemas ocurren y el control de calidad no puede probar todos los casos posibles. Siempre es posible que cualquier actualización pudiera causar problemas durante o después de su instalación.

¿Por qué utilizar actualizaciones automáticas?

La principal ventaja de automatizar las actualizaciones es aumentar la probabilidad de que sus máquinas se actualicen más rápidamente, con mayor frecuencia y de un modo más uniforme que si las actualizaciones se realizaran de forma manual. Se ven demasiadas máquinas comprometidas en Internet que podrían haber estado a salvo si se hubieran instalado las últimas actualizaciones a tiempo.

Así pues, aunque debe tener cautela con cualquier solución de actualización automatizada, en particular en sistemas de producción, definitivamente vale la pena considerarla, al menos en ciertas situaciones.

Motivos A FAVOR de las actualizaciones automáticas

Aunque nadie puede determinar por usted si su máquina es una buena candidata para usar actualizaciones automáticas, hay varios factores que tienden a hacer que una máquina sea mejor candidata para actualizaciones automáticas.

Algunas cosas que podrían hacer que su máquina sea una buena candidata para actualizaciones automáticas son:

  • Es poco probable que usted aplique las actualizaciones de forma manual por cualquier motivo(s).

  • No es una máquina crítica y es aceptable que se produzcan tiempos de inactividad no planificados de forma ocasional.

  • Puede tolerar no disponer de acceso remoto a la máquina hasta que llegue a su ubicación física para resolver los problemas.

  • No tiene ningún dato irreemplazable en la máquina o realiza y dispone de copias de seguridad apropiadas de dichos datos.

Si todo lo anterior se aplica a su(s) equipo(s), entonces las actualizaciones automáticas pueden ser su mejor opción para ayudar a proteger su equipo. Si no aplican todas las anteriores, entonces deberá evaluar los riesgos y decidir por sí mismo si las actualizaciones automáticas son la mejor manera de proceder.

Motivos EN CONTRA de las actualizaciones automáticas

Si bien nadie puede determinar por usted si su máquina es mala candidata para las actualizaciones automáticas, hay diversos factores que tienen a hacer de una máquina una peor candidata para las actualizaciones automáticas.

Algunas cosas que podrían hacer que su máquina sea una mala candidata para actualizaciones automáticas son:

  • Proporciona un servicio crítico sobre el cual no desea correr el riesgo de sufrir tiempos de inactividad no programados.

  • Ha instalado software personalizado, compilado software desde los fuentes o utilizado software de terceros con estrictos requisitos de versiones de paquetes.

  • Ha instalado un kernel personalizado, módulos del kernel personalizados, módulos del kernel de terceros o tiene una aplicación de terceros que depende de ciertas versiones del kernel (esto puede no ser un problema si excluye las actualizaciones del kernel, lo cual es la opción predeterminada en los archivos dnf.conf de Fedora). (Vea también bug #870790 - es posible que deba modificar la sección base para agregar exclude=kernel*.)

  • Su entorno requiere de meticulosos procedimientos de control de cambios.

  • Se actualiza desde otros repositorios DNF de terceros además de Fedora (core, extras, legacy), los cuales pueden entrar en conflicto en los esquemas de versionado para los mismos paquetes.

Existen otras razones por las que instalar actualizaciones automáticas sin probarlas puede ser una mala idea. Algunas de ellas son:

  • La necesidad de realizar una copia de seguridad de los archivos de configuración antes de una actualización. Incluso los mejores archivos de especificaciones de paquetes pueden tener errores. Si ha modificado un archivo que no está marcado como archivo de configuración, es posible que pierda sus cambios de configuración. O una actualización podría cambiar el formato de un archivo de configuración, requiriendo una nueva configuración manual. A menudo es mejor realizar una copia de seguridad de sus ficheros de configuración antes de realizar actualizaciones en paquetes críticos, como correo, web, o servidores de bases de datos.

  • Efectos secundarios no deseados. Algunos paquetes pueden crear efectos secundarios no deseados, en particular los que tienen tareas programadas. Actualizaciones de paquetes básicos como openssl, openldap, servidores sql, etc; pueden afectar a muchos otros paquetes no relacionados aparentemente.

  • Errores. Muchos paquetes contienen software o scripts de instalación con errores. La actualización puede crear problemas durante o después de la instalación. Incluso errores estéticos, como los que se encontraron en actualizaciones anteriores de Mozilla que causaron que los iconos del usuario se eliminaran o se rompieran, pueden ser molestos o problemáticos.

  • Es posible que las actualizaciones automáticas no completen todo el proceso necesario para que el sistema sea seguro. Por ejemplo, DNF puede instalar una actualización del kernel, pero hasta que se reinicie la máquina (lo cual DNF no hará automáticamente) los cambios no surtirán efecto. Lo mismo se aplica a reiniciar servicios o demonios (daemons en inglés). Esto puede hacer que el usuario se sienta seguro cuando no lo está.

Best practices when using automatic updates

If you decide to use automatic updates, you should at least do a few things to make sure you are up-to-date.

Check for package updates which have been automatically performed, and note if they need further (manual) intervention. You can monitor what DNF has updated via its log file (usually /var/log/dnf.log).

You can monitor updates availability automatically by email after modifying the dnf-automatic configuration file (usually /etc/dnf/automatic.conf).

[emitters]
emit_via = email

[email]
# The address to send email messages from.
email_from = root@localhost.com

# List of addresses to send messages to.
email_to = root

# Name of the host to connect to to send email messages.
email_host = localhost

You would replace root with an actual email address to which you want the report sent, and localhost with an actual address of a SMTP server. This change will mean that after dnf-automatic runs, it will email you information about available updates, a log about downloaded packages, or installed updates according to settings in automatic.conf.

Alternative methods

As an alternative to dnf-automatic, auter can be used. This operates in a similar way to dnf-automatic, but provides more flexibility in scheduling, and some additional options including running custom scripts before or after updates, and automatic reboots. This comes at the expense of more complexity to configure.

sudo dnf install auter

You should then edit the configuration. Descriptions of the options are contained in the conf file /etc/auter/auter.conf.

Auter is not scheduled by default. Add a schedule for --prep (if you want to pre-download updates) and --apply (install updates). The installed cron job which you can see in /etc/cron.d/auter contains lots of examples.

To make auter run immediately without waiting for the cron job to run, for example for testing or debugging, you can simply run it from the command line:

auter --apply

If you want to disable auter from running, including from any cron job:

auter --disable

Alternatives to automatic updates

Notifications

Instead of automatic updates, dnf-automatic can only download new updates and can alert you via email of available updates which you could then install manually. This can be set by editing of /etc/dnf/automatic.conf file.

Scheduling updates

Another common problem is having automatic updates run when it isn’t desired (holidays, weekends, vacations, etc). If there are times that no one will be around to fix any problem arising from the updates, it may be best to avoid doing updates on those days.

This problem can be fixed by modification of the timer of dnf-automatic using the description on the Understanding and administering systemd page.

Other methods of protection

Yet another thing to consider if not using automatic updates is to provide your machine with some other forms of protection to help defend it of any attacks that might occur before updates are in place. This might include an external firewall, a host-based firewall (like iptables, ipchains, and/or tcp wrappers), not performing dangerous tasks on the computer (like browsing the web, reading e-mail, etc.), and monitoring the system for intrusions (with system log checkers, IDS systems, authentication or login monitoring, etc).