miércoles, 30 de enero de 2013

Instalacion y configuracion de snort.


Esta vez vamos a ir con algo mas complicado, la instalación de un IDS de red en linux. Concretamente vamos a ver snort. Aunque este blog estoy dedicándolo a toda aquella gente que no tenga conocimientos elevados de informática, hoy me apetecía hacer este post, ya que siempre hay algún valiente con ganas de experimentar y aquí tiene un buen manual para instalar este programa.


En resumidas cuentas, con este sofware podríamos monitorizar cualquier tipo de ataque que hiciesen a nuestra red “ Previa configuración de los dispositivos de red para poder monitorizar el trafico” como son cualquier escaneo de ip, puertos, arp-spoofing, etc.


Para los que no saben que es snort, vamos a echar un ojo a la wikipedia:
Snort es un sniffer de paquetes y un detector de intrusos basado en red (se monitoriza todo un dominio de colisión). Es un software muy flexible que ofrece capacidades de almacenamiento de sus bitácoras tanto en archivos de texto como en bases de datos abiertas como lo es MySQL. Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida. Así mismo existen herramientas de terceros para mostrar informes en tiempo real (ACID) o para convertirlo en un Sistema Detector y Preventor de Intrusos.
Ahora bien vamos a ver los requisitos de snort, así que esta es la lista de programas necesarios para hacerlo funcionar de manera adecuada.
mysql-common
mysql-client
mysql-server
php5-dev
php5-gd
php5-ldap
php5-mysql
php-pear
libpcap-dev
libpcap0.8
libpcap0.8-dev
libpcre3 – Perl 5
libpcre3-dev – Perl 5
expect
gobjc
libnet0
libnet0-dev
libmysql++-dev
libapache2-mod-php5
php5-cgi
PHP, bases de datos SQL, Perl, aplicaciones para capturar paquetes, entre otras cosas..
No nos liaremos a compilar nada, y nos aseguraremos de que tenemos los repositorios actualizados.. y si en algún momento no se encuentra algún paquete, tendrán que buscar el repositorio adecuado o instalar el paquete a mano..
Aunque ya tenemos un tutorial de como instalar SQL y PHP pues aquí va una forma sencilla, como dije no nos liamos a compilar nada..

Instalar MySqlL

:# apt-get install mysql-common mysql-client mysql-server
Si todo va bien instalamos el resto de los requisitos de una sola vez.
:# apt-get install php5-dev php5-gd php5-ldap php5-mysql php-pear libnet1
libnet1-dev libpcap-dev libpcap0.8 libpcap0.8-dev libpcre3 expect gobjc libpcre3-dev flex libnet0
libnet0-dev bison libmysql++-dev libapache2-mod-php5 php5-cgi
Ahora bien, si esta todo listo, procedemos a levantar el SQL de forma segura..



Configurar mysql para mejorar la seguridad

:# mysql_secure_installation
Seguimos los pasos y configuramos detalladamente a nuestra medida, en alguna parte nos pedirá la contraseña para el admin, cosa que pondremos claro esta !
Hay unas cuantas cosas importantes a las que tenemos que responder que si….
Eliminar usuarios anónimos………….
Deshabilitar loguearse como root remotamente…………..
Eliminar las bases de datos de pruebas y el acceso a ellas……….
Reiniciar los privilegios de las tablas…………..
A todo si, eso nos ayudara un poco en la seguridad del MySQL…
Luego solo nos aseguramos de que esta corriendo mysql con este comando:
:# netstat -ntlp | grep mysql
Con eso tenemos.. por ahora.. así que vamos al siguiente paso.. a lo que venimos !

Instalar y configurar SNORT

