Servidor de logs con RSYSLOG en CentOS

En esta entrada, voy a explicar como configurar un servidor de logs con rsyslog en CentOS. Hace poco me encontré con un problema en el que los logs de la maquina implicada, me hubiesen sido de gran ayuda, el problema es que después del fallo que tuvo, y tras reiniciarla, no habían logs disponibles ya que por que por alguna razón estos se habían corrompido.

Una forma muy sencilla de evitar este tipo de situaciones es tener un servidor de logs, lo cual es relativamente sencillo. Para empezar, en nuestro servidor de logs, debemos realizar los siguientes pasos:

Editar el fichero /etc/rsyslog.conf:

1
Imagen 1. Servidor rsyslog

y descomentar las lineas:

$ModLoad imtcp
$InputTCPServerRun 514

Si queremos que la comunicación vaya por UDP, tendríamos que descomentar las siguientes linea:

#$ModLoad imudp
#$UDPServerRun 514

Pero en todo caso recomiendo que esto se realice mediante TCP.

A continuación debemos abrir el puerto 514 en TCP en el firewall, así que ejecutamos:

firewall-cmd --zone=public --add-port=514/tcp --permanent
firewall-cmd --reload

En la maquina cliente, se debe editar el fichero /etc/rsyslog.conf, dentro de ese fichero se deben definir los sistemas y sus prioridades. A continuación un ejemplo de como se define una linea:

mail.*                          /var/log/secure

En el caso anterior el sistema es mail.*, y se procederá a guardar todos los logs relacionados  con mail. Como se detalla está dividido en dos partes “mail” y “*”, estas partes están predefinidas y son las siguientes:

Parte uno, sistema:

  • auth: Comandos relacionadas con autenticacion y seguridad
  • authpriv: Mensajes de autorización privados
  • daemon: Demonios del sistema
  • ftp: El demonio de FTP
  • kern: El Kernel
  • lpr: El sistema de cola de impresión de BSD
  • mail: sendmail y otros softwares relacionados con email 
  • makr: Marcas de tiempo generadas a intervalos regulares
  • news : El sistema de noticias de Usenet
  • security: Igual que auth
  • syslog: Mensajes internos del demonio de syslog
  • user – Procesos de los usuarios
  • uucp – Reservado para UUCP

Parte dos, prioridad:

  • debug: Solo para mensajes de debug
  • info: Mensajes de información
  • notice: Cosas que podrían merecer ser investigadas
  • warning (or warn): Mensajes de advertencia
  • err (or error): Otras condiciones de Error
  • crit: Condiciones criticas
  • alert: Situaciones urgentes
  • emerg (or panic): Situaciones de pánico

Jugando con los sistemas y prioridades, podemos añadir una línea en el fichero de la siguiente manera:

daemon.*      @@192.168.1.123:514

Como podéis detallar en este caso los mensajes no serán enviados  a un fichero local si no a nuestro servidor esto lo declaramos escribiendo dos arrobas (@@) , la dirección IP del servidor y el puerto de comunicación, que es opcional si se mantiene el 514. Si la conexión se va a realizar por UDP solo tendríamos que colocar un arroba (@).

También podriamos enviar todos los logs a nuestro servidor de logs:

*.*      @@192.168.1.123:514

A continuación guardamos y reiniciamos el demonio de syslog en el servidor y seguidamente en el cliente ejecutando:

systemctl restart rsyslog

con esto seria suficiente y desde nuestro servidor de logs, ya tendríamos todos los logs de nuestro cliente, como se puede detallar a continuación:

1xhx1.JPG
Imagen 2. /var/log/messages mostrando los logs de nuestro cliente 1xhackerx1

Si no quieres que te pase como a mi, entonces configura tu servidor de logs.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s