Está en la página 1de 4

Snort con MySQL + Acid sobre FreeBSD

Iucki
Fecha: 08/10/2002
Introduccin
En este articulo nos vamos a centrar basicamente en lo que es la seguridad de nuestra mkina, para ello he optado por Snort que es
una herramienta bastante corriente pero que funciona muy bien. Snort es un detector de intrusos, lo que hace bsicamente es ver todo
lo que entra y sale de nuestra mkina y aquello que no le gusta lo filtra y guarda la informacin acerca de esa anomala en un listado de
alertas. Para ver qu cosas son esas que pueden y esas que no pueden entrar en nuestro equipo snort posee numerosas reglas.
Otra herramienta que vamos a utilizar es Acid que es un entorno web muy manejable que sirve para listar todas las alertas que Snort
vaya almacenando.
Vamos a hacer uso de MYSQL para que Snort pueda almacenar esas alertas en una base de datos y Acid pueda leerlas para que ms
tarde nosotros podamos visualizarlas en nuestro navegador sin ningn problema.
Paso Nmero 1: Instalacin de Snort y Mysql:
# mkdir /var/log/snort
# cd /usr/ports/
En la instalacin de Snort No vamos a hacer clean porque necesitamos un archivo que se crea durante la instalacin en la carpeta
work/ para crear ms tarde la base de datos en la que irn las alertas.
# cd /usr/ports/security/snort && make WITH_MYSQL=YES install
# cd /usr/ports/databases/mysql323-server/ && make install clean
Paso Nmero 2: Configuracin MYSQL para Snort
Lo primero que tenemos que hacer una vez instalado el Servidor de Mysql es asignar una contrasea a la cuenta root:
# /usr/local/bin/mysqladmin -u root password 'hola'
# echo "CREATE DATABASE snort;" | mysql -u root -phola
# mysql -u root -phola
mysql> grant INSERT,SELECT on snort.* to root@localhost;
Query OK, 0 rows affected (0.01sec)
mysql> quit
Bye
# mysql -u root -phola < /usr/ports/snort/security/work/snort-1.9.0/contrib/create_mysql snort
# mysql -u root -phola
mysql> SHOW DATABASES;
-----------
Database
-----------
mysql
snort
test
-----------
3 rows in set (0.00 sec)
Elegimos la Base de Datos de Snort
mysql> use snort
mysql> SHOW TABLES;
..Ahora deberan salirnos unas cuantas tablas..., si no sale nada es que algo hemos hecho mal.
mysql> quit
Bye
Paso Nmero 3: Configuracin de Snort
Es necesario crear un nuevo archivo de configuracin, para ello hacemos uso del archivo de ejemplo que tenemos en
/usr/local/etc/snort.conf.sample, configurar snort es algo bastante sencillo, es importante decirle que queremos que trabaje con
mysql y especificarle la base de datos, nombre de usuario,etc.., a continuacin he copiado una posible configuracin:
# cp /usr/local/etc/snort.conf-sample /usr/local/etc/snort.conf
# ee /usr/local/etc/snort.conf
var HOME_NET 62.97.68.172
var SMTP $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var DNS_SERVERS $HOME_NET
var RULE_PATH /usr/local/share/snort
Linea 310 (aproximadamente):
output database: log, mysql, user=root password=hola dbname=snort host=localhost
En las ltimas lineas Elegimos las Reglas que queremos incluir :D
En el archivo snort.conf vemos que la variable HOME_NET admite varias opciones, podemos hacer que snort filtre desde redes
enteras 62.97.68.169/29 hasta distintas redes,etc.., que filtre todo lo que pase por un dispositivo de red especificado, o que filtre varias
redes. Al principio del archivo de configuracin de ejemplo tenemos unos ejemplos. Para los que quieran poner una red y no sepan
como funciona lo de los bits:
Bitmask Netmask IPs Totales / IPs usables
32 255.255.255.255 1 1
31 255.255.255.254 2 1
30 255.255.255.252 4 2
29 255.255.255.248 8 6
28 255.255.255.240 16 14
27 255.255.255.224 32 30
26 255.255.255.192 64 62
25 255.255.255.128 128 126
24 255.255.255.0 256 254
...
22 255.255.192.0 16320 16318
20 255.255.128.0 32768 32766
16 255.255.0.0 65536 65534
12 255.128.0.0 8.388608+e6 8.388606+e6
8 255.0.0.0 256^3 (256^3)-2
0 0.0.0.0 (Todas las IPS) 256^4 (256^4)-2
En el ejemplo yo he puesto: 62.97.68.169/29 esto significa que esa Red posee las siguientes ips:
62.97.68.169---No la Podemos Usar--
62.97.68.170
62.97.68.171
62.97.68.172 Ma'scara de Red de estas Ips: 255.255.255.248
62.97.68.173
62.97.68.174
62.97.68.175
62.97.68.176--Tampoco la Podemos Usar--
La Mscara de la Subred nos define el nmero de Ips que tiene la red, para obtener este nmero la operacin a realizar sera la
siguiente: 256 - 248 = 8 ips (de las que hay una que abre y otra que cierra la familia),esta familia tendra 6 ips usables..
Paso Nmero 4: Instalacin y configuracin de ACID
Para que ACID funcione bien es necesario instalar un par de programas (adodb, gd y phplot)
# cd /usr/ports/databases/adodb && make install clean
# cd /usr/ports/graphics/gd && make install clean
# cd /usr/ports/graphics/phplot && make install clean
Una vez instalados estos programas procederemos a la instalacin y configuracin de Acid.
# cd /usr/ports/security/acid && make install clean
# ee /usr/local/www/acid/acid_conf.php
Linea13:
$DBlib_path = "/usr/local/www/data.default/php/adodb";
Linea33:
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "root";
$alert_password = "hola";
Guardamos y salimos.
Paso Nmero 5: APACHE
Instalamos Apache con mod_php4 (los que ya lo tengais instalado podeis saltaros este paso):
# cd /usr/ports/www/apache13 && make install clean
# cd /usr/ports/www/mod_php4 && make install clean
Modificamos httpd.conf aadiendo vhost y contraseas a nuestro apache:
# mkdir /usr/local/etc/apache/conf/
# htpasswd -c /usr/local/etc/apache/conf/passwordAcid admin (para aadir el usuario admin)
usamos htpasswd -c cuando el fichero passwordAcid aun no existe, o sea, para aadir el primer usuario
# htpasswd /usr/local/etc/apache/conf/passwordAcid Iucki (para aadir otros usuarios)
Si vamos a usar el Apache nicamente para el Snort haremos (linea 376 aprox de httpd.conf):
# ee /usr/local/etc/apache/httpd.conf
DocumentRoot "/usr/local/www/acid"
Para todos:
<Directory "/usr/local/www/acid">
AuthType Basic
AuthName "Aqui poned un nombre que os guste"
AuthUserFile usr/local/etc/apache/conf/passwordAcid
require valid-user
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
Allow from all
</Directory>
NameVirtualHost *
<VirtualHost *>
ServerAdmin diablillo@acid.lucki.homeunix.org
ServerName acid.lucki.homeunix.org
DocumentRoot /usr/local/www/acid
</VirtualHost>
Lo del ServerName es por si quereis tener varias Webs en un mismo Apache. En http://www.dyndns.org/ podeis obetener un
subdominio gratis, lo cual nos viene bastante bien.

También podría gustarte