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á.

Buenas prácticas al utilizar actualizaciones automáticas

Si decide utilizar actualizaciones automáticas, debe hacer al menos algunas cosas para asegurarse de estar actualizado.

Compruebe si existen actualizaciones que se hayan aplicado de forma automática y revise si necesitan intervención adicional (manual). Puede controlar qué ha actualizado DNF a través de su archivo de registro (normalmente /var/log/dnf.log).

Puede supervisar la disponibilidad de actualizaciones por correo electrónico automáticamente tras modificar el archivo de configuración de dnf-automatic (normalmente /etc/dnf/automatic.conf).

[emitters]
emit_via = email

[email]
# Dirección desde la cual enviar los correos.
email_from = root@localhost.com

# Lista de direcciones a las que enviar los mensajes.
email_to = root

# Nombre del host al que conectarse para enviar mensajes de correo electrónico.
email_host = localhost

Debe reemplazar root por una dirección de correo electrónico a la cual desee enviar el informe y localhost con una dirección real de un servidor SMTP. Este cambio significa que, después de que se ejecute dnf-automatic, se le enviará información acerca de las actualizaciones disponibles por correo electrónico, un registro sobre los paquetes descargados o las actualizaciones instaladas según la configuración en automatic.conf.

Métodos alternativos

Como alternativa a dnf-automatic, puede utilizar auter. Funciona de forma similar a dnf-automatic pero ofrece más flexibilidad en la programación y algunas opciones adicionales, como la ejecución de scripts personalizados antes o después de las actualizaciones y reinicios automáticos. Esto implica una mayor complejidad de configuración.

sudo dnf install auter

A continuación, debe editar la configuración. Puede encontrar descripciones de las opciones en el archivo de configuración /etc/auter/auter.conf.

Auter no está programado de forma predeterminada. Añada una programación para`--prep` (si desea descargar previamente las actualizaciones) y --apply (instalar actualizaciones). La tarea de cron instalada en /etc/cron.d/auter contiene muchos ejemplos.

Para que auter se ejecute inmediatamente sin esperar a que se ejecute la tarea de cron, por ejemplo para probar o depurar, puede, sencillamente, ejecutarlo desde la línea de comandos:

auter --apply

Si desea deshabilitar la ejecución de auter, incluso desde cualquier tarea de cron:

auter --disable

Alternativas a las actualizaciones automáticas

Notificaciones

En lugar de actualizaciones automáticas, dnf-automatic puede únicamente descargar nuevas actualizaciones y avisarle por correo electrónico de las actualizaciones disponibles, para instalarlas posteriormente de forma manual. Esto se puede configurar editando el archivo /etc/dnf/automatic.conf.

Programar actualizaciones

Otro problema común es que las actualizaciones automáticas se ejecuten en momentos no deseados (días festivos, fines de semana, vacaciones, etc). Si hay momentos en los que nadie estará disponible para solucionar posibles problemas surgidos de las actualizaciones, puede ser mejor evitar realizar actualizaciones en esos días.

Este problema puede solucionarse modificando el temporizador de dnf-automatic usando la descripción en la página Understanding and administering systemd.

Otros métodos de protección

Otro factor a tener en cuenta si no se utilizan actualizaciones automáticas es proporcionar a la máquina algún otro tipo de protección para ayudar a defenderla de ataques que pudieran ocurrir antes de que se instalen las actualizaciones. Esto puede incluir un cortafuegos externo, un cortafuegos local (como iptables, ipchains y/o tcp wrappers), no realizar tareas peligrosas en la computadora (como navegar por la web, leer correo electrónico, etc) y monitorizar el sistema para detectar intrusiones (con comprobadores de registros del sistema, sistemas IDS, monitorización de autenticación o de inicio de sesión, etc).