Gestión de Logs Carlos Vicente Servicios de Red Universidad de
23 Slides431.00 KB
Gestión de Logs Carlos Vicente Servicios de Red Universidad de Oregon Hervey Allen Network Startup Resource Center http://nsrc.org/
Contenido Introducción syslog syslog-ng php-syslogng swatch
Introducción Los logs son la principal fuente de información acerca de la actividad de la red y los sistemas Esenciales para: Detección de ataques e intrusos Detección de problemas de hardware/software Análisis forense de sistemas La clave de la monitorización pasiva es la centralización de los mensajes
Servidor Log Central
Syslog Syslog provee un servicio estándar y de mensajes Por qué estándar: Una interfaz API para aplicaciones (y el sistema operativo) Define niveles de severidad y agrupaciones de mensajes por tipo Por qué distribuido Cliente/Servidor Local o remoto
Niveles Syslog LOG EMERG LOG EMERG LOG ALERT LOG ALERT LOG CRIT LOG CRIT LOG ERR LOG ERR LOG WARNING LOG WARNING LOG NOTICE LOG NOTICE LOG INFO LOG INFO LOG DEBUG LOG DEBUG Sistema Sistema en en estado estado inútil inútil Se Se requiere requiere acción acción inmediata inmediata Condiciones Condiciones críticas críticas Condiciones Condiciones de de Error Error Condiciones Condiciones de de precaución precaución Condición Condición normal, normal, pero pero significativa significativa Mensaje Mensaje informativo informativo Mensaje Mensaje de de depuración depuración
Grupos Syslog (Facilities) LOG AUTH LOG AUTH LOG AUTHPRIV LOG AUTHPRIV LOG CRON LOG CRON LOG DAEMON LOG DAEMON LOG FTP LOG FTP LOG KERN LOG KERN LOG LOCAL[0-7] LOG LOCAL[0-7] LOG LPR LOG LPR LOG MAIL LOG MAIL LOG NEWS LOG NEWS LOG SYSLOG LOG SYSLOG LOG USER (default) LOG USER (default) LOG UUCP LOG UUCP Mensajes de seguridad/autenticación (descontinuado) Mensajes de seguridad/autenticación (descontinuado) Mensajes de seguridad/autenticación (privado) Mensajes de seguridad/autenticación (privado) Servicio CRON Servicio CRON Daemons del sistema Daemons del sistema Daemon FTP Daemon FTP Mensajes del Kernel Mensajes del Kernel Reservados para uso local Reservados para uso local Sub-sistema de impresión Sub-sistema de impresión Sub-sistema de correo Sub-sistema de correo Sub-sistema de noticias USENET Sub-sistema de noticias USENET Mensajes generados internamente por Syslogd Mensajes generados internamente por Syslogd Mensajes de nivel de usuario genéricos Mensajes de nivel de usuario genéricos Sub-sistema UUCP Sub-sistema UUCP
Configuración de cliente syslog /etc/syslog.conf facility . nivel [,.] Comodines: * todos none ninguno *.info,mail.none *.info,mail.none mail.* mail.* *.* *.* path/to/logfile @remote server /var/log/messages /var/log/messages /var/log/maillog /var/log/maillog @192.168.0.10 @192.168.0.10
syslog-ng ng nueva generación Tiene varias ventajas sobre el syslog tradicional Transporte UDP y TCP Filtrado basado en el contenido de los mensajes Soporte para cifrado Puede ejecutarse bajo un entorno chroot Usar syslog-ng en el servidor central
Configuración syslog-ng /etc/syslog-ng.conf Consta de Opciones globales Fuentes (Sources) Destinos (Destinations) Filtros (Filters) Fuentes, Filtros y Destinos se conectan con comandos 'log'
Opciones globales en syslog-ng options { options { create dirs (yes); create dirs (yes); dir perm(0755); dir perm(0755); use dns(yes); use dns(yes); dns cache(yes); dns cache(yes); keep hostname(yes); keep hostname(yes); use fqdn(yes); use fqdn(yes); perm(0644); perm(0644); sync(0); sync(0); escribir escribir }; }; # Crear subdirectorios # Crear subdirectorios # Permisos para los directorios creados # Permisos para los directorios creados # Hacer caching de DNS # Hacer caching de DNS # Usar el nombre de host en el mensaje # Usar el nombre de host en el mensaje # Usar nombre DNS completo # Usar nombre DNS completo # Permisos para los archivos creados # Permisos para los archivos creados # Número de líneas en búfer antes de # Número de líneas en búfer antes de
Fuentes en syslog-ng Determinan de dónde se sacan los mensajes. Los métodos de obtención se llaman Sourcedrivers: file, unix-dgram, unix-stream, udp, tcp source sources udp s udp{ {udp udp(ip(0.0.0.0) (ip(0.0.0.0)port(514)); port(514));};};
Destinos en syslog-ng Determinan dónde se van a enviar los mensajes Los mismos métodos que en la fuente usertty destination destinationallbyhostfile allbyhostfile{ {file("/log/hosts/ HOST/ FACILITY. PRIORITY" file("/log/hosts/ HOST/ FACILITY. PRIORITY" owner(root) owner(root)group(root) group(root)perm(0644) perm(0644)dir perm(0755) dir perm(0755)create dirs(yes)); create dirs(yes)); };}; destination destinationciscofile ciscofile{ {file("/log/cisco" file("/log/cisco" owner(root) group(root) owner(root) group(root)perm(0644) perm(0644)dir perm(0755) dir perm(0755)create dirs(yes)); create dirs(yes)); };};
Filtros en syslog-ng Sirven para clasificar los mensajes basados en su contenido. Aceptan operadores booleanos (AND, OR, NOT) y las siguientes funciones: facility, level, program, host, match filter filterciscofilter ciscofilter{ {facility(local3) facility(local3)and andnot nothost(server1); host(server1);};};
Configuración syslog-ng El comando log combina los elementos descritos anteriormente para generar una acción log log{source(s udp); {source(s udp);filter(ciscofilter); filter(ciscofilter);destination(ciscofile); destination(ciscofile);flags(final); flags(final);};};
MySQL y php-syslog-ng Una herramienta muy útil para un servidor central de syslog-ng Inserta cada mensaje en una simple tabla MySQL Permite hacer búsquedas basadas en diversos criterios Nodo de origen Rango de tiempo Prioridad Interfaz web
php-syslog-ng
php-syslog-ng
Consideraciones de Seguridad Restringir el tráfico syslog en el servidor central Sólo permitir que sus equipos envíen logs Por ejemplo, usar iptables: # iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 514 -j ACCEPT # iptables -A INPUT -s 0/0 -p udp --dport 514 -j REJECT
Swatch Simple Log Watcher Escrito en Perl Se monitorea los archivos de log buscando patrones (expresiones regulares). Despues, se lo hace una accion si una patron es encontrado.
Swatch /things ignore watchfor /NATIVE VLAN MISMATCH/ mail root,subject VLAN problem threshold type limit,count 1,seconds 3600 watchfor /CONFIG I/ mail root,subject Router config threshold type limit,count 1,seconds 3600 to ignore/
Enlaces php-syslog-ng: http://code.google.com/p/php-syslog-ng/ Swatch: http://swatch.sourceforge.net/
Referencias http://www.loganalysis.org/ Syslog NG Windows Event Log to Syslog: http://www.balabit.com/network-security/syslog-ng/ https://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys SWATCH log watcher http://swatch.sourceforge.net/ http://www.loganalysis.org/sections/signatures/log-swatch-skendrick.txt http://www.loganalysis.org/ http://sourceforge.net/docman/display doc.php?docid 5332&group id 25401