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

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

comprobar rsyslog

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

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

configuración ufw

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:

  1. Habilitar el módulo‘imudp‘ para recibir logs de servidores remotos vía UDP
  2. Opcionalmente, habilita el módulo‘imtcp‘ para recibir logs vía TCP
  3. Habilita la opción‘AllowedSender‘ para permitir que subredes específicas envíen logs remotamente
  4. Añadir una plantilla personalizada para Rsyslog
  5. Comprobar la configuración de Rsyslog
  6. 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

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

comprobar el servicio rsyslog

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.

comprobar puerto 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

instalar cliente 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‘.

comprobar el servicio rsyslog

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

comprobar registro

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.

También te podría gustar...