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.
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Tutorial Rsyslog Debian Squeeze
1. Configuración de
sistemas de logs
Debian Squeeze
Arturo Borrero González
Febrero 2011
IES G.Nazareno | IAIG
Documento con licencia“CC-BY-SA 3.0”.
Puede copiar y distribuir libremente este documento
bajo los términos de que propugna la citada licencia.
http://www.ral-arturo.blogspot.com
2. 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" local
3. 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
3. Configuración de Sistemas de Logs Arturo Borrero González
LOGS CENTARLIZADOS
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
4. 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 diréctamente 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
5. 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 dia, 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 envio 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
6. 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 comodo
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