viernes, 6 de enero de 2012

Guía de Instalación de Snort 2.9.1.2 y Snort Report 1.3.2 en Ubuntu 10.04

Este manual se refiere única y exclusivamente a la instalación y configuración de Snort y Snort Report, así que algunas cosas se tomaran por entendidas, por ejemplo el propósito de Snort como lo es la detección y prevención de intrusos, de igual forma el manejo  de comandos Linux, si quieres conocer algunos aspectos teóricos sobre estos temas te recomiendo los siguientes enlaces:


1. Requisitos Previos.

Los siguientes paquetes son estrictamente necesarios para la correcta ejecución de este manual:
--nmap
--nbtscan
--apache2
--php5
--php5-mysql
--php5-gd
--libpcap0.8-dev
--libpcre3-dev
--g++
--bison
--flex
--libpcap-ruby
--mysql-server
--libmysqlclient16-dev


Recomendación:
*Hacer un apt-get update antes de empezar la instalación de los paquetes.
*Instalarlos de forma manual ejemplo: apt-get install nmap
*Almacenar la clave que utilice al instalar Mysql.
*Reiniciar el equipo después de instalar todos los paquetes.
*Ejecutar los comandos con permisos de SuperUsuario.

2. Snort report.

El siguiente paso es descargar Snort Report, lo puedes hacer desde este enlace: http://www.symmetrixtech.com/download.html  luego hay que ubicarnos dentro del directorio que contiene el archivo recién descargado y ejecutamos la siguiente línea:

tar zxvf snortreport-1.3.2.tar.gz -C /var/www/


Luego hay que hacer nano /var/www/snortreport-1.3.2/srconf.php buscamos la siguiente línea dentro
del archivo:

$pass = "YOURPASS";

y la reemplazamos por

$pass = "miclave";

Donde miclave → Contraseña proporcionada durante la instalación de Mysql. Guardamos los cambios y salimos.

3. Snort

Descargar e instalar la Data Acquisition Api, lo puedes descargar desde aquí:
http://www.snort.org/downloads/1221
Nos ubicamos dentro del directorio de descarga y hacemos:

tar zxvf daq-0.6.2.tar.gz
cd daq-0.6.2
./configure
make
make install

Descargar e instalar libdnet, lo puedes descargar desde aquí:
http://libdnet.googlecode.com/files/libdnet-1.12.tgz
Nos ubicamos dentro del directorio de descarga y hacemos:

tar zxvf libdnet-1.12.tgz
cd libdnet-1.12
./configure
make
make install
ln -s /usr/local/lib/libdnet.1.0.1 /usr/lib/libdnet.1

Descargar e instalar Snort

Lo más recomendable para este paso es realizar la descarga directamente desde la página oficial de Snort: http://www.snort.org/downloads/1207 ahora solo queda instalarlo, nos ubicamos dentro de la carpeta de descarga y hacemos:

tar zxvf snort-2.9.1.2.tar.gz
cd snort-2.9.1.2
./configure --prefix=/usr/local/snort --enable-sourcefire
make
make install
mkdir /var/log/snort
mkdir /var/snort
groupadd snort
useradd -g snort snort
chown snort:snort /var/log/snort

Para el siguiente paso sera necesario proporcionar la contraseña de Mysql:

echo "create database snort;" | mysql -u root -p

mysql -u root -p -D snort < ./schemas/create_mysql 


 echo "grant create, insert, select, delete, update on snort.* to snort@localhost identified by 'YOURPASSWORD'" | mysql -u root -p

 Donde YOURPASSWORD será la clave asignada para el usuario snort recién creado, tú lo puedes reemplazar por la clave que quieras, eso si guárdala porque se utilizara más adelante.

 4. Descargar Reglas de Snort.


 En este paso debemos acceder a la página oficial de Snort y realizar la descarga de las reglas de Snort, https://www.snort.org/snort-rules aquí encontraremos dos secciones la de Subscriber Release y la de Registered User Release, la diferencia es que en la segunda la descarga es gratuita con 30 días de prueba y la primera de paga, eso si hay que estar registrado en la página para realizar la descarga.

 Para modo de enseñanza yo utilice el método gratuito y en su versión snortrules-snapshot-2912.tar.gz aunque tu puedes utilizar el que desees, hecho esto solo queda configurarlas, nos ubicamos en el directorio que contiene la descarga y hacemos:

 tar zxvf snortrules-snapshot-2912.tar.gz -C /usr/local/snort 


