
Actualizar regularmente su sistema CentOS es uno de los aspectos más importantes de la seguridad general del sistema. Si no actualiza los paquetes de su sistema operativo con los últimos parches de seguridad, está dejando su máquina vulnerable a los ataques.
Si administra varias máquinas CentOS, la actualización manual de los paquetes del sistema puede llevar mucho tiempo. Incluso si administra una sola instalación de CentOS, a veces puede pasar por alto una actualización importante. Aquí es donde las actualizaciones automáticas resultan útiles.
En este tutorial, pasaremos por el proceso de configuración de actualizaciones automáticas en CentOS 7. Las mismas instrucciones se aplican a CentOS 6.
Requisitos previos #
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.
Instalando el paquete yum-cron #
El yum-cron
El paquete le permite ejecutar automáticamente el comando yum como un trabajo cron para buscar, descargar y aplicar actualizaciones. Lo más probable es que este paquete ya esté instalado en su sistema CentOS. Si no está instalado, puede instalar el paquete ejecutando el siguiente comando:
sudo yum install yum-cron
Una vez completada la instalación, habilite e inicie el servicio:
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
Para verificar que el servicio se está ejecutando, escriba el siguiente comando:
systemctl status yum-cron
La información sobre el estado del servicio yum-cron se mostrará en la pantalla:
● yum-cron.service - Run automatic yum updates as a cron job
Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled; vendor preset: disabled)
Active: active (exited) since Sat 2019-05-04 21:49:45 UTC; 8min ago
Process: 2713 ExecStart=/bin/touch /var/lock/subsys/yum-cron (code=exited, status=0/SUCCESS)
Main PID: 2713 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/yum-cron.service
Configurando yum-cron #
yum-cron viene con dos archivos de configuración que se almacenan en /etc/yum
directorio, el archivo de configuración por hora yum-cron-hourly.conf
y el archivo de configuración diario yum-cron.conf
.
El yum-cron
El servicio solo controla si se ejecutarán o no los trabajos cron. El yum-cron
la utilidad es llamada por /etc/cron.hourly/0yum-hourly.cron
y /etc/cron.daily/0yum-daily.cron
archivos cron.
De forma predeterminada, el cron por hora está configurado para no hacer nada. Si hay actualizaciones disponibles, el cron diario está configurado para descargar pero no instalar las actualizaciones disponibles y enviar mensajes a la salida estándar. La configuración predeterminada es suficiente para los sistemas de producción críticos en los que desea recibir notificaciones y realizar la actualización manualmente después de probar las actualizaciones en los servidores de prueba.
El archivo de configuración está estructurado en secciones y cada sección contiene comentarios que describen lo que hace cada línea de configuración.
Para editar el archivo de configuración de yum-cron, abra el archivo en su editor de texto:
sudo nano /etc/yum/yum-cron-hourly.conf
En la primera sección, [commands]
puede definir los tipos de paquetes que desea que se actualicen, habilitar mensajes y descargas y configurar para aplicar actualizaciones automáticamente cuando estén disponibles. Por defecto, el update_cmd
está configurado por defecto, lo que actualizará todos los paquetes. Si desea configurar actualizaciones automáticas desatendidas, se recomienda cambiar el valor a security
lo que le indicará a yum que actualice los paquetes que solo corrigen un problema de seguridad.
En el siguiente ejemplo, cambiamos el update_cmd
a security
y habilitó actualizaciones desatendidas configurando apply_updates
a yes
:
[commands]
update_cmd = security
update_messages = yes
download_updates = yes
apply_updates = no
random_sleep = 360
La segunda sección define cómo enviar mensajes. Para enviar mensajes tanto a la salida estándar como al correo electrónico, cambie el valor de emit_via
a stdio,email
.
[emitters]
system_name = None
emit_via = stdio,email
output_width = 80
En el [email]
sección puede establecer la dirección de correo electrónico del remitente y el destinatario. Asegúrese de tener una herramienta que pueda enviar correos electrónicos instalada en su sistema, como mailx o postfix.
[email]
email_from = [email protected]
email_to = [email protected]
email_host = localhost
El [base]
le permite anular la configuración definida en el yum.conf
expediente. Si desea excluir la actualización de paquetes específicos, puede usar exclude
parámetro. En el siguiente ejemplo, estamos excluyendo el [mongodb
] paquete.
[base]
debuglevel = -2
mdpolicy = group:main
exclude = mongodb*
No necesita reiniciar el yum-cron
servicio para que los cambios surtan efecto.
Ver registros #
Utilice grepto para comprobar si se ejecutan los trabajos cron asociados con yum:
sudo grep yum /var/log/cron
May 4 22:01:01 localhost run-parts(/etc/cron.hourly)[5588]: starting 0yum-hourly.cron
May 4 22:32:01 localhost run-parts(/etc/cron.daily)[5960]: starting 0yum-daily.cron
May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2121]: starting 0yum-hourly.cron
May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2139]: finished 0yum-hourly.cron
El historial de actualizaciones de yum se registra en el /var/log/yum
expediente. Puede ver las últimas actualizaciones con el comando tail:
sudo tail -f /var/log/yum.log
May 04 23:47:28 Updated: libgomp-4.8.5-36.el7_6.2.x86_64
May 04 23:47:31 Updated: bpftool-3.10.0-957.12.1.el7.x86_64
May 04 23:47:31 Updated: htop-2.2.0-3.el7.x86_64