Cómo configurar el registro remoto con Rsyslog en Debian 12
Rsyslog es un demonio de sistema de registro de código abierto que se utiliza para recoger, filtrar, almacenar y reenviar mensajes de registro de sistemas operativos y aplicaciones. Es un sistema de registro potente y flexible que admite múltiples protocolos, como TCP, UDP y RELP (Reliable Event Logging Protocol). Puedes utilizar Rsyslog para centralizar los registros de tus servidores, aplicaciones y bases de datos.
Esta guía te mostrará cómo instalar rsyslog y configurar el registro remoto en el servidor Debian 12. También configurarás un servidor Linux para enviar registros remotamente al servidor Rsyslog.
Requisitos previos
Para empezar con esta guía, necesitas lo siguiente:
- Un servidor Debian 12
- Un usuario no root con privilegios de administrador
- Una máquina Linux como cliente para realizar pruebas
Instalación de Rsyslog
Antes de empezar, necesitas instalar Rsyslog en tu servidor Debian. En este paso, instalarás Rsyslog a través de APT y, a continuación, iniciarás y activarás el servicio Rsyslog.
En primer lugar, ejecuta el siguiente comando para actualizar el índice de paquetes de Debian e instalar Rsyslog en tu sistema. Introduce«Y» para confirmar la instalación.
sudo apt update sudo apt install rsyslog
Una vez finalizada la instalación, ejecuta el siguiente comando‘systemctl‘ para iniciar y habilitar el servidor‘rsyslog‘. A continuación, verifícalo para asegurarte de que se está ejecutando.
sudo systemctl enable --now rsyslog sudo systemctl status rsyslog
En la siguiente salida, puedes ver que Rsyslog se está ejecutando y está habilitado.
Configurar el UFW (Cortafuegos sin complicaciones)
Una vez instalado Rsyslog, instalarás y configurarás UFW (Cortafuegos sin complicaciones). Abrirás el puerto «22» para el servicio OpenSSH y el puerto «514» para Rsyslog. Y luego iniciarás y habilitarás el servicio UFW.
Para instalar UFW, ejecuta el siguiente comando‘apt‘. Introduce«Y» para confirmar la instalación.
sudo apt install ufw
Una vez finalizada la instalación, ejecuta el siguiente comando «ufw» para activar el perfil«OpenSSH» y permitir el acceso al puerto «514». El perfil«OpenSSH» permitirá el acceso SSH y el puerto«514» es el puerto syslog.
sudo ufw allow OpenSSH sudo ufw allow 514
Ahora inicia y habilita UFW con el siguiente comando. Escribe«y» para confirmar y obtendrás una salida como«El cortafuegos está activo y habilitado al iniciar el sistema«.
sudo ufw enable
Por último, comprueba el estado del UFW con el siguiente comando.
sudo ufw status
En la salida que aparece a continuación, puedes ver la UFW con el estado activo, el perfil OpenSSH y el puerto‘514‘ habilitado.
Rsyslog para recibir el registro del Servidor Remoto
Ahora que has instalado Rsyslog y configurado UFW, estás listo para configurar Rsyslog para recibir logs de servidores remotos. Para ello, tienes que modificar el archivo ‘/etc/rsyslog.conf’ y configurarlo:
- Habilitar el módulo‘imudp‘ para recibir logs de servidores remotos vía UDP
- Opcionalmente, habilita el módulo‘imtcp‘ para recibir logs vía TCP
- Habilita la opción‘AllowedSender‘ para permitir que subredes específicas envíen logs remotamente
- Añadir una plantilla personalizada para Rsyslog
- Comprobar la configuración de Rsyslog
- Iniciar, habilitar y verificar el servicio Rsyslog
Vamos a empezar.
En primer lugar, edita el archivo‘/etc/rsyslog.conf‘ utilizando el siguiente editor‘nano‘.
sudo nano /etc/rsyslog.conf
Descomenta las siguientes líneas para habilitar el módulo‘imudp‘ y habilitar el syslog para iniciar sesión en el servidor Rsyslog.
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514")
Además, si necesitas habilitar el syslog a través de TCP, habilita el módulo‘imtcp‘ como se indica a continuación:
# provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="50514")
Ahora añade la opción‘AllowedSender‘ e introduce la subred de tu red que tiene permiso para enviar mensajes Syslog a tu servidor Rsyslog.
# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd $AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.howtoforge.local, db.howtoforge.local
Introduce la siguiente configuración para establecer una plantilla para los archivos de registro de los servidores remotos. En este ejemplo, los archivos de registro del servidor remoto se almacenarán en el directorio‘/var/log/servers/server-ip‘.
#Custom template to generate the log filename dynamically based on the client's IP address. $template RemInputLogs, "/var/log/servers/%FROMHOST-IP%/%PROGRAMNAME%.log" *.?RemInputLogs
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el comando‘rsyslogd‘ para comprobar la configuración de Rsyslog y asegurarte de que tienes la configuración adecuada.
rsyslogd -f /etc/rsyslog.conf -N1
Cuando no se produzca ningún error, ejecuta el comando‘systemctl‘ que aparece a continuación para reiniciar el servicio‘rsyslog‘ y aplicar tus cambios.
sudo systemctl restart rsyslog
Por último, comprueba el estado del servicio‘rsyslog‘ para asegurarte de que se está ejecutando.
sudo systemctl status rsyslog
En la salida que aparece a continuación, puedes ver que«rsyslog» se está ejecutando.
Además, comprueba el puerto‘514‘ de tu servidor para asegurarte de que Rsyslog se está ejecutando.
ss -tulpn | grep 514
Puedes ver a continuación que el puerto UDP‘514‘ es utilizado por el Rsyslog.
Envío de logs al servidor Rsyslog
Ahora que has configurado el registro remoto con Rsyslog en tu servidor Debian, vamos a intentar enviar registros desde el servidor‘192.168.10.41‘ al servidor‘192.168.10.10‘. Para ello, necesitas lo siguiente
- Instala el paquete Rsyslog en tu máquina
- Editar la configuración de Rsyslog y definir qué logs se enviarán al servidor Rsyslog eliminado
- Opcional, configurar el búfer de cola de disco para Rsyslog
Instala el paquete ‘rsyslog’ con el siguiente comando‘apt‘. Introduce‘Y’ para confirmar la instalación.
sudo apt install rsyslog
Ahora abre el archivo de configuración por defecto‘/etc/rsyslog.conf‘ con el editor‘nano‘.
sudo nano /etc/rsyslog.conf
Añade la siguiente configuración para enviar los registros al servidor Rsyslog‘192.168.10.10‘. En este caso, enviaremos los registros del kernel, cron y autenticación al servidor Rsyslog.
# Send logs to a remote syslog server over UDP auth,[email protected]:514 [email protected]:514 [email protected]:514
Ahora añade lo siguiente para configurar un búfer de cola para Rsyslog.
# Define Disk Queue Buffer in case the server goes down $ActionQueueFileName queue # define a file name for disk assistance. $ActionQueueMaxDiskSpace 1g # The maximum size that all queue files together will use on disk. $ActionQueueSaveOnShutdown on # specifies that data should be saved at shutdown $ActionQueueType LinkedList # holds enqueued messages in memory which makes the process very fast. $ActionResumeRetryCount -1 # prevents rsyslog from dropping messages when retrying to connect if the server is not responding,
Guarda el archivo y sal del editor.
A continuación, ejecuta el siguiente comando‘rsyslogd‘ para comprobar y verificar tu configuración de Rsyslog.
rsyslogd -f /etc/rsyslog.conf -N1
Cuando no se produzca ningún error, ejecuta el comando‘systemctl‘ que aparece a continuación para reiniciar Rsyslog y verifícalo para asegurarte de que se está ejecutando.
sudo systemctl restart rsyslogd sudo systemctl status rsyslogd
A continuación puedes ver que el servicio Rsyslog se está ejecutando y que tus registros se enviarán al servidor Rsyslog en‘192.168.10.10‘.
Comprobación de los archivos de registro en el servidor Rsyslog
Para asegurarte de que tu Rsyslog funciona, tienes que comprobar el directorio de registro que has configurado en la plantilla. En este ejemplo, los archivos de registro de los servidores remotos se almacenarán en el directorio‘/var/log/servidores’.
Comprueba el directorio de registro‘/var/log/servidores‘ con el siguiente comando. Esto te mostrará el directorio de cada servidor.
ls /var/log/servers
Ahora comprueba el directorio de registro de tu servidor, que se almacena en el directorio‘/var/log/servidores/servidor-ip‘. Verás que hay varios archivos de registro disponibles en el servidor Rsyslog.
Ahora puedes comprobar los archivos de registro con el comando‘cat‘ o‘tail’ para ver los detalles de los registros.
cat /var/log/servers/logfile.log tail -f /var/log/servers/logfile.log
Conclusión
¡Enhorabuena! Has completado la instalación de Rsyslog en el servidor Debian 12. También has configurado el registro remoto mediante Rsyslog y enviado el registro al servidor mediante syslog UDP. Para el siguiente paso, también puedes configurar los módulos de entrada TCP y UDP e integrarlos con sistemas de registro como Rsyslog o Logstash.