• Suscríbete al Feed Espacio Linux
  • Suscríbete al Feed por Email
  • Sigue a Espacio Linux en Identi.ca
  • Espacio Linux también en Facebook
  • Sigue a Espacio Linux en Twitter
  • Sigue a Espacio Linux en Google +
          Iniciar sesión | Registrarse

Guía Snort + MySQL + ACID + PHP + Apache en Slackware 10.1

INTRODUCCIÓN

Esta guía pretende ayudaros a configurar Snort de manera que los avisos de seguridad se guarden en una base de datos realizada con MySql puedan consultarse facilmente a través de ACID en formato PHP, alojando dicha página en un servidor local APACHE.

Los contenidos de esta guía han sido probados con éxito por mí y no son la única manera de hacerlo, simplemente os proporciono un material que os oriente, y quizá consiga, en la tarea de realizar las cosas de un modo más facil en el mundo GNU/Linux.

Este documento ha sido escrito con la ayuda de la herramienta OpenOffice, y la máquina donde se han realizado las pruebas tenia un Sistema Operativo Slackware Linux 10.1. No me responsabilizo de la mala utilización de los contenidos de este documento, ni de los daños que pudiera provocar en vuestras máquinas (cada uno es responsable de lo que teclea).

Los paquetes que utilicé fueron los siguientes:

Todos son Código abierto y libre.

Supongo que si utilizáis snort, mysql y demás sobre Linux es porque estáis en fase de aprender en Linux, pero que no sois ya unos recién llegados, por ello se supone que tenéis ciertos conocimientos de manejo de directorios, crear usuarios y grupos, y algo de dominio sobre algún editor de texto; yo he elegido vi.

Paso Número 1: Instalación de Snort

Descomprimimos el snort en /usr/src usando:

# tar zxvf snort-2.3.3.tar.gz

Entramos al directorio correspondiente:

# cd /usr/src/snort-2.3.3

Lo configuramos para que se compile preparado para trabajar con MySQL:

# ./configure –sysconfdir=/etc –prefix=/usr –with-mysql=/usr && nice -19 make

Lo compilamos usando

# make install

Creamos el directorio donde se guardarán los logs

# mkdir /var/log/snort

Ya tenemos snort preparado.

Paso Número 2: Configuración MySQL

Yo instalé el MySQL utilizando un paquete precompilado para Slackware (un tgz) desde linuxpackages y lo instalé con installpkg. Hay que tener en cuenta que para utilizar MySQL hay que tener el servidor levantado, esto se hace con una simple orden:

# /usr/bin/mysqld_safe &

Hay varias órdenes para realizar lo mismo y MySQL puede dar algunos fallos hasta conseguir ponerlo a punto pero tales problemas quedan fuera del propósito de esta guía.

Suponemos, por tanto, que MySQL se encuentra instalado y funcionando. Entramos en él tecleando mysql. Podemos entrar con el usuario root y es recomendable tener contraseña para él, con lo cual la orden de entrada quedaría así:

# mysql -u root -p

Creamos una base de datos para snort, tecleando:

$ CREATE DATABASE snort

Recuerda que se supone que estamos ya en MySQL, no en linea de comandos. Le ponemos una contraseña a la base de datos:

$ grant all on snort.* to root@localhost identified by “tu_contraseña”

El siguiente paso a mi me dio problemas desde dentro de MySQL así que salía linea de comandos con exit y le puse:

$ mysql -u root -ptu_contraseña

Con esto snort crea una base de datos sirviéndose de MySQL, que es la que usaremos para gestionar las alertas.
Ahora para comprobar que todo salió bien entramos de nuevo en MySQL y tecleamos “use snort” para elegir la base de datos que queremos y “show tables;”, al realizar este comando deberíamos ver varias tablas en MySQL, si no hay ninguna es que algo no os salió bien. La salida que me dio a mí fue la siguiente:

+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| icmphdr |
| iphdr |
| opt |
| reference |
| reference_system |
| schema |
| sensor |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
16 rows in set (0.00 sec)

Paso Número 3: Configuración de Snort

Ya que snort va a tener muchos archivos de configuración lo ideal es que creemos un directorio para él en /etc y que metamos la configuración que vamos a usar, que básicamente es el archivo general de configuración y las reglas, con los siguientes comandos:

