Como montar nuestro IDS (Intrusion Detection System) – Parte II – Instalando Barnyard

http://highsec.es/2013/12/como-montar-nuestro-ids-intrusion-detection-system-parte-ii-instalando-barnyard/

Para ver la serie completa pulsa aquí. Habrá conceptos que se den por obvios ya que están explicados en artículos anteriores.
Buenas a todos! En este nuevo post de la serie sobre IDS vamos a ver como podríamos meter todos los datos y alarmas que genera Snort en una base de datos MySQL, para en los siguientes post instalar algunos administradores web y poder tener todas las alertas e informes de una forma mucho mas cómoda.
En este caso lo primero que tenemos que hacer sera instalarnos Barnyard2 que es un programa que va parseando los logs que genera Snort y los va metiendo en una base de datos que hayamos configurado. Esto hay que hacerlo debido a que Snort en las ultimas versiones ya no permite de forma nativa hacer un output de los datos que genera directamente en una base de datos MySQL. Por ello el esquema que tendremos que seguir sera el siguiente:

Para comenzar con la instalación, que sera al igual que en el primer post, en un sistema CentOS 6.4, debemos instalar MySQL que sera donde Barnyard guardara todos los datos:
yum install mysql mysql-devel git libtool -y
 
Una vez echo esto deberemos descargarnos Barnyard y ejecutar el autogen que trae dentro:
cd /usr/local/src/snort
git clone https://github.com/firnsy/barnyard2.git barnyard2
cd barnyard2
./autogen.sh
 
Ahora debemos configurarlo para que interactue con MySQL, ya sea para un entorno i368 o x86_64:
– Equipos i368:
./configure –with-mysql
 
– Equipos x86_64:
./configure –with-mysql –with-mysql-libraries=/usr/lib64/mysql
 
Compilamos e instalamos Barnyard:
make && make install
 
Configuramos Barnyard para que sea iniciado al iniciar el sistema (En caso de que asi lo queramos, sino al final se muestra una opción alternativa de hacerlo) y actúe de esta forma como servicio:
cp rpm/barnyard2 /etc/init.d/
chmod +x /etc/init.d/barnyard2
cp rpm/barnyard2.config /etc/sysconfig/barnyard2
chkconfig –add barnyard2
 
Creamos los enlaces simbólicos a los archivos de Barnyard y creamos el directorio donde serán almacenados los datos que ira parseando Barnyard (El directorio es eth0/archive debido a que por defecto se captura eth0, pero podría cambiarse sin problema):
ln -s /usr/local/etc/barnyard2.conf /etc/snort/barnyard.conf
ln -s /usr/local/bin/barnyard2 /usr/bin/
mkdir /var/log/snort/eth0/archive/
 
Ahora debemos modificar el script de inicio de Barnyard, sustituyendo ‘-L’ por ‘-l’ y el ’40′ del principio por el ’70′:
vi /etc/init.d/barnyard2

# chkconfig: 2345 70 60

BARNYARD_OPTS=”-D -c $CONF -d $SNORTDIR/${INT} -w $WALDO_FILE -l $SNORTDIR/${INT} -a $ARCHIVEDIR -f $LOG_FILE -X $PIDFILE $EXTRA_ARGS”

chkconfig barnyard2 reset
 
Editamos la variable ‘LOG_FILE’ de Barnyard en sysconfig:
vi /etc/sysconfig/barnyard2
…  
LOG_FILE=”snort.log”

 
Iniciamos los servicios de Snort y Barnyard:
service snortd start
service barnyard2 start
 
Y con esto tendríamos la instalación de Barnyard completada, lo cual permitiría ahora mismo meter datos en una base de datos MySQL. En los siguientes post veremos como podremos instalar algunos administradores web como BASE y Snorby que nos permitirán hacer nuestro trabajo de una forma mucho mas fácil y cómoda.
Otra posible forma de ejecutar Barnyard que nos permite mas granularidad seria por ejemplo mediante el siguiente comando:
/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/eth1 -f snort.log -w /var/log/snort/eth1/barnyard2.waldo -a /var/log/snort/eth1/archive/ -i eth1 -v -D
 
De esta forma estaríamos ejecutando Barnyard utilizando mediante ‘-c’ un archivo de configuración concreto. Mediante ‘-d’ le indicamos el directorio de donde tiene que sacar los logs de Snort. Mediante ‘-f’ le estamos indicando como son los nombres de los ficheros que tiene que coger, procesar y meter la información importante en MySQL (Esto es debido a que Snort genera nombre como snort.log.123456789 donde el numero del final depende de la fecha y hora). Después tendríamos ‘-w’ que permitirá utilizar el uso de marcadores (Se explicara mas adelante cuando lo utilicemos). Terminando ya tendríamos ‘-a’ que sera donde va metiendo los ficheros intermedios que va procesando. Y por ultimo ‘-i’ para seleccionar la interfaz que vamos a utilizar, ‘-v’ para modo verbose y -D para ponerlo como demonio en el sistema.
Yo en mi caso utilizo ese comando junto al siguiente de Snort:
/usr/sbin/snort -d -D -i eth1 -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort/eth1/
 
De esta forma puedo utilizar la interfaz eth1 en vez de la eth0 que viene por defecto, pero bueno, ademas de esto hay que cambiar un par mas de cosas en las configuraciones de Snort y Barnyard que veremos una vez tengamos todo instalado
Antes de terminar os dejo aquí un par de enlaces con posibles problemas o escenarios que podáis tener:
– En caso de querer utilizar una interfaz distinta a eth0 tendréis que cambiar una serie de parámetros que vienen especificados aquí (Servirá para mas adelante también ya que hay que configurar cosas tanto de Snort, Barnyard como BASE y Snorby).
– Posibles fallos o problemas que podáis tener debido a que Barnyard no meta los datos en MySQL portal1 portal2.
En caso de que tengáis cualquier duda mas ponerla por aquí e intentare resolverla
Espero que os haya gustado el post!
Un saludo,
Eduardo – eduardo@highsec.es – @_Hykeos

Enviado por gReader

Anuncios
Esta entrada fue publicada en Security. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s