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.27Instalamos syslog-ng
root@syslog-ng:~# apt -yq install gpm syslog-ngAccedemos al archivo de configuración principal
root@syslog-ng:~# vim /etc/syslog-ng/syslog-ng.confy 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.confDentro 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-ngConfiguració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.20Instalamos syslog-ng
root@dns:~# apt -yq install gpm syslog-ngCreamos un archivo para configurar el envio de los logs del servicio
root@dns:~# vim /etc/syslog-ng/conf.d/dns.confdentro 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-ngEn el servidor de syslog-ng, veremos los logs reenviados en:
root@syslog-ng:~# tail -f /var/log/DNS/named.logServidor MAIL
$ ssh -l root -p 22 192.168.0.22Instalamos syslog-ng
root@mail:~# apt -yq install gpm syslog-ngCreamos un archivo para configurar el envio de los logs del servicio
root@mail:~# vim /etc/syslog-ng/conf.d/mail.confdentro 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-ngEn el servidor de syslog-ng, veremos los logs reenviados en:
root@syslog-ng:~# tail -f /var/log/MAIL/mail.logServidor PROXY
$ ssh -l root -p 22 192.168.0.24Instalamos syslog-ng
root@proxy:~# apt -yq install gpm syslog-ngCreamos un archivo para configurar el envio de los logs del servicio
root@proxy:~# vim /etc/syslog-ng/conf.d/proxy.confdentro 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-ngEn el servidor de syslog-ng, veremos los logs reenviados en:
root@syslog-ng:~# tail -f /var/log/PROXY/squid/access.logY esto es todo.
Ya de esta forma tendran un servidor centralizado de los logs de los servicios.







No comments yet