You are on page 1of 25

Centralizacin de logs:

FACULTAT DINFORMTICA DE BARCELONA

Una experiencia real

Daniel Snchez Dorado


dani@fib.upc.edu

Facultad de Informtica de Barcelona


Universidad Politctica de Catalunya

Jornadas Tcnicas Rediris 2006


16 Noviembre 2006
Centralizacin de Logs: Presentacin
FACULTAT DINFORMTICA DE BARCELONA

El Laboratorio de Clculo de la Facultad de Informtica de


Barcelona (LCFIB) dispone de unos 80 servidores y 60
equipos diversos (SAIs, access points, routers,
switches, impresoras, sensores, cmaras, ) los cuales
son capaces de generar logs sobre su estado.

En general, cada equipo es una fuente local de logs

Esos logs generalmente estn basados en el sistema de


syslog de unix, en el sistema de eventos de Windows,
en traps SNMP o en ficheros locales
Centralizacin de Logs: Presentacin II

Pero, quin mira esos logs?


FACULTAT DINFORMTICA DE BARCELONA

El problema es que nadie controla estos logs


constantemente, lo cual nos lleva a que

los logs
nos dicen qu ha pasado

y nosotros queremos que


nos digan qu est pasando.
Centralizacin de Logs: Presentacin III

El ao pasado emprendimos un proyecto cuyo objetivo es


FACULTAT DINFORMTICA DE BARCELONA

incorporar la informacin til de los logs a nuestro


sistema de monitorizacin (Nagios) en tiempo real.

Existen gran cantidad de artculos explicando como se


consigue todo esto de manera sencilla.
Por ejemplo:
Sysadmin Diciembre 2004 Vol 13 Number 12
Centralized Logging for UNIX, Windows, and Network Devices Corey Ramsden

Descubrimos que estos artculos obvian ciertos


problemillas

El objetivo de esta presentacin es exponer todos los


problemas con que nos encontraremos para facilitar
esta tarea a futuros usuarios.
Centralizacin de Logs: Lista de tareas
FACULTAT DINFORMTICA DE BARCELONA

Las tareas bsicas son:

Recoleccin local
Qu recojo? Cmo lo clasifico?

Envo a un servidor central


Qu envo?

Anlisis
Qu busco?

Entrega de resultados
Cmo lo enseo?
Centralizacin de Logs: Syslog local

El sistema de syslog se encarga de recoger y almacenar en ficheros


FACULTAT DINFORMTICA DE BARCELONA

los eventos en funcin de 2 parmetros: la facility y la severity


En el syslog.conf clasificamos y archivamos los logs en ficheros en
funcin de ellos
Centralizacin de Logs: Syslog local II

Cada aplicacin enva los logs a una facility


FACULTAT DINFORMTICA DE BARCELONA

determinada

La mayora de distribuciones actuales agrupan los


logs por severity
#
# print most on tty10 and on the xconsole pipe
#
kern.warning;*.err;authpriv.none /dev/tty10
kern.warning;*.err;authpriv.none |/dev/xconsole
*.emerg *
#
# Warnings in one file
#
*.=warning;*.=err -/var/log/warn
*.crit /var/log/warn
#
# Some foreign boot scripts require local7
#
local0,local1.* -/var/log/localmessages
local2,local3.* -/var/log/localmessages
Centralizacin de Logs: syslog.conf

# Mensajes de kernel
FACULTAT DINFORMTICA DE BARCELONA

kern.panic;kern.emerg;kern.alert;kern.crit;kern.err /syslog/kern_greu.log
kern.warning;kern.notice;kern.info /syslog/kern.log

# Logs de los ipfilters de los firewals Linux


kern.debug /syslog/ip.log

user.debug /syslog/user.log
mail.debug /syslog/mail.log
daemon.debug /syslog/daemon.log
syslog.debug /syslog/syslog.log
lpr.emerg;lpr.alert;lpr.crit;lpr.notice /syslog/lpr.log

# Logs de los iptables de Solaris


local0.debug /syslog/ip.log
local2.debug /syslog/local2.log