cp /usr/local/snort/so_rules/precompiled/Ubuntu-10-4/i386/2.9.1.2/* /usr/local/snort/lib/snort_dynamicrules

 --Esta es una sola linea, si el directorio snort_dynamicrules no existe hay que crearlo--

 touch /usr/local/snort/rules/white_list.rules 
 touch /usr/local/snort/rules/black_list.rules 
 ldconfig 

 5. Configurar Snort 

 Para configurar Snort tenemos que editar el archivo de configuración este se encuentra en /usr/local/snort/etc/snort.conf lo podemos hacer con gedit, nano o vi tú eliges el de tu preferencia. Buscamos las siguientes líneas: 

var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules

 Las reemplazamos por estas:

 var WHITE_LIST_PATH /usr/local/snort/rules
 var BLACK_LIST_PATH /usr/local/snort/rules

 Buscamos estas otras: 


dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
dynamicdetection directory /usr/local/lib/snort_dynamicrules

 Las reemplazamos por estas:
dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor/
dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so
dynamicdetection directory /usr/local/snort/lib/snort_dynamicrules

 Debajo de la siguiente línea :
#output unified2: filename merged.log, limit 128, nostamp, mpls_event_types, vlan_event_types

Ponemos esto:
output unified2: filename snort.u2, limit 128 6

6. Descargar e instalar Barnyard2 


 Puedes realizar la descarga desde aquí: http://www.securixlive.com/download/barnyard2/barnyard2-1.8.tar.gz luego nos ubicamos en la carpeta de descarga y ejecutamos lo siguiente:

tar zxvf barnyard2-1.8.tar.gz 
cd barnyard2-1.8 
./configure --with-mysql 
make
make install 
cp etc/barnyard2.conf /usr/local/snort/etc 
mkdir /var/log/barnyard2 
chmod 666 /var/log/barnyard2 
touch /var/log/snort/barnyard2.waldo 
chown snort.snort /var/log/snort/barnyard2.waldo 

Modificamos el archivo de configuración de Barnyard2 , podemos hacerlo con nuestro editor de texto preferido.
 nano /usr/local/snort/etc/barnyard2.conf 

Buscamos las siguientes líneas:
config reference_file: /etc/snort/reference.config
config classification_file: /etc/snort/classification.config
config gen_file: /etc/snort/gen-msg.map
config sid_file: /etc/snort/sid-msg.map

#config hostname: thor
#config interface: eth0

#output database: log, mysql, user=root password=test dbname=db host=localhost

Y las reemplazamos por estas: 
config reference_file: /usr/local/snort/etc/reference.config
config classification_file: /usr/local/snort/etc/classification.config 
config gen_file: /usr/local/snort/etc/gen-msg.map
config sid_file: /usr/local/snort/etc/sid-msg.map

config hostname: localhost
config interface: eth0

output database: log, mysql, user=snort password=YOURPASSWORD dbname=snort host=localhost

Para destacar:
* eth0 puede variar dependiendo del equipo donde te encuentres, para comprobar el nombre de tu interfaz de red puedes escribir en consola: ifconfig
 * YOURPASSWORD deberá ser reemplazado por la contraseña introducida en el paso #3

Probando Snort. 

Para probar el correcto funcionamiento de Snort escribimos en consola:
 /usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0 


eth0 Puede variar dependiendo de tu Máquina, deberíamos ver algo como esto:
              “commencing packet processing” 
damos control-c para cerrar. Si escribimos en el navegador:
http://localhost/snortreport-1.3.2/alerts.php

 veremos algo como esto:

Snort Report.

Por último editar el archivo /etc/rc.local y agregar despues de “exit 0” lo siguiente:

ifconfig eth0 up
/usr/local/snort/bin/snort -D -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0


/usr/local/bin/barnyard2 -c /usr/local/snort/etc/barnyard2.conf -G /usr/local/snort/etc/gen-msg.map -S /usr/local/snort/etc/sid-msg.map -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -D

--Esta última es una sola línea-- guardamos el archivo y hacemos: /etc/init.d/rc.local start

Listo!!

3 comentarios:

  1. Es lo que estaba buscando... de tanto usar san google... por fin dio resultado... gracias

    ResponderEliminar
  2. Interesante, aun no lo he probado pero suena muy bien.
    gracias por el aporte.

    ResponderEliminar

Comentar....