Snort + Base en OpenBSD - Userlinux.net

Snort es uno de los sistemas de detección de intrusos (IDS) más populares. Base es una de sus múltiples herramientas de análisis básico y OpenBSD es uno de los sistemas operativos más seguros. Haremos una instalación básica para guardar todas las alertas en base de datos (MySQL) y veremos los…

Snort + Base en OpenBSD

23.Apr.2007 ~ 3 Comentarios ~ 6254 Lecturas
Snort es uno de los sistemas de detección de intrusos (IDS) más populares. Base es una de sus múltiples herramientas de análisis básico y OpenBSD es uno de los sistemas operativos más seguros. Haremos una instalación básica para guardar todas las alertas en base de datos (MySQL) y veremos los primeros resultados.

Antes de nada un poco de teoría de Sistemas de detección de intrusos, tipos y características...

IDS, HIDS

Los IDS, en principio, solo capturan alertas ocurridas en el host local donde están instalados. Aunque, por extensión, todos los Sistemas de Intrusion, del tipo que sean, son tambien llamados IDS:
  • IDS: Intrusion Detection System
  • HIDS: Host Intrusion Detection System
  • NIDS: Network Intrusion Detection System
Estos sistemas detectan alertas snifando el tráfico que pasa por su tarjeta de red. Por lo que si son colocados en los lugares correctos (p.e. los firewalls, gateways etc) nos detectan los ataques producidos a cualquiera de los hosts de nuestra red. Los DIDS (Distributed Intrusion Detection System) son NIDS donde los sensores que detectan y recolectan información están distribuidos en diferentes puntos/hosts en la red. Snort también puede actuar como NIDS. (leer más).

Instalación de Snort

Usaremos binarios puesto que la máquina es bastante obsoleta y no queremos sufrir un infierno compilando. Como podeis comprobar, se trata de una OpenBSD-3.9:
# pkg_add -r ftp://ftp.openbsd.org/pub/OpenBSD/3.9/packages/i386/snort-2.4.3-mysql.tgz
snort-2.4.3-mysql:pcre-6.4p1: complete
snort-2.4.3-mysql: complete
--- snort-2.4.3-mysql -------------------
An up-to-date set of rules is needed for Snort to be useful as an IDS.
These can be downloaded manually or net/oinkmaster can be used to
download the latest rules from several different sources.

It is recommended that snort be run as an unprivileged chrooted user.
An _snort user/group and log directory has been created for this
purpose.  You should start snort with the following options to take
advantage of this:
        -u _snort -g _snort -t /var/snort
and if you want to log:
        -l /var/snort/log
#
Bajamos las RULES de la versión 2.4 (usuarios no registrados, para probar):
# wget -c http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_pr/snortrules-pr-2.4.tar.gz
# mkdir -p /etc/snort/rules
# mv snortrules-pr-2.4.tar.gz /etc/snort/rules/
# tar xfvvz snortrules-pr-2.4.tar.gz  

Configuración MySQL

Conectamos con mysql para crear base de datos, usuario y demás (ojo con el socket si lo tenemos configurado para httpd chrooted):
# mysql -u root --socket=/var/www/var/run/mysql/mysql.sock -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 7 to server version: 5.0.22

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> CREATE DATABASE snort;
Query OK, 1 row affected (0.29 sec)

mysql> GRANT INSERT, SELECT ON snort.* to snort@localhost;
Query OK, 0 rows affected (0.53 sec)

mysql> SET PASSWORD FOR snort@localhost = PASSWORD('password');
Query OK, 0 rows affected (0.05 sec)

mysql> GRANT CREATE, UPDATE, INSERT, DELETE, SELECT ON snort.* TO snort@localhost;
Query OK, 0 rows affected (0.00 sec)
Importamos la estructura de la base de datos. En OpenBSD no instala ningún archivo donde importarla, con lo aquí dejo una copia: create_mysql.gz.
# gunzip -d create_mysql.gz
# mysql -u root --socket=/var/www/var/run/mysql/mysql.sock -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 7 to server version: 5.0.22

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> USE snort;
Database changed
mysql> source create_mysql;
Query OK, 0 rows affected (0.27 sec)
Query OK, 1 row affected (0.11 sec)
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.00 sec)
...
mysql>

Configuración Snort

En OpenBSD el fichero de configuración principal de Snort se encuentra en /etc/snort/snort.conf, donde tendremos que indicarle al menos que guarde las alertas y los logs en MySQL, parámetros de red y poco más:
var HOME_NET 192.168.0.0/24

var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var TELNET_SERVERS $HOME_NET
var SNMP_SERVERS $HOME_NET

var RULE_PATH ../rules/rules

output database: log, mysql, user=snort password=password dbname=snort host=localhost
output database: alert, mysql, user=snort password=password dbname=snort host=localhost

Arrancando Snort

