Tutorial Rsyslog Debian Squeeze

6

Click here to load reader

description

Memoria/Tutorial sobre la implementación y correcta configuración de un sistema de logs centralizados y monitorizados automáticamente por el sistema. Se enviarán por correo electrónico resúmenes.

Transcript of Tutorial Rsyslog Debian Squeeze

Page 1: Tutorial Rsyslog Debian Squeeze

Configuración de sistemas de logs

Debian Squeeze

Arturo Borrero GonzálezFebrero 2011IES G.Nazareno | IAIG

Documento con licencia“CC-BY-SA 3.0”.Puede copiar y distribuir libremente este documentobajo los términos de que propugna la citada licencia.

http://www.ral-arturo.blogspot.com

Page 2: Tutorial Rsyslog Debian Squeeze

Configuración de Sistemas de Logs Arturo Borrero González

INTRODUCCIÓN

Todo aparato informático tiene o debe tener un sistema que facilite la “monitorización”, el registro de actividades y el seguimiento del funcionamiento. En sistemas tipo Unix esto está muy desarrollado, y hay diversas herramientas que pueden implementarse (algunas ya vienen integradas “de fábrica”) para ayudarnos en la gestión y administración de nuestros sistemas.

Los objetivos de esta práctica eran los siguientes:

Configura la red virtual para que las líneas de los ficheros de log se envíen a un solo equipo y de éste lo más importante al administrador por correo, para ello:

1. Configura dom0 para que actúe como servidor syslog y la máquina “goku” para que envíe todos sus registros al dom0

2. Configura el log de bind9 de “goku” para que utilice una "facility" local3. Configura el syslog del dom0 para que envíe todos los registros de la "facility"

anterior a un fichero concreto dentro de /var/log y los quite del syslog.4. Crea una regla de logrotate para que los ficheros de log anteriores se roten a diario y

se borren dos semanas después.5. Instala y configura adecuadamente logcheck para que informe una vez al día sólo de

las incidencias del DNS de “goku”

El entorno donde se ha desarrollado la práctica está formado por:

• Máquina física Debian Squeeze amd64 (nostromo), dom0.• Máquina virtual KVM Debian Squeeze amd64 (goku), domU.• Máquina virtual KVM Debian Squeeze amd64 (krilin), domU.

Y el software que está directamente involucrado es el siguiente:

• rsyslog• logrotate• logcheck

Cabe mencionar que todo el software es el empaquetado y distribuido oficialmente por Debian.

IES G.Nazareno | IAIG | Febrero 2011 Pag. 2/6

Page 3: Tutorial Rsyslog Debian Squeeze

Configuración de Sistemas de Logs Arturo Borrero González

LOGS CENT RA LIZADOS

El primer paso desarrollado es la centralización de logs de varias máquinas en una sola. Esto es realizado mediante la aplicación “rsyslog”, que será la que provea de las herramientas necesarias para la configuración y automatización de los procesos.

Será necesario modificar la configuración tanto en los emisores como en los receptores de logs.

En la máquina donde vamos a recibir los logs, tendremos que especificar en un par de ficheros que el demonio debe escuchar un determinado puerto y protocolo. Podemos usar a nuestra elección el protocolo TCP o UDP:

root@nostromo:~# cat /etc/default/rsyslog[…]RSYSLOGD_OPTIONS="-r514" […]

En el siguiente fichero, usamos la instrucción “& ~ “ para indicar que todos los mensajes que ya hayan cumplido una de las reglas anteriores se descarte.Esto significa que los mensajes procedentes de las máquinas virtuales y del dns solo serán almacenados en “vm.log” y “dns.log” respectivamente:

root@nostromo:~# cat /etc/rsyslog.conf[…]# provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 […] #práctica logeo centralizado if $fromhost-ip startswith '10.0.0' then /var/log/vm.log& ~local3.* /var/log/dns.log & ~ […]

En cada cliente también debemos de modificar el fichero de configuración de rsyslog.Las directivas son muy sencillas:

root@goku:~# cat /etc/rsyslog.conf[…] *.* @@10.0.0.128 #se envian todos los mensajes a la ip de la máquina receptora.

Configurar una facility y el DNS para un movimiento de registros más complejos es una tarea también sencilla.Creamos la siguiente directiva en el fichero correspondiente:

root@goku:~# cat /etc/rsyslog.conf[…]local3.* @@10.0.0.128 #en local3 estarán los mensajes del dns

IES G.Nazareno | IAIG | Febrero 2011 Pag. 3/6

