Enviado por admin el
Después de la instalación y configuración de Snort, la instalación y configuración de Pulledork, en este articulo veremos como integrar Barnyard2 con Snort. Barnyard2 es un programa que lee los archivos de registro de Snort y los procesa para luego guardar los datos en una base de datos. Para que esto sea posible, los registros de snort tienen que utilizar el formato unified2. Este tipo de configuración ya se ha preparado añadiendo esta línea:
output unified2: filename snort.log, limit 128
al archivo de configuración de snort, snort.conf.
Primero se instala MySQL:
yum install mysql mysql-devel mysql-server libtool
Se inicia:
/etc/init.d/mysqld start
Se crea la contraseña para el usuario root:
mysqladmin -u root password sesamo
Se entra en la consola de MySQL:
mysql -u root -psesamo
Se crea la base de datos snort:
mysql> create database snort;
Se crea el usuario snortuser con los permiso necesarios para trabajar con la base de datos creada:
mysql> GRANT ALL PRIVILEGES ON snort.* TO 'snortuser'@'localhost' IDENTIFIED BY 'sesamo';
Se recargan los privilegios:
mysql> flush privileges;
Se sale del cliente
mysql> quit
Ahora se puede descargar el programa con git:
cd /usr/src
git clone https://github.com/firnsy/barnyard2.git barnyard2
Se entra en la carpeta creada:
cd barnyard2
Se compila e instala:
./autogen.sh
./configure --with-mysql
make
make install
Como el script de arranque busca el programa en la carpeta /usr/bin, se crea un enlace simbólico:
ln -s /usr/local/bin/barnyard2 /usr/bin/barnyard2
Se abre el archivo del script del servicio:
nano rpm/barnyard2
Se modifican estas líneas:
# chkconfig: 2345 40 60
BARNYARD_OPTS="-D -c $CONF -d $SNORTDIR/${INT} -w $WALDO_FILE -L
$SNORTDIR/${INT} -a $ARCHIVEDIR -f $LOG_FILE -X $PIDFILE $EXTRA_ARGS"
para que queden:
# chkconfig: 2345 70 60
BARNYARD_OPTS="-D -c $CONF -d $SNORTDIR -w $WALDO_FILE -l $SNORTDIR/${INT} -a $ARCHIVEDIR -f $LOG_FILE -X $PIDFILE $EXTRA_ARGS"
Ahora se puede instalar el script del servicio:
cp rpm/barnyard2 /etc/init.d/
chmod +x /etc/init.d/barnyard2
chkconfig --add barnyard2
cp rpm/barnyard2.config /etc/sysconfig/barnyard2
Se guardan los cambios y se modifica el archivo de configuración de Barnyard2 presente en /etc/sysconfig:
nano /etc/sysconfig/barnyard2
Se modifica esta línea:
LOG_FILE="snort_unified.log"
para que quede:
LOG_FILE="snort.log"
De esta forma se indica a Barnyard2 que todos los archivos de Log de Snort empezarán con el nombre snort.log.Se guardan los cambios y se modifica el archivo de configuración de Snort presente en /etc/sysconfig:
nano /etc/sysconfig/snort
Se modifican las dos líneas que siguen:
ALERTMODE=fast
BINARY_LOG=1
para que queden comentadas:
# ALERTMODE=fast
# BINARY_LOG=1
De esta forma las alertas generadas por Snort ya no se guardarán en el archivo /var/log/snort/alert, sino en el mismo archivo de log de Snort.Se guardan los cambios y se crea un enlace simbólico al archivo de configuración de Barnyard2 creado a lo largo de la instalación:
ln -s /usr/local/etc/barnyard2.conf /etc/snort/barnyard.conf
Se abre:
nano /etc/snort/barnyard.conf
Se modifican esta línea:
output alert_fast: stdout
para que quede comentada:
# output alert_fast: stdout
Después de esta línea:
# output database: log, oracle, dbname=snort user=snort password=test
Se añade:
output database: log, mysql, user=snortuser password=sesamo dbname=snort host=localhost
De esta forma todos los eventos generados por Snort y leídos por Barnyard2, se guardarán en la base de datos creada. Se guardan los cambios y se crean las tablas en la base de datos snort:
mysql -u root -psesamo snort < schemas/create_mysql
Se crean las carpetas requeridas por el script de arranque:
mkdir /var/log/snort/eth0
mkdir /var/log/snort/eth0/archive
Se crea el archivo de Log utilizado por Barnyard2 en la carpeta que se acaba de crear:
touch /var/log/snort/eth0/barnyard2.waldo
Se modifican los permisos de lectura/escritura del archivo creado:
chmod 666 /var/log/snort/eth0/barnyard2.waldo
Se vuelve a poner la regla que se había creado en el articulo dedicado a la instalación de Snort:
nano /etc/snort/rules/local.rules
Se añade esta línea:
alert icmp any any -> any any (msg:"ICMP Testing Rule"; sid:1000001; rev:1;)
Se guardan los cambios. Si Snort está corriendo, se reinicia:
service snortd restart
luego se comprueba la configuración de Barnyard2 con este comando:
barnyard2 -c /etc/snort/barnyard.conf -G /etc/snort/gen-msg.map -l /var/log/snort -S /etc/snort/sid-msg.map -v -f snort.log -d /var/log/snort/ -T
Si aparece:
Barnyard2 successfully loaded configuration file!
Snort exiting
database: Closing connection to database "snort"
Todo está bien. Ya se puede iniciar el servicio:
service barnyard2 start
Ahora se crean unos eventos de alerta con un ping (como configurado en la regla creada en local.rules):
ping google.com
Después de unos segundos se para el ping con CTRL-C y se averigua si los eventos se han guardado en la base de datos:
mysql -u root -psesamo
mysql> use snort
mysql> select * from event;
Aparecerán los eventos generados por Snort, leídos por Barnyard2 que luego los guarda en la base de datos.
Todo funciona perfectamente.
5 comentarios
error al comprobar la configuracion de barnyard
Enviado por Miguel (no verificado) el
Hola siguiendo su guia he tenido un problema al ejecutar el comando service barnyard2 start:
Starting Snort Output Processor (barnyard2): /bin/bash: barnyard2: command not found
como puedo solucionar esto?
Gracias.
Problema con barnyard
Enviado por Migue (no verificado) el
Hola de nuevo he podido solucionar ese error empezando desde 0, el problema ahora es que barnyard no almacena las entradas en la base de datos y cuando miro el proceso aparece lo siguiente:
barnyard2 inactivo pero subsistema bloqueado
Re: Problema con barnyard
Enviado por admin el
Hola Migue,
escribí esa guía hace mucho y la verdad no sabría que decirte. Te tocará investigar un poco para encontrar una solución.
Saludos
Acabo de encontrar una
Enviado por Migue (no verificado) el
Acabo de encontrar una solucion al problema, en vez de ejecutarlo como un servico, abrir un terminal y poner:
barnyard2 -c /etc/snort/barnyard.conf -G /etc/snort/gen-msg.map -l /var/log/snort -S /etc/snort/sid-msg.map -v -f snort.log -d /var/log/snort/
con esto barnyard si funciona correctamente y almacena los datos.
Gracias por la guia me ha servido mucho.
Re: Acabo de encontrar una
Enviado por admin el
Hola,
gracias por compartir tu experiencia.
Saludos