Recomiendan:
# snort -bDI -A fast -c /etc/snort/snort.conf
  • -b –> Log paquetes en formato binario ( tcpdump -r file)
  • -D –> Modo daemon
  • -I –> Indica la interfaz por la que llego el paquete
  • -A –> Tipo de alerta ( fast= una linea en el fichero alert)
  • -c –> Fichero de reglas
Aunque mi opción ha sido más simple (con un ojo siempre en /var/log/daemon y /var/log/messages por posibles problemas de permisos, logs...):
# snort -bDI -A fast -c /etc/snort/snort.conf

Instalando BASE

Basic Analysis and Security Engine. Desgargamos la última release (19.04.07) dentro del DocumentRoot y descomprimimos:
# wget -c http://kent.dl.sourceforge.net/sourceforge/secureideas/base-1.3.5.tar.gz
# tar xvvz base-1.3.5.tar.gz
Una vez dentro del directorio, encontramos en sql/ lo necesario para montar las tablas que BASE usará para sus propios análisis. Agregaremos el esquema a la base de datos snort anteriormente creada:
# cat sql/create_base_tbls_mysql.sql | mysql -u root --socket=/var/www/var/run/mysql/mysql.sock  -D snort -p
# mysql -u root --socket=/var/www/var/run/mysql/mysql.sock -p
...
   mysql> show tables;
+------------------+
| Tables_in_snort  |
+------------------+
| acid_ag          |
| acid_ag_alert    |
| acid_event       |
| acid_ip_cache    |
| base_roles       |
| base_users       |
| data             |
| detail           |
| encoding         |
| event            |
| icmphdr          |
| iphdr            |
| opt              |
| reference        |
| reference_system |
| schema           |
| sensor           |
| sig_class        |
| sig_reference    |
| signature        |
| tcphdr           |
| udphdr           |
+------------------+
Vemos que se han creado nuevas tablas con el prefijo acid, esto es porque BASE está basado en ACID -muerto o desactualizado desde el 2003-.
En las instrucciones hay que resolver algunas dependencias de BASE para que funcione correctamente, ADODB es una de ellas:
# wget -c http://puzzle.dl.sourceforge.net/sourceforge/adodb/adodb494.tgz
# tar xfvvz adodb494.tgz
Image_Graph la otra:
# wget -c http://download.pear.php.net/package/Image_Graph-0.7.2.tgz
# wget -c http://pear.php.net/get/Image_Canvas-0.3.0.tgz
# wget http://pear.php.net/get/Image_Color-1.0.2.tgz
Una vez hemos descargado Image_Graph de Pear lo descomprimimos en el directorio Images/ que previamente tendremos que crear, quedando de la siguiente forma:
 base/
   |- Images/
   |- Canvas/
   |- Graph/
   |- docs/
   |- tests/
   |- Canvas.php
   |- Color.php
   |- Graph.php
El siguiente paso será acceder vía web al BASE recién instalado: http://localhost/base/ -donde proceda- y seguir las instrucciones:
Snort Base
Snort Base
Snort Base
Snort Base
Snort Base
Snort Base
Nota: He tenido que tocar más de una vez durante la instalación el archivo base_conf.php para editar la variable $DBlib_path del adodb dependiendo del punto de la instalación en el que te encuentres. Al final ha quedado $DBlib_path = ‘adodb/’;

Referencias

Categorías: sistemas

Comentarios


gravatar
24.Apr.2007
El problema va a ser luego estar al tanto de los fallos de seguridad de esos componentes que no has instalado mediante paquete o port...

Lo wapo será poner snort como un IDS inline, es decir, que proteja de ataques (No solo los vea venir). Se les suele llamar IPS (Intrusion Prevention System).

http://www.snort.org/docs/snort_htmanuals/htmanual_232/node7.html

gravatar
01.May.2007
Pues sí, es un rollo porque luego tienes que estar al tanto de los problemas de seguridad que dan estos paquetes... y en realidad usar un port no es garantía porque no siguen el mismo soporte para corrección de fallos que el sistema base :(

En mi opinión... para IDS es mejor elegir una distribución de Linux fácil de tener al día... como Debian estable.

gravatar
kuppa
20.Nov.2010
Bueno soy novato en este sistema operativo.
mi pregunta es donde consigo el archivo create_mysql.gz??

gracias por la ayuda

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • Juan
  • Marina
  • Francisco
  • fon
  • minWi
  • isra
  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ssh frases champions userlinux iphone lugo rsidenotes felicidades films nintendo opinion sysadmin 2008 blogsfera vacaciones juegos cake ds debian sidenotes apple web blogs mac mysql cakephp deportes 2007 mundial openbsd barça ubuntu twitter blog humor meme canción alemania_2006 games bsd lucux linux twitt programación cumpleaños software django league bash macosx ps3 rfilms conciertos freebsd seguridad personal hack php bake futbol

Archivo

Social

Enlaces de interés