Page 4: Tutorial Rsyslog Debian Squeeze

Configuración de Sistemas de Logs Arturo Borrero González

También he tenido que realizar unas pequeñas modificaciones en el servidor DNS para que utilice la “facility” local3:

root@goku:~# cat /etc/bind/named.conf[…]

logging { channel default_syslog { syslog local3; }; };

[…]

ROTACIÓN DE LOGS

Una cuestión importante a tener en cuenta es el asunto de las rotaciones de los logs. Sin una buena configuración, podemos encontrarnos con ficheros de logs demasiado grandes para poder ser interpretados, y que por tanto, dejarán de ser útiles. Además, el disco duro va a notarlo seguramente.

En la máquina que recibe los logs, se ha configurador la herramienta “logrotate” de la siguiente manera:

root@nostromo:/etc/logrotate.d# cat-dry vm_log ---> Mostrando fichero vm_log || Original: 8 || Visualizado: 7 1 /var/log/vm.log { 2 daily 3 rotate 14 4 nomail 5 compress 6 endscript 7 }

root@nostromo:/etc/logrotate.d# cat-dry dns_log ---> Mostrando fichero dns_log || Original: 8 || Visualizado: 7 1 /var/log/dns.log { 2 daily 3 rotate 14 4 nomail 5 compress 6 endscript 7 }

Logrotate incluirá automáticamente estos ficheros en su configuración. Otra manera de especificar estas directivas es meterlas directamente en el fichero “/etc/logrotate.conf”, donde hay una sección destinada a este tipo de configuración específica de cada sistema.

IES G.Nazareno | IAIG | Febrero 2011 Pag. 4/6

Page 5: Tutorial Rsyslog Debian Squeeze

Configuración de Sistemas de Logs Arturo Borrero González

LOGS NOTIFICADOS

Es muy interesante la idea de enviar/recibir emails informativos con resúmenes de los logs y con alertas de irregularidades variadas del sistema (ataques, fallos, etc.).La herramienta “logcheck” permite concretamente esto. A través de unos sistemas de análisis de los ficheros, comparándolos con unos patrones establecidos, logcheck puede determinar si en el sistema se está produciendo un ataque, una saturación de un disco duro, o cualquier cosa anómala.

Logcheck se ejecuta con el sistema local de programación de tareas “cron”, y pueden verse las entradas, que yo he modificado para que logcheck entre en acción dos veces al día, una por la mañana y otra por la tarde-noche:

/etc/cron.d/logcheck

# /etc/cron.d/logcheck: crontab entries for the logcheck package

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

@reboot logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi #2 * * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi * 8 * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi * 20 * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

# EOF

En la configuración propia de logcheck he dejado lo siguiente:

root@nostromo:/etc/logcheck# cat-dry logcheck.conf ---> Mostrando fichero logcheck.conf || Original: 85 || Visualizado: 6 1 REPORTLEVEL="server" 2 SENDMAILTO="arturo@localhost" 3 MAILASATTACH=0 4 FQDN=1 5 ADDTAG="yes" 6 TMP="/tmp"

Logcheck usará el sistema local de envío de emails que tengamos instalado (exim, postfix, etc..). Si está correctamente configurado el smpt, podremos enviar estos emails a internet. En caso contrario, se almacenarán localmente como correo de usuario.

IES G.Nazareno | IAIG | Febrero 2011 Pag. 5/6

Page 6: Tutorial Rsyslog Debian Squeeze

Configuración de Sistemas de Logs Arturo Borrero González

CONCLUSIONES Y RECURSOS

La combinación del software tratado en este documento crea una herramienta conjunta muy funcional y útil. Es bastante probable que no podamos estar todo el día delante de nuestros servidores/máquinas monitorizando y gestionando los logs. Así que mediante estos mecanismos la tarea queda automatizada y simplificada.

Esta práctica me ha resultado muy gratificante y en cuanto vea la oportunidad de hacer una implementación similar en un entorno en producción real, lo haré.

Algunos recursos que he usado, y que me parece importante reseñar:

• http://www.rsyslog.com/ Página oficial de rsyslog. Muy buena documentación y ejemplos de configuración.

• ttp://linuxcommand.org/man_pages/logrotate8.html Recurso sobre logrotate, similar a la página de manual de debian, pero más cómodo de leer :)

• http://www.debian-administration.org/articles/278 Tutorial con ejemplos sobre la configuración de un sistema de logs similar al realizado en esta práctica.

IES G.Nazareno | IAIG | Febrero 2011 Pag. 6/6