Integrar Barnyard2 con Snort en CentOS 6.3

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;

Captura

Aparecerán los eventos generados por Snort, leídos por Barnyard2 que luego los guarda en la base de datos.

Todo funciona perfectamente.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo

5 comentarios

error al comprobar la configuracion de barnyard

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

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

Acabo de encontrar una

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.

Suscribirse a Comentarios de "Integrar Barnyard2 con Snort en CentOS 6.3" Suscribirse a VozToVoice - Todos los comentarios