Resumen
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).
Tabla de contenidos
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:
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:
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.
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.
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] # 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 cache=squid |
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 generadas por AWStatas.
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:
# 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
pattern = "(ssh) session closed"
mailto = root |
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 ;-)
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:
¿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 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 # ------------- # 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 # 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 |
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 uno[2].
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 Foundation. Puedes consultar una copia de la licencia en http://www.gnu.org/copyleft/fdl.html
Este documento ha sido escrito en formato XML utilizando la DTD de DocBook. Mediante este sistema, puede ser fácilmente transformado a múltiples formatos (HTML, TXT, PDF, PostScript, LaTeX, DVI, ...). Se recomienda su utilización como herramienta de documentación potente y libre.
[1] Las preguntas que no aparezcan en la lista, se responderán por defecto
[2] Algunas están listadas en la Introducción