domingo, 14 de marzo de 2010

Snort en Centos.

Script de instalacion:

#Instalamos las dependencias

yum -y install mysql mysql-bench mysql-server mysql-devel mysqlclient10 php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++ bison flex php-pear

#Iniciamos los servicios de la base de datos y del apache

/etc/init.d/httpd start
/etc/init.d/mysqld start
chkconfig mysqld on
chkconfig httpd on

#Crearemos nuestro directorio donde pondremos todos los pquetes que vayamos a utilizar

mkdir /opt/ids
cd /opt/ids
wget http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz
tar xfz libpcap-1.0.0.tar.gz
cd libpcap-1.0.0
./configure
make
make install
cd ..
wget http://dl.snort.org/snort-current/snort-2.8.5.3.tar.gz
tar xzf snort-2.8.5.3.tar.gz
cd snort-2.8.5.3
./configure --with-mysql --enable-dynamicplugin
make
make install

#Una vez instalado seguimos con los siguientes pasos

groupadd snort
useradd -g snort snort -s /sbin/nologin
mkdir /etc/snort
mkdir /etc/snort/rules
mkdir /var/log/snort
cp /opt/ids/snort-2.8.5.1/etc/* /etc/snort/.

Una vez realizada la instalacion, nos bajamos las reglas de snort.org (hay que estar registrado) y las guardamos en /opt/ids.

cd /opt/ids/
tar xvfz snortrules*.tar.gz
cp rules/* /etc/snort/rules/

Ahora editamos el archivo de configuracion:

gedit /etc/snort/snort.conf

Y establecemos lo siguiente:

var HOME_NET 10.0.0.0/24
var EXTERNAL_NET !$HOME_NET
var RULE_PATH /etc/snort/rules

Acto seguido, configuramos mysql:

# mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('*****');
mysql> mysql> create database snort;
mysql> grant INSERT,SELECT on root.* to snort@localhost;
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('*****');
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
mysql> EXIT

Volvemos a editar /etc/snort/snort.conf para descomentar la opcion output database y dejarla asi:

output database: log, mysql, user=snort password=***** dbname=snort sensor_name=LAN host=localhost

Ahora configuramos el intarfaz http:

Hecho esto, vamos a configurar la interfaz web para monitorear el IDS

Script de instalacion de base:

cd /opt/ids/
pear upgrade --force pear
pear channel-update pear.php.net
pear install --alldeps Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman
pear install -f Image_Graph
pear install -f Image_Canvas
wget http://downloads.sourceforge.net/project/adodb/adodb-php5-only/adodb-509a-for-php5/adodb509a.tgz
wget http://downloads.sourceforge.net/project/secureideas/BASE/base-1.4.4/base-1.4.4.tar.gz
cd /var/www/
tar xfz /opt/ids/adodb509a.tgz
mv adodb5 adodb
cd html/
tar xfz /opt/ids/base-1.4.4.tar.gz
mv base-1.4.4 base
cd base/
cp base_conf.php.dist base_conf.php

Ahora editamos el archivo /var/www/html/base/base_conf.php y lo dejamos asi:

$BASE_urlpath = ‘/base’;

$DBlib_path = ‘/var/www/adodb/ ‘;

$DBtype = ‘mysql’;
$alert_dbname = ’snort’;
$alert_host = ‘localhost’;
$alert_port = ”;
$alert_user = ’snort’;
$alert_password = ‘contraseña’;

Finalmente iniciamos el servicio de snort:

snort -D -c /etc/snort/snort.conf -i eth0

Y lo incluimos en el rc para que se inicie al arrancar:

echo "snort -D -c /etc/snort/snort.conf -i eth0" >> /etc/rc.d/rc.local

Como apunte final, para instalar oinkmaster y actualizar las reglas automaticamente:

Script de instalacion de oinkmaster:


chown snort.snort /etc/snort/ -R
cd /opt/ids
wget http://prdownloads.sourceforge.net/oinkmaster/oinkmaster-2.0.tar.gz

tar xzf oinkmaster-2.0.tar.gz
cd oinkmaster-2.0
cp oinkmaster.pl /usr/bin/
cp contrib/makesidex.pl /usr/bin/
cp oinkmaster.conf /etc/

Nos logeamos a www.snort.org y generamos nuestro codigo oinkmaster y lo introducimos editando /etc/oinkmaster.conf añadiendo esta linea:

url=http://www.snort.org/pub-bin/oinkmaster.cgi/*****/snortrules-snapshot-2.8.tar.gz

En lugar del ponemos el codigo que generamos en la web de www.snort.org

Nos ubicamos en /etc y hacemos lo siguiente

cd /etc/
makesidex.pl /etc/snort/rules > autodisable.conf

Ahora ponemos en el cron lo siguiente, de esta manera se actualizara todos los
dias a las 23:59 horas

crontab -u snort -e

59 23 * * * oinkmaster.pl -C /etc/oinkmaster.conf -C /etc/autodisable.conf -o /etc/snort/rules




No hay comentarios:

Publicar un comentario