mkdir /etc/snort
mkdir /etc/snort/rules
cd /usr/src/snort-2.3.3/
cp etc/* /etc/snort
cd rules
cp * /etc/snort/rules

“Bien, ya tenemos los ficheros donde queremos ahora necesitamos personalizar nuestro archivo principal de configuración para decirle 2 cosas, primero la ruta en la cual debe buscar las reglas que acabamos de copiar y segundo decirle que nos introduzca las alertas que se vayan produciendo en la base de datos que hemos creado.

Para ello editamos el archivo con:

# vi /etc/snort/snort.conf

Localizamos la línea donde se encuentre var RULE_PATH y la sustituimos por esto:

var RULE_PATH /etc/snort/rules

La siguiente modificación la encontramos aproximadamente en la línea 530, donde ponga output database lo cambiamos por:

output database: log, mysql, user=root password=tu_contraseña dbname=snort host=localhost

Guardamos y salimos, ya tenemos configurado el snort.

Paso Número 4: Instalación y configuración de ACID

Descomprimimos el Acid con:

# tar zxvf acid-0.9.6b23.tar.gz

Y lo llevamos a donde nos interesa con:

# mv ./acid /var/www/htdocs/

Hacemos lo mismo con jpgraph y adodb.

# tar zxvf jpgraph-1.17.tar.gz
# mv ./jpgraph-1.17 /var/www/htdocs/acid/jpgraph
# tar zxvf adodb462.tgz
# mv ./adodb/var/www/htdocs/acid/adodb

Ahora debemos editar el fichero de configuración de Acid. Tecleamos:

#vi /var/www/htdocs/acid/acid_conf.php

En la línea donde esté $Dblib_path, aproximadamente la 13 le metemos esto:

$DBlib_path = “/var/www/htdocs/acid/adodb”;

Y en la configuración de las alertas, aproximadamente la línea 33 dejamos las variables así:

$alert_dbname = “snort”;
$alert_host = “localhost”;
$alert_port = “”;
$alert_user = “root”;
$alert_password = “tu_contraseña”;
$ChartLib_path = “/var/www/htdocs/acid/jpgraph/src”;

Ahora en donde tenemos puesto el Acid editamos un fichero que se dedicará a la autentificación para la consulta de la base de datos de alertas, lo hacemos con “vi /var/www/htdocs/acid/.htaccess””Y a ese archivo, que es creado por nosotros y está en blanco le metemos lo siguiente:

AuthName ?Acid Access?
AuthType Basic
AuthUserFile /var/www/htdocs/acid/htpasswd.users
require valid-user

Guardamos el fichero y salimos y ya tenemos configurado el Acid.

Paso Número 5: APACHE

Yo instalé Apache usando el paquete precompilado oficial de Slackware un tgz y se instala con installpkg. Bien, una vez instalado tenemos que editar el archivo de acceso para que pida nombre de usuario y contraseña. Para ello tecleamos “vi /etc/apache/access.conf”, y le añadimos las siguientes líneas:

<Directory /var/www/htdocs/acid/>
AllowOverride AuthConfig
order allow,deny
allow from all
Options ExecCGI
</Directory>

Ahora editamos el archivo de configuración general de apache con el editor vi, tecleando “vi /etc/apache/httpd.conf”, buscam”s donde ponga User y Group y las cambiamos por estas:

User web

Group web

Tambien debemos descomentar la línea Include /etc/apache/mod_php.conf

Una vez hemos hecho esto debemos asegurarnos de que tengamos en nuestra máquina al usuario web y al grupo web, si no existen los crearemos.

Para que Apache funcione hay dos comandos básicos, para levantar el servidor usaremos:

# /usr/sbin/apachectl start

Y para pararlo:

# /usr/sbin/apachectl stop

Si vamos a querer que se levante el servidor Apache cuando nuestra máquina arranque podemos incluir la orden de arranque en /etc/rc.d/rc.local. Ya tenemos configurado apache, para comprobarlo teclear en la dirección del navegador “localhost”, y debe salir la pantalla de bienvenida de Apache.

Paso Número 6 – Activando Snort

Ahora debemos levantar snort con:

# snort -devyq -c /etc/snort/snort.conf -l /var/log/snort/ -D

Y hacer que snort arranque con nuestra máquina con:

# echo snort -devyq -c /etc/snort/snort.conf -l /var/log/snort/ -D >> /etc/rc.d/rc.local

Con esto ya tenemos snort corriendo en nuestro sistema.

Paso Número 7 – Visualizando Nuestro ACID

Por último ya solo queda visualizar en el navegador nuestra base de datos de las alertas del snort, es muy simple, basta con ponerle esta dirección al navegador “http://localhost/acid”.

Notas
Podría pasar que os pidiera autentificarnos dos veces, no pasa nada simplemente meterle el usuiario y contraseña y ya está. Espero que os haya funcionado, quizá debáis cambiar algunos pasos; yo para ponerlo me guié de varios manuales. Si tenéis alguna duda o queréis contactar conmigo podéis hacerlo por correo electrónico a meleslack@gmail.com, en mi página web http://www.meleagro.esp.cc o en los foros de http://www.espaciolinux.com, allí soy Meleagro.

Licencia del documento
Derechos de Autor © 2005 por Daniel Medianero García.
Este documento esta liberado bajo la licencia creative commons.

Madrid, España 2005, Daniel Medianero García es estudiante de Ingeniería Técnica en Informática de Gestión y un curioso de GNU/Linux, en especial de la distribución Slackware y todo lo relacionado con la seguridad informática.


Temas:
Documentación, Seguridad


Etiquetas:
, ,

Feed Espacio LinuxSi este artículo ha sido de tu interés, considera hacer un comentario o suscribirte al feed para que te enteres de nuevos artículos a través de tu lector de noticias o email.

Acerca del autor

2 Comentarios para “Guía Snort + MySQL + ACID + PHP + Apache en Slackware 10.1”

  1. aaaaaaaaaaaaaa conshetumare no sale ni xna wea de la ke me sirve ami

  2. Probando esta noche 🙂 (Luego de 6 años de que se hizo el artículo jaja).

Publica un comentario

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>