#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.gzEn lugar del
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