NIDS & Analizadores de Logs
Sergio González González
Universidad de León, España
[email protected]
Este artículo pretende mostrar la forma de instalar y configurar, en la distribución Debian
GNU/Linux, algunos programas analizadores de logs y NIDS (Network Intrusion Detection
System).
Introducción
Para facilitar la vida de un administrador de sistemas, se hace imprescindible el uso de analizadores de
logs, que reporten las incidencias más importantes acaecídas en un determinado equipo. En este
documento se mostrarán los siguientes analizadores de logs:
• Calamaris (http://cord.de/tools/squid/calamaris/) - analizador de logs para Squid
(http://www.squid-cache.org)
• AWStats (http://awstats.sourceforge.net) - Analizador de logs para Apache (http://www.apache.org)
•
•
log2mail - Analizador de logs en busca de determinadas cadenas
logcheck - Analizador de logs que envía las anomalías del sistema al administrador
De todos es sabido que la red es un “mundo hostil”, por ello se hace necesario analizar el estado de
nuestra red en busca de personajes sin escrúpulos que quieren a toda costa contactar de forma ilícita con
nuestros servidores. Los programas NIDS ayudan en esta labor, aunque no son infalibles, por desgracia...
Veremos a continuación algunos de los programas utilizados:
• Snort (http://www.snort.org/) - The Open Source Network Intrusion Detection System
•
ippl (http://pltplp.net/ippl/) - IP protocols logger
Analizadores de logs
Sección dedicada a las herramientas analizadores de logs que actualmente se están utilizando en los
servidores de la Unidad de Imagen y del laboratorio F1.
1
NIDS & Analizadores de Logs
Calamaris
Calamaris es un script en Perl que genera estadísticas a partir de los archivos de log de Squid. Se ejecuta
una vez al día, antes de la rotación de los logs y envía las estadísticas al administrador del sistema.
Podemos ver un ejemplo de estos reportes en este enlace
(http://www.cord.de/tools/squid/calamaris/calamaris-2.html).
La instalación y configuración de Calamaris es extermadamente fácil en Debian GNU/Linux. Para
instalarlo ejecutaremos:
# apt-get install calamaris
Una vez se ha bajado el programa, nos hará una serie de preguntas, a las que responderemos 1 de la
siguiente forma:
What type of proxy log files do you want to analyse? squid
How should the daily analysis of Calamaris be stored? mail
How should the weekly analysis of Calamaris be stored? mail
How should the monthly analysis of Calamaris be stored? mail
Email address to which the daily analysis should be sent -> root
Al finalizar la configuración, nos generará el siguiente archivo de configuración
# configuration file for calamaris
# by Philipp Frauenfelder <
[email protected]>
# 1998-10-09
# There are three categories: daily, weekly and monthly. For each of these
# one line is responsible. There must be a line for each category but only
# one.
# cat: [daily|weekly|monthly]
# mailto: mailaddress, eg. root
# webto: path incl. file name, eg. /var/www/calamaris/daily.html.
The script does currently not check wether the directory
#
#
exists and fails with a rather ugly error.
# todo: [nothing|mail|web|both]
# title: try it :-)
# cat:mailto:webto:todo:title
daily:root:/var/www/calamaris/daily.html:mail:’Squid daily’
weekly:root:/var/www/calamaris/weekly.html:mail:’Squid weekly’
monthly:root:/var/www/calamaris/monthly.html:mail:’Squid monthly’
# what log files should be parsed: [auto|squid|oops]
#
#
#
cache=squid
auto: tries to find the log files in this order: squid, oops
squid: parses a squid log file if available
oops: parses a oops log file if available
2
NIDS & Analizadores de Logs
AWStats
Advanced Web Statistics (AWStats) es un analizador de archivos de log de un servidor web escrito en
Perl. Muestra todas las estadísticas, incluyendo la cantidad de visitas, páginas visitadas, hits, horas de
mayor actividad, buscadores, palabras clave usadas para encontrar el sitio, robots, enlaces rotos y mucho
más. Para instalarlo tenemos que teclear:
# apt-get install calamaris
La configuración se lleva a cabo en el archivo /etc/awstats/awstats.conf y las opciones más
interesantes serían:
LogFormat=1
DNSLookup=1
SiteDomain="cancerbero.unileon.es"
HostAliases="cancerbero.unileon.es 193.146.99.248"
Lang="es"
DefaultFile="index.html"
Cancerbero posee sus propias estadísticas (http://cancerbero.unileon.es/cgi-bin/awstats.pl) generadas por
AWStatas.
log2mail
log2mail es un demonio que revisa los archivos de log y envía a un correo electrónio a una determinada
dirección si se da una expresión regular. Vamos a configurarlo de forma que se envíe un correo al
administrador del sistema cada vez que un usuario se conecta a través de ssh al sistema o lo abandona. A
continuación se muestran los archivos que se han de editar, así como su contenido:
/etc/log2mail/config/default
# sample config file for log2mail
# comments start with ’#’
# see source code doc/Configuration for additional information
defaults
sendtime = 20
resendtime = 50
maxlines = 1
template = /etc/log2mail/mail
fromaddr = log2mail
sendmail = /usr/lib/sendmail -oi -t
file = /var/log/messages
pattern = "root login"
mailto = root
file = /var/log/auth.log
pattern = "(ssh) session opened"
mailto = root
3
NIDS & Analizadores de Logs
pattern = "(ssh) session closed"
mailto = root
/etc/log2mail/mail
From: %f
To: %t
Subject: Coincidencia en: %m
Coincidencia de "%m" en "%F" %n veces:
--------------------------------------------------
%l
---------------------------------------------------
logcheck
Logcheck es parte del Proyecto Abacus de herramientas de seguridad. Este programa ha sido creado con
la intención de ayudar en el procesado de archivos de log generados en sistemas UNIX. Logcheck
encuentra las alertas de seguridad en los logs y las envía la correo del administrador. La forma de
instalarlo es la siguiente:
# apt-get install logcheck
Una vez se ha bajado el programa, nos hará una serie de preguntas, que responderemos de la siguiente
manera:
The email address to which the mails should be sent -> root
Esto es todo lo que tenemos que hacer, a partir de este momento, los avisos de seguridad llegarán
puntualmente a nuestro correo ;-)
NIDS - Network Intrusion Detection System
Snort
Snort es un sistema detector de intrusiones en la red, capaz de hacer análisis en tiempo real y almacenar
en un archivo de log los paquetes IP que han llegado a una determinada interfaz de red. La forma de
instalarlo será la siguiente:
# apt-get install snort snort-common snort-doc snort-rules-default
Una vez se ha bajado el paquete, contestaremos a las preguntas realizadas de la siguiente forma:
4
NIDS & Analizadores de Logs
¿Cuando debería arrancarse Snort? boot
¿En qué interfaz debería escuchar Snort? eth1 (para Cancerbero)
What address range should Snort consider to be local? 192.168.1.0/16
¿Debería deshabilitar el modo promiscuo? No
¿Deberían las reglas de Snort cambiarse de orden a Pasar|Alertar|Registrar? No
Si quiere añadir opciones adicionales a ’snort’, especifiquelas aquí: "En blanco"
¿Quién debería recibir las estadísticas diarias? root
Una alerta debe aparecer más de éste número de veces para aparecer en las estadísticas. -> 1
Con eso es suficiente para que se ponga en marcha.
ippl
ippl es un “demonio” que guarda en archivos de log los paquetes IP enviados a un ordenador. Se ejecuta
en segundo plano y muestra la información de los paquetes entrantes. Para instalarlo ejecutaremos:
# apt-get install ippl
La configuración se lleva a cabo en el archivo de configuración situado en /etc/ippl.conf. Ha de
tener un aspecto similar al siguiente:
# IP protocols logger - Configuration file
# See ippl.conf(5)
# User used
# ---------
# Specify the user (declared in /etc/passwd) used to run the
# logging threads.
runas nobody
# Resolve hostnames?
# ------------------
# Uncomment the line below to disable DNS lookups
#noresolve all
# Use ident?
# ----------
# Uncomment the line below to enable IDENT lookups
#ident
# Log end of TCP connections ?
# ----------------------------
# Uncomment the line below to enable logging of closing TCP connections
# See the BUGS file.
#logclosing
# Expiration of DNS data
# ----------------------
#expire 3600
# Log in a file
# -------------
5
# Uncomment this line if you want to log messages into a /var/log/ippl.log
# See ippl.conf(5) for the syntax.
log-in all /var/log/ippl/all.log
log-in udp /var/log/ippl/udp.log
NIDS & Analizadores de Logs
# Protocols logged
# ----------------
run icmp tcp
# Uncomment the line below to log UDP traffic.
# See ippl.conf(5) for recommandations.
run udp
# Logging format
# ----------------
# If you want to see the destination address, the ports, etc
# Or if you want to log the minimal information.
# See ippl.conf(5) for details.
logformat detailed all
# Filtering of packets logged
# ---------------------------
# Do not log answers to echo requests
#ignore icmp type echo_reply
# Log telnet connections using ident and name resolution
log options ident,resolve tcp port telnet
# Do not log UDP from localhost
#ignore udp from localhost
# Do not log DNS queries
#ignore udp port domain
#ignore udp srcport domain
# End of configuration
# Copyright (C) 1998-1999 Hugo Haas - Etienne Bernard
Más información
Si se quiere profundizar en alguno de estos programas, se invita al lector a consultar la ayuda que
acompaña al programa así como las páginas principales de cada uno2.
Sobre este documento
Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia
de Documentación Libre GNU, versión 1.1 o cualquier versión posterior publicada por la Free Software
6
NIDS & Analizadores de Logs
Foundation. Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/fdl.html
(http://www.gnu.org/copyleft/fdl.html)
Este documento ha sido escrito en formato XML utilizando la DTD de DocBook
(http://www.docbook.org). Me
Comentarios de: NIDS & Analizadores de Logs (0)
No hay comentarios