# Logs de SAMBA
local4.warning /syslog/samba.log

# Logs del tripwire


local5.debug /syslog/tripwire.log
Centralizacin de Logs: Consideraciones

Hay aplicaciones que tienen la facility y severity dentro del cdigo.


FACULTAT DINFORMTICA DE BARCELONA

Otras en cambio, se pueden configurar

No siempre disponemos del cdigo fuente, o no es posible


cambiarlo: por ejemplo software propietario.

A veces el mismo software ocupa distintas facility en distintos


servidores !

Hay que hacer una revisin de todas las aplicaciones de todos los
sistemas y hacer una tabla para agrupar los logs por categoras de
facilitys comunes
Centralizacin de Logs:
Tabla de facilitys centralizada

Al final, hemos de llegar a una tabla como esta:


FACULTAT DINFORMTICA DE BARCELONA

Facility Uso
kern Mensajes del kernel, reservado
kern.debug El ipfilter de linux va forzosamente a kern.*. Elegimos ponerlo en debug -> lo redirecionaremos al ip.log

user Mensajes de usuario, user.notice usado para mensajes de conexion de usuarios de FIBNETLESS
mail Mail
daemon Daemons varios: dns, dhcp,
incluye script de actualizacion de fichero de firmas en ricino
auth ssh
syslog mensajes del syslog
lpr Impresoras
news Logs de windows -> Windows Security
uucp Logs de windows -> Windows System
cron
authpriv
ftp Amavis de ricino
ntp
log audit
log alert
clock daemon
local0 LOGS de firewalls (Linux ipfilter & Solaris iptables)
El ipfilter de Solaris va forzosamente al local0 --> OK -> lo redirecionaremos al ip.log
local1 usos locales
local2 usos locales
local3 LDAP
local4 samba
local5 Tripwire
local6 Redes - mensajes
local7 Para todo en general
Centralizacin de Logs: Windows

Usaremos el NTSyslog para integrar los sucesos de sistema de


FACULTAT DINFORMTICA DE BARCELONA

Windows (http://ntsyslog.sourceforge.net/)

Las categoras de sucesos de Windows parecen las de syslog,


pero en la prctica son completamente distintas
facility: Aplicacin, Seguridad, Sistema, (hay otras)
severity: Error, Advertencia, Informacin, Auditora de aciertos, Auditora de
errores

Qu monitorizamos?
Procedimiento:
Obtenemos la lista completa de sucesos del sistema
Knowledge Base artculos 299475 y 301677
(Descripciones de los sucesos de seguridad de Windows 2000)
Elegimos los mensajes que consideremos importantes
Escogemos las categoras que engloban todos estos mensajes
Centralizacion de Logs: poltica de Windows

Seguridad
FACULTAT DINFORMTICA DE BARCELONA

Sistema

Aplicacin
Centralizacin de Logs:otros

Los IOS de Cisco incorporan un cliente syslog, slo hay que


FACULTAT DINFORMTICA DE BARCELONA

configurarlo:
switch1#conf t
switch1(config)#
switch1(config)# logging facility local6
switch1(config)# logging 192.168.1.2
switch1(config)# logging trap 4

Las impresoras HP y las tarjetas de gestin de los SAIs modernos


incorporan tambin un cliente syslog

Aplicaciones especficas que dejan mensajes en ficheros concretos


pueden ser pasadas a syslog mediante un script o usando el
syslog-ng:
tail f <log> | logger p user.notice

Para el resto de dispositivos se puede habilitar un gestor de traps


SNMP
Centralizacin de Logs: qu envio?

Una vez hemos agrupado los logs por facility y los hemos
FACULTAT DINFORMTICA DE BARCELONA

sincronizado en todos los servidores, simplemente hemos de


indicar al syslog que enve los logs remotos, pero
Qu enviamos? Todo?

Nuestra poltica de syslog:

Se envan todos los logs de severity: emerg, alert, crit y error


En las mquinas que actan de firewall: todos los logs de firewall
En las mquinas gestoras de mail: todos los logs de mail
Centralizacin de Logs
FACULTAT DINFORMTICA DE BARCELONA

Para enviar los logs, simplemente aadir esta lnea al syslog.conf


de cada mquina:
*.emerg;*.alert;*.crit;*.err @nodo-central

En firewalls, aadimos el iptables


*.emerg;*.alert;*.crit;*.err;kern.=debug @nodo-central

En gestores de mail, aadimos:


*.mail @nodo-central
Centralizacin de Logs: Qu envio?

Otras decisiones:
FACULTAT DINFORMTICA DE BARCELONA

Syslog o syslog-ng?
Nuestra experiencia es que syslog-ng es recomendable, pero no
imprescindible
Para una instalacin nueva, yo lo instalara desde el principio.

Envo encriptado ?
Syslog enva los mensajes en texto en claro. Nosotros no lo hemos credo
necesario, pero puede serlo en entornos muy seguros

Almacenamiento en una BD
Centralizacin de Logs: Anlisis

El anlisis consiste en buscar los mensajes que realmente nos


FACULTAT DINFORMTICA DE BARCELONA

aportan informacin sobre el estado del sistema.

La clasificacin de severitys, en general no suele aportar mucho


sobre la gravedad de los mensajes, ya que cada software la
interpreta de formas muy distintas

En general, los programas normales utilizan una nica severity


para generar todos los mensajes.

Slo los programas ms sofisticados usan correctamente toda la


clasificacin de severitys (kernel, bind, samba, )
Centralizacin de Logs: Anlisis

Para el anlisis de los logs existen muchos programas de parser,


FACULTAT DINFORMTICA DE BARCELONA

los ms conocidos son:


Logsurfer+
Swatch

Nuestra recomendacin es agrupar cada facility en un fichero y


parsearlo por separado. Como hemos agrupado por facilitys, los
mensajes de un mismo tipo de programas estn agrupados, as
que es mucho ms fcil reconocer patrones
Centralizacin de Logs: Anlisis II

Swatch se basa en un fichero de configuracin del estilo:


FACULTAT DINFORMTICA DE BARCELONA

####################### Configuracion SWATCH ############################


# ATENCION: Fichero generado automaticamente por el SiMLog al ejecutar
# start_simlog.
# Fichero de Log: /xxxx/xarxes.log
#########################################################################
ignore /.*Ethernet.* changed state to .*/
ignore /.*last message repeated.*/
watchfor /(.*Configured from console by .*.*)/
bell
echo
mail xxxx@fib.upc.edu
exec perl /home/soft/swatch/send_alarm 'ALL' 0 '' '$1'
watchfor /(.*Attempted to connect to RSHELL from .*.*)/
exec perl /home/soft/swatch/send_alarm 'ALL' 1 '' '$1'
watchfor /(.*list .* denied .*.*)/
exec perl /home/soft/swatch/send_alarm 'ALL' 1 '' '$1'
watchfor /(.*list .* permitted .*.*)/
exec perl /home/soft/swatch/send_alarm 'ALL' 0 '' '$1'
watchfor /(.*)/
exec perl /home/soft/swatch/send_alarm switch1:switch2' 2 '' '$1'
Centralizacin de Logs: Anlisis II

Consejos:
FACULTAT DINFORMTICA DE BARCELONA

Una vez centralizados los logs, acumular mensajes en cada


categora durante unos das.

La primera regla que nos aparecer


ignore /(.*last message repeated.*)/

Algunos mensajes ya son sobradamente conocidos, as que ya


podemos incorporarlos. Otros los podremos obtener a partir de los
ficheros.

Aadimos una opcin de todo lo que no interpreto, genero una


alarma al final. De esta forma poco a poco irn apareciendo los
mensajes importantes e iremos descartando el resto
watchfor /(.*)/
mailto admin@fib.upc.edu

En ficheros con gran cantidad de mensajes podemos decidir que


todo lo no reconocido sea ignorado.
Centralizacin de Logs: Integracin con Nagios

Swatch es bueno reconociendo


FACULTAT DINFORMTICA DE BARCELONA

patrones, pero nosotros


necesitamos integrarlo con
nuestra herramienta de gestin de
redes: Nagios
Mi objetivo final es que cada equipo/servidor tenga una alarma que me
diga qu mensajes son importantes.
Nagios nos permite 3 niveles de alarma: OK, Warning y Critical. Tambin
me interesa incorporar este nivel de alarma a mis mensajes
Centralizacin de Logs :Integracin con Nagios II

Para integrarlo necesitamos un elemento ms, que nos relacione


FACULTAT DINFORMTICA DE BARCELONA

determinados logs con sus servidores y aada en nivel de OK,


Warning o Critical.
Para ello desarrollamos un script que aporta esta utilidad. Este
script parte de un fichero de configuracin como ste y nos genera
los ficheros de configuracin de swatch

log: /xxx/xarxes.log
ALL;;/Configured from console by .*/;"";OK;-;-;-
ALL;;/Attempted to connect to RSHELL from .*/;"";WARN;-;-;-
switch1,switch2;;/.* GigabitEthernet.*\/52 changed state to .*/;"";CRIT;-;-;-
switch1,switch2;;/.* GigabitEthernet.* changed state to .*/;"";NONE;-;-;-
ALL;;/psecure-violation error detected/;"";CRIT;-;-;-
ALL;;/.* FastEthernet.* changed state to .*/;"";NONE;-;-;-
ALL;;/FastEthernet.* is experiencing errors/;"";WARN;-;-;-
ALL;;/GigabitEthernet.* is experiencing errors/;"";WARN;-;-;-
ALL;;/list .* denied .*/;"";WARN;-;-;-
ALL;;/list .* permitted .*/;"";OK;-;-;-
ALL;;/FastEthernet.* link down\/up .* times per min/;"";NONE;-;-;-
router1,router2;;/GigabitEthernet.* link down\/up .* times per min/;"";CRIT;-;-;-
ALL;;/last message repeated/;"";NONE;-;-;- router1,router2;;/.*/;"";CRIT;-;-;-
ALL;;/.*/;"";CRIT;-;-;-
Centralizacin de Logs: Integracin con Nagios III

Para incorporar las alarmas a Nagios usaremos la opcin de


FACULTAT DINFORMTICA DE BARCELONA

swatch de llamar a un programa externo para pasarle el mensaje,


la mquina y el nivel de alarma

El script send_alarm escribe en el fichero de comandos externos


(nagios.cmd) el resultado de la alarma
watchfor /(.*list .* permitted .*.*)/
exec perl /home/soft/swatch/send_alarm 'ALL' 0 '' '$1

Para Nagios crearemos una servicio nuevo donde incorporaremos


estos mensajes. Este servicio ser de tipo voltil
define service{
name simlog-generico
use servicio-generico
service_description MENSAJES
max_check_attempts 1
is_volatile 1
normal_check_interval 60
contact_groups admin-lcfib
check_command reset_alarm
stalking_options o,w,c,u
register 0
}
Ventajas adicionales

Ventajas adicionales:
FACULTAT DINFORMTICA DE BARCELONA

Logs remotos dan seguridad


aadida ya que no pueden ser
modificados

Nos permite centralizar


software de estadstico,
grficas,

Nos permite hacer correlacin


de eventos

Notificaciones de scripts
especficos
Centralizacin: Documentacin interesante

Documentacin sobre las auditoras de Windows:


FACULTAT DINFORMTICA DE BARCELONA


http://www.microsoft.com/spain/technet/seguridad/2000server/chapters/ch06secops.asp

Logsurfer+
http://www.samag.com/documents/s=9053/sam0403i/0403i.htm
Cross-Platform Event Reporting
http://www.samag.com/articles/2000/0009/
Remote System Logs via SSH
http://www.samag.com/documents/s=1149/sam0106s/0106s.htm
Sitio web sobre temas de logs. Buenos artculos y
referencias
http://www.loganalysis.org/
Guia de mensajes inesperados en los logs:
http://www.loganalysis.org/presentations/syslog_sans_webcast.pdf
Snare EventLog (LotusNotes, windows, es GNU)
http://www.intersectalliance.com/projects/SnareWindows/index.html

You might also like