Snort se trata de un NIDS (Network Intrusion Detection System) basado en reglas para su funcionamiento. Vamos a ver como instalarlo con las reglas libres (BSD) de Emerging Threads un interfaz web (BASE: Basic Analysis and Security Engine)
Primero de todo deberemos instalar Snort con las reglas de Emerging Threads:
cd /usr/local/src
wget http://dl.snort.org/snort-current/snort-2.8.5.1.tar.gz
tar xzf snort-2.8.5.1.tar.gz
cd snort-2.8.5.1
wget http://www.emergingthreats.net/rules/emerging.rules.tar.gz
tar xzf emerging.rules.tar.gz
./configure --prefix=/usr/local/ --exec-prefix=/usr/local/ --enable-dynamicplugin --with-mysql
make all install
Copiamos los ficheros de configuración:
mkdir -p /usr/local/etc/snort/rules
mkdir -p /var/log/snort
cp -pr /usr/local/src/snort-2.8.5.1/rules/* /usr/local/etc/snort/rules/
cp -pr /usr/local/src/snort-2.8.5.1/etc/* /usr/local/etc/snort/
A continuación deberemos crear la base de datos MySQL y un usuario para acceder a ella:
mysql> create database snort;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, ALTER, EXECUTE, CREATE ROUTINE, ALTER ROUTINE, USAGE on snort.* to snort@localhost identified by 'snortsecret';
Query OK, 0 rows affected (0.02 sec)
Dentro de schemas del código fuente de Snort encontraremos las definiciones de las tablas para importarlas a la nueva base de datos:
cd /usr/local/src/snort-2.8.5.1/schemas/
cat create_mysql | mysql snort -u root -p
A continuación deberemos configurar Snort:
cd /usr/local/etc/snort/
sed 's@^\(include.*rules\)$@#\1@' -i /usr/local/etc/snort/snort.conf
Seguiremos editando el fichero snort.conf y modificando los siguientes parámetros:
- Primero de todo deberemos definir cuales son nuestras redes:
var HOME_NET [192.168.1.0/32,10.0.0.0/8]
- Definiremos las redes externas como las no incluidas en HOME_NET
var EXTERNAL_NET !$HOME_NET
- Seguimos definiendo la ruta relativa donde se encuentran las reglas:
var RULE_PATH rules
- Mediante output definimos donde se almacenan los logs. Para usar MySQL deberemos especificar todos los datos:
output database: log, mysql, user=snort password=snortsecret dbname=snort host=localhost
- Deberemos añadir la siguiente linea para incluir las reglas de Emerging Threads
include $RULE_PATH/emerging.conf
Para la instalación de la interfaz web BASE deberemos primero de todos instalar adoDB:
mkdir /var/www/admin/snortbase/htdocs -p
mkdir /var/www/admin/snortbase/logs -p
mkdir /var/www/admin/adodb -p
cd /var/www/admin/adodb
wget http://downloads.sourceforge.net/project/adodb/adodb-php5-only/adodb-510-for-php5/adodb510.tgz?use_mirror=ovh
tar xzf adodb510.tgz
mv adodb5/* .
rmdir adodb5
Seguimos instalando BASE:
cd /var/www/admin/snortbase/htdocs
wget http://downloads.sourceforge.net/project/secureideas/BASE/base-1.4.4/base-1.4.4.tar.gz?use_mirror=ovh
tar xzf base-1.4.4.tar.gz
mv base-1.4.4/* .
rmdir base-1.4.4
chmod 757 /var/www/admin/snortbase/htdocs/
A continuación deberemos configurar el VirtualHost en el servidor web. Por ejemplo, en Apache sería:
ServerAdmin webmaster@dummy-host.systemadmin.es
DocumentRoot "/var/www/admin/snortbase/htdocs"
ServerName snort.systemadmin.es
DirectoryIndex index.php
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml text/javascript
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
ErrorLog "| /usr/local/sbin/cronolog -S /var/www/admin/snortbase/logs/current.error.log /var/www/admin/snortbase/logs/%Y/%m/%d/error.log"
CustomLog "| /usr/local/sbin/cronolog -S /var/www/admin/snortbase/logs/current.custom.log /var/www/admin/snortbase/logs/%Y/%m/%d/custom.log" combined
A continuación deberemos acceder mediante el navegador para seguir con la instalación de BASE:
Seguimos seleccionando lenguaje e indicando el path para adoDB:
Seguimos con la configuración de la base de datos:
Seguimos configurando, opcionalmente, un usuario para acceder a la aplicación una vez instalada:
A continuación creará las tablas para BASE:
Una vez las tablas estén creadas nos mostrará el siguiente mensaje:
Finalmente nos va a pedir el usuario y contraseña que hemos definido anteriormente para acceder al sistema por primera vez:
Y a continuación ya podremos acceder por primera vez al sistema, aún sin datos:
Para la realización de gráficos deberemos instalar los siguientes módulos de PEAR:
pear install Image_Color
pear install Image_Canvas-alpha
pear install Image_Graph-alpha
Finalmente podemos arrancar Snort mediante las daemontools:
mkdir -p /usr/local/supervise/snort
cat > /usr/local/supervise/snort </dev/null
EOF
chmod +x /usr/local/supervise/snort/run
ln -s /usr/local/supervise/snort /service/
Con el Snort levantado podremos ver como van apareciendo alertas en el BASE:
Es bastante feo no indicar la fuente y encima hacer hotlinking de las imágenes.
ResponderEliminarPor favor, indica la fuente al principio y las imágenes o las quitas o las sirves desde un servidor tuyo.
Muchas gracias