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.
Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
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
Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
En este sitio hay una solución como la que comentas, date una vuelta por aquí: https://www.sysadminsdecuba.com/2018/05/como-configurar-un-server-de-logs-en-linux-y-configurar-tus-clientes-correctamente/