Antes de comenzar necesitamos snort, ultima versión de este y las reglas de snort, ( Snort Rules ), las podemos descargar desde la web de snort, en snort.org
Luego, descomprimimos todo, entramos a la carpeta donde esta snort y comenzamos a compilar… OJO solo snort, snort rules lo dejamos para después
Configuramos con Mysql:
:# ./configure –enable-sourcefire –enable-targetbased –enable-flexresp –with-mys
Eso nos llevara un rato, pero si no hay errores podemos proseguir
Primero
:# make
Y si va bien
:# make install
Ahora bien.. creamos unos directorios para que funcione bien, eso si no se crearon…….
En etc para la configuración:
:# mkdir /etc/snort
Y en /var/Log para guardar los logs:
:# mkdir /var/log/snort
Ahora bien descomprimimos la carpeta snort rules en /etc/snort o bien, la descomprimimos donde sea y la movemos a ese directorio que al fin y al cabo es el mismo resultado.
Bien, ahora copiamos algunos archivos de configuración que necesitara snort.
:#cp -r preproc_rules /etc/snort && cp etc/*.conf* /etc/snort && cp etc/*.map /etc/snort
Ahora hacemos un enlace simbólico de sbin al sbin de snort:
:# ln -s /usr/local/bin/snort /usr/sbin/snort
Como todo programa necesitaremos un grupo y un usuario para que funcione, los creamos.
El grupo para snort
:# groupadd snort
Y el usuario
:# useradd -g snort snort
Ahora usamos chown para cambiar el propietario
:# chown snort:snort /var/log/snort
Bien.. todo listo.. bueno.. casi.. pasamos a editar el archivo de configuración de snort..
Si tienen entorno gráfico les será mas fácil usar gedit pero si no pues usaremos nano.
:# nano /etc/snort/snort.conf
En este fichero buscamos esta linea
RULE_PATH ../rules
Y la remplazamos por la que habíamos configurado mas arriba..
var RULE_PATH /etc/snort/rules
Buscamos
PREPROC_RULE_PATH ../preproc_r
Remplazamos por
PREPROC_RULE_PATH /etc/snort/preproc_rules
Buscamos
output database: log, mysql, user=root password=test dbname=db host=localhost
Remplazamos con
output database: log, mysql, user=USERNAME password=PASSWORD
dbname=DATABASENAME host=HOST
Ahora bien pondremos usuario, contraseña, base de datos y host
USERNAME = usuario
PASSWORD = contraseña
DATABASENAME = bd
HOST = host
Ahora vamos al final y buscamos estas dos lineas y las descomentamos:
# include $PREPROC_RULE_PATH/preprocessor.rules
# include $PREPROC_RULE_PATH/decoder.rules
Guardamos y salimos del editor..
La segunda parte y la creación de la base de datos pues, es muy sencilla, es simplemente crear una base de datos para snort como lo haríamos normalmente, para no liarlos con la consola pueden usar phpmyadmin para este propósito…
Ahora bien la ultima parte

Probando Snort

Bueno para probr que la configuración esta bien ejecutamos:
:# snort -c /etc/snort/snort.conf
A de salir algo como esto:
[ Port and Service Based Pattern Matching Memory ]
+-[AC-BNFA Search Info Summary]——————————
| Instances : 284
| Patterns : 23051
| Pattern Chars : 156930
| Num States : 90782
| Num Match States : 12254
| Memory : 3.87Mbytes
| Patterns : 1.03M
| Match Lists : 1.43M
| Transitions : 1.30M
+————————————————-
–== Initialization Complete ==–
y sigue bla bla bla
SI no hay error todo anda bien.
Ahora bien para que snort pueda usar su script de inicio necesitamos cambiar los permisos y el propietario..
Dos simples comandos
:# chown snort:snort /var/log/snort/alert
:# chmod 600 /var/log/snort/alert
Manuales de instalación de snort hay muchísimos en la red, por lo que en muchas ocasiones he hecho un copia y pega. En un próximo post veremos una aplicación para monitorizar esta aplicación en entorno gráfico.

0 comentarios:

Publicar un comentario