Servidor de Logs con Syslog-ng

syslog-ng es la solución de gestión de registros que mejora el rendimiento de su solución sistema de Gestión de Eventos e Información de Seguridad (SIEM) al reducir la cantidad y mejorar la calidad de los datos que alimentan su SIEM.

Hoy les muestro como desplegar un servidor syslog-ng sobre una arquitectura de contenedores

Partiendo de la infraestructura siguiente:

Configuración del syslog-ng como Servidor

Nos conectamos al servidor que hospedara el syslog-ng

$ ssh -l root -p 22 192.168.0.27

Instalamos syslog-ng

root@syslog-ng:~# apt -yq install gpm syslog-ng

Accedemos al archivo de configuración principal

root@syslog-ng:~# vim /etc/syslog-ng/syslog-ng.conf

y añadimos en las opciones generales las opciones siguientes:

keep_hostname(yes);
chain_hostnames(on);
create_dirs(yes);

Quedando de la siguiente manera:

options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
dns_cache(no); owner("root"); group("adm"); perm(0640);
stats_freq(0); bad_hostname("^gconfd$");
keep_hostname(yes);chain_hostnames(on);create_dirs(yes);
};

Cree un archivo para configurar la recepción de los servicios:

root@syslogng:~# vim /etc/syslog-ng/conf.d/services_logs.conf

Dentro de dicho archivo configure los servicios de la forma siguiente:

source net_squid { tcp(ip(0.0.0.0) port(1020)); };
destination log_squid { file("/var/log/$HOST/squid/access.log"); };
log { source(net_squid); destination(log_squid); };

source net_mail { tcp(ip(0.0.0.0) port(1021)); };
destination log_mail { file("/var/log/$HOST/mail.log"); };
log { source(net_mail); destination(log_mail); };

source net_dns { tcp(ip(0.0.0.0) port(1022)); };
destination log_dns { file("/var/log/$HOST/named.log"); };
log { source(net_dns); destination(log_dns); };

Y listo, se reinicia el servicio

root@syslogng:~# systemctl restart syslog-ng

Configuración del syslog-ng como transmisor

Ahora accedemos a cada servidor a configurar el syslog-ng como cliente en cada uno de los servidores

Servidor DNS

$ ssh -l root -p 22 192.168.0.20

Instalamos syslog-ng

root@dns:~# apt -yq install gpm syslog-ng

Creamos un archivo para configurar el envio de los logs del servicio

root@dns:~# vim /etc/syslog-ng/conf.d/dns.conf

dentro le ponemos lo siguiente

source src_dns { file("/var/log/named/named.log"); };
destination dst_dns { tcp("192.168.0.27" port(1022)); };
log { source(src_dns); destination(dst_dns); };

reiniciamos el servicio

root@dns:~# systemctl restart syslog-ng

En el servidor de syslog-ng, veremos los logs reenviados en:

root@syslog-ng:~# tail -f /var/log/DNS/named.log

Servidor MAIL

$ ssh -l root -p 22 192.168.0.22

Instalamos syslog-ng

root@mail:~# apt -yq install gpm syslog-ng

Creamos un archivo para configurar el envio de los logs del servicio

root@mail:~# vim /etc/syslog-ng/conf.d/mail.conf

dentro le ponemos lo siguiente

source src_mail { file("/var/log/mail.log"); };
destination dst_mail { tcp("192.168.0.27" port(1021)); };
log { source(src_mail); destination(dst_mail); };

reiniciamos el servicio

root@mail:~# systemctl restart syslog-ng

En el servidor de syslog-ng, veremos los logs reenviados en:

root@syslog-ng:~# tail -f /var/log/MAIL/mail.log

Servidor PROXY

$ ssh -l root -p 22 192.168.0.24

Instalamos syslog-ng

root@proxy:~# apt -yq install gpm syslog-ng

Creamos un archivo para configurar el envio de los logs del servicio

root@proxy:~# vim /etc/syslog-ng/conf.d/proxy.conf

dentro le ponemos lo siguiente

source src_squid { file("/var/log/squid/access.log" multi-line-mode(indented)); };
destination dst_squid { tcp("172.30.0.27" port(1020)); };
log { source(src_squid); destination(dst_squid); flags(final);};

reiniciamos el servicio

root@proxy:~# systemctl restart syslog-ng

En el servidor de syslog-ng, veremos los logs reenviados en:

root@syslog-ng:~# tail -f /var/log/PROXY/squid/access.log

Y esto es todo.

Ya de esta forma tendran un servidor centralizado de los logs de los servicios.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

2 comentarios


  1. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 87.0 Firefox 87.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0

    muy buen post; ya llevo tiempo usando esta herramienta; sería bueno extenderlo con una entrada para los logs estándar de los servidores (messages, syslog, user, auth, btmp, etc) y crear desde el mismo syslog-ng algún tipo de script que compactara los logs cada cierto tiempo. Sld2

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*