lunes, 30 de noviembre de 2009

Snort, Apache, SSL, PHP, MySQL, Barnyard y BASE Instalado en RHEL 5

antes de comenzar hay que hacer una breve lectura al funcionamiento de snort, para comprender que es lo que podemos lograr con el y que no .

Manual de usuario http://www.Snort.org/docs/writing_rules/
Snort FAQ http://www.snort.org/snort/faq/

snort tiene 3 funcinamientos principales : puede ser utilizado como analizador de paquetes como tcpdump, como un colector de paquetes, o como un fuerte detector de intrusos. que a mi gusto no tiene nada que pedirle a los de firmas reconocidas .


Pre requisitos:

debemos tener instalado PHP,MySql,Apache y ntop

# 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++ libpcap-devel php php-pear yum-utils
# chkconfig mysqld on
# chkconfig httpd on
# service httpd start
# service mysqld start


bajamos las aplicaciones necesarias

# mkdir ~/snort
# cd ~/snort
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm.md5
# md5sum -c snort-2.8.5.1-1.RH5.i386.rpm.md5
# rpm -ivh snort-2.8.5.1-1.RH5.i386.rpm

para bajar las reglas debemos estar debidamente registrados, existen 2 modalidades, las reglas de suscripción y reglas de usuario registrado, para el ejemplo debemos bajar las de usuario registrado del sitio web https://www.snort.org/snort-rules/ para esto podemos usar links

ya que hemos bajado las reglas las copiamos a el directorio /etc/snort/rules

# tar –xvzf snortrules-snapshot-CURRENT.tar.gz
# cd ~/snort/snortrules-snapshot-CURRENT/rules/
# cp * /etc/snort/rules

editamos el archivo de configuración de snort

# vi /etc/snort/snort.conf

================================================================
var HOME_NET 10.0.0.0/24 # descomentamos y configuramos nuestro segmento de red
var EXTERNAL_NET !$HOME_NET # esto significa todo lo que no sea de tu red
var RULE_PATH /etc/snort/rules #verificamos que sea correcta la dirección
output alert_unified: filename snort.alert, limit 128 # descomentar
output log_unified: filename snort.log, limit 128 # descomentar

===============================================================

agregamos snort al chkconfig

# chkconfig snortd on


configuramos mysql

# mysql -u root

mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('root_password');
>Query OK, 0 rows affected (0.25 sec)
mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('tu_pass_snort');
>Query OK, 0 rows affected (0.25 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.02 sec)
mysql> exit
>Bye

buscamos el archivo de tablas de snort para mysql

# rpm -ql snort | grep schemas
# mysql -u root -p < /usr/share/snort-2.8.5.1/schemas/create_mysql snort

descargamos barnyard que es un interprete de información de logs de snort a mysql

# wget http://dl.snort.org/barnyard/barnyard-0.2.0.tar.gz
# tar –xvzf barnyard-0.2.0.tar.gz
# cd barnyard-0.2.0
# ./configure --enable-mysql
# make
# make install
# cd etc/
# cp barnyard.conf /etc/snort

editamos el archivo /etc/snort/barnyard.conf y hacemos los siguientes cambios

# vi /etc/snort/barnyard.conf

descomentamos las siguientes lineas
============================================================

enable daemon mode
#estas lineas son informativas para el acid puedes poner lo que gustes
config hostname: snorthost
config interface: fxp0
#configuras con los datos dados en mysql las siguientes lineas
ooutput alert_acid_db: mysql, sensor_id 1, database snort, server localhost, user snort, password snort
output log_acid_db: mysql, database snort, server localhost, user snort, password snort, detail full

===========================================================

Tienes que crear un archivo de Waldo de barnyard . Haga lo siguiente

# snort -c /etc/snort/snort.conf

y dejar que llegue a la parte que dice: No utilizar PCAP_FRAMES, déjelo funcionar durante unos segundos y pulsa Ctrl + C para detenerlo. Buscar en /var/log/snort y podrás ver los archivos como este:

-rw------- 1 root root 16 Jun 21 07:06 snort.alert.1182427612
-rw------- 1 root root 24 Jun 21 07:06 snort.log.1182427612

generamos un archivo llamado /var/log/snort/barnyard.waldo

# vi touch /var/log/snort/barnyard.waldo

y agregamos el nombre del archivo snort.log.1182427612 de la siguiente manera:

=========================================
/var/log/snort snort.log 1182427612 0

========================================

bajamos el script de control de demonio de la siguiente direccion

# wget http://www.internetsecurityguru.com/barnyard
# cp barnyard /etc/init.d/
# chkconfig barnyard on
# service barnyard start

descargamos el paquere base y ADODB

# cd ~/snort
# wget http://easynews.dl.sourceforge.net/sourceforge/adodb/adodb480.tgz
# wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base-1.3.5.tar.gz
# cd /var/www/
# tar -xvzf ~/snort/adodb480.tgz
# cd /var/www/html
# tar –xvzf ~/snort/base-1.3.5.tar.gz
# mv base-1.3.5.tar.gz base

ajo con esta operación ya que permisos inadecuados puede ocasionar que el no se visualice correctamente.

copiamos el archivo de configuración base

# cp base_conf.php.dist conf.php

editamos el archivo

vi /var/www/html/base/config.php

===========================================
$BASE_urlpath = "/base";
$DBlib_path = "/var/www/adodb/ ";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "password_from_snort_conf";

==============================================

ahora en un navegador de internet accesamos al sistema base

https://tu_ip_servidor/base


presionamos donde dice setup page .. y seguimos la intrucciones .

aseguramos la ruta con htpasswd

# mkdir /var/www/passwords
# /usr/bin/htpasswd -c /var/www/passwords/passwords base

agregamos las configuraciones en el servidor apache


y queda felizmente instalado nuestro detector de intrusos IDS/IPS

No hay comentarios:

Publicar un comentario