Blog

Como montar nuestro IDS (Intrusion Detection System) – Parte III – Instalado BASE

Para ver la serie completa pulsa aquí. Habrá conceptos que se den por obvios ya que están explicados en artículos anteriores.

Buenas a todos! En este nuevo post sobre IDS vamos a ver como una vez tenemos instalado Snort y Barnyard podríamos instalar BASE (Basic Analysis and Security Engine), un front-end para el IDS Snort que nos va a permitir ver y controlar  los resultados y alertas generadas por Snort de forma gráfica mediante un entorno web.

Antes de meternos a ver como instalar vamos a ver como funciona BASE. Como vimos en los anteriores post de la serie, una vez tenemos instalado Snort, este nos genera una serie de logs que va guardando en ficheros. Después vimos como instalarnos Barnyard, que nos permitía coger esos ficheros en ‘tiempo real’ y los iba introduciendo en una base de datos preparada para Snort. Pues ahora lo que va a hacer BASE en este post y Snorby en el siguiente sera únicamente leer y modificar los datos que se encuentren en esa base de datos donde tendremos todas las alertas y eventos generadas por el IDS.

snort_base

 

Una vez hemos visto que pasa por debajo vamos a ver como podríamos instalarlo.

Lo primero que tenemos que hacer es comprobar que tenemos instalado Apache, PHP y MySQL así como algunos pre-requisitos mas para poder correr el servicio web.

yum install httpd php php-common php-gd php-cli php-mysql  php-pear php-gd php-pear-DB php-pear-File unzip mysql-server -y

 

Nos instalamos Image_Graph Pear que sera el encargado de dibujar las gráficas de BASE.

pear install -f Image_Graph

 

Configuramos MySQL para que corra como servicio cuando se inicia el ordenador.

chkconfig mysqld on
service mysqld start

 

Creamos la base de datos donde guardaremos todos los datos sobre Snort.

mysqladmin create snort
mysql
grant ALL PRIVILEGES on snort.* to snort@localhost with GRANT option;
SET PASSWORD FOR snort@localhost=PASSWORD('snort'); 
\q
cd /usr/local/src/snort/barnyard2/schemas/ 
mysql < create_mysql snort

 

En caso de que ya tuvierais instalado MySQL y le hubierais puesto contraseña, podéis entrar utilizando ‘mysql -p’ e introduciendo la contraseña. Una vez tenemos la base de datos creada correctamente tenemos que modificar la configuración de Barnyard para que todo lo que vaya registrando lo meta en MySQL si no lo hemos hecho anteriormente.

vi /usr/local/etc/barnyard2.conf

 

Y modificamos lo siguiente:

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

 

Una vez hecho esto, reiniciamos Barnyard para que coja de nuevo la configuración del fichero que acabamos de modificar.

service barnyard2 restart

 

Configuramos Apache para que se inicie como servicio cuando se inicia el ordenador.

chkconfig httpd on
service httpd start

 

Ahora ya tendríamos Snort, Barnyard, Apache y MySQL preparados para iniciarse cuando el ordenador se inicie, por lo que a menos que los paremos nosotros, se encontraran activos y funcionando todo el rato, evitando así perder posibles alertas por parte del IDS.

Vamos a pasar ahora a la instalación propiamente dicha de BASE, para ello lo primero que tenemos que hacer es instalarnos ADOdb, que para los que no sepáis que es os dejos aquí la definición de la Wikipedia:

ADOdb es un conjunto de bibliotecas de bases de datos para PHP1 y Python. Esta permite a los programadores desarrollar aplicaciones web de una manera portable, rápida y fácil. La ventaja reside en que la base de datos puede cambiar sin necesidad de reescribir cada llamada a la base de datos realizada por la aplicación.

Para poder instalarla hacemos lo siguiente:

cd /usr/local/src/snort
wget http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-515-for-php5/adodb515.zip -O adodb.zip
cd /var/www/
unzip /usr/local/src/snort/adodb.zip
mv adodb5 adodb

 

Ahora nos descargamos y descomprimimos BASE:

cd /usr/local/src/snort
wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz
cd /var/www/
tar zxvf /usr/local/src/snort/base-1.4.5.tar.gz
mv base-1.4.5 base

 

Metemos BASE en el directorio web y configuramos el fichero de configuración de BASE.

cd /var/www/base
cp base_conf.php.dist base_conf.php
vi base_conf.php
....
$BASE_urlpath = "/base";
$DBlib_path = "/var/www/adodb/";
$DBtype = "mysql";
$alert_dbname   = "snort";
$alert_host     = "localhost";
$alert_port     = "";
$alert_user     = "snort"; 
$alert_password = "snort";
...

 

Una vez hecho esto ya tendríamos BASE instalado, ahora solo deberíamos meternos en “http://localhost/base” y pulsar sobre el link “setup page”. Esto nos lleva a una página donde debemos de pulsar “Create BASE AG” (Arriba a la derecha) y por ultimo pulsar sobre el link “Main page”, que nos llevara a la página principal donde ya tendremos todo instalado y que tras un tiempo para que el IDS coja resultados nos mostrara la siguiente interfaz.

image_base

 

Por lo tanto ahora ya podríamos utilizar BASE para administrar todas las alertas que tuviéramos con el IDS Snort. Ahora podríais realizar algunos ataques en red con otro ordenador y ver cómo empieza a generar alertas cómo en la imagen anterior ;)! En el siguiente post veremos como podríamos instalar Snorby que es otro Front-end para Snort, y a partir de ahí comenzaremos otra serie sobre como administrar Snort, crear nuestras propias alertas, configurarlo como IPS, etc…

Espero que os haya gustado!

Parte II – Instalando Barnyard

Parte IV – Instalando Snorby

 

Un saludo,

Eduardo – eduardo@highsec.es – @_Hykeos

  1. marcos
    marcos01-09-2014

    Muy buen artículo.

    A la espera del próximo y de la configuración del IPS.

    Saludos.

  2. Jose
    Jose02-02-2014

    Hola,

    Antes que nada, comentarte que has echo una excelente guía.

    Estoy teniendo problemas a la hora de iniciar el servicio barnyard2.

    Al modificar el archivo de configuración de barnyard2 para indicar el usuario, la contraseña y la base de datos donde tiene que conectarse (he comprobado que el usuario tiene acceso a la base de datos y todo sin ningún problema). Al guardar los cambios y reiniciar el servicio barnyard2, caé, es decir el servicio barnyard2 no inicia y muestra el mensaje como a que el inicio del servicio a fallado.

    No me he parado mucho a ver lo que esta sucediendo pero lo que he visto se debe a la línea de configuración de acceso a la base de datos, puesto que al modificar de nuevo el archivo de y comentar la dicha línea, el servicio inicia correctamente.

    Podrías decirme si esto te ha ocurrido?
    De todas formas seguiré buscando información para ver que esta pasando.

    Gracias.
    Un saludo.

    • Eduardo Arriols
      Eduardo Arriols02-03-2014

      Buenas la verdad que a mi me dio otros fallos como por ejemplo que no metía los datos bien en MySQL, pero eso que me comentas no…

      Podría ser por el tema de las versiones, comprueba que te hayas instalado la misma que en el tutorial o sino instálate la ultima versión de Barnyard2.

      Y a parte de eso… Que compruebes los parámetros de la llamada, y que realmente estas intentando ejecutarlo en modo demonio, porque eso si que me peto a mi alguna vez.

      Intentare echarle un ojo y te digo a ver si veo algo 😉

      Un saludo.

      • Jose
        Jose02-03-2014

        Hola Eduardo,

        Ya esta solucionado, lo instale todo de nuevo y solucionado.
        He estado mirando algunos proyectos como Security Onion que ya traen todo lo necesario, y tienen muy buena pinta la verdad, aunque no se como andarán en cuanto a seguridad.
        Prefiero montarlo tal cuál indicas tu aquí.
        Por cierto, sigo con tu web y espero mas posts sobre este tema jaja

        Un saludo.

        • Eduardo Arriols
          Eduardo Arriols02-05-2014

          Buenas Jose,

          Perfecto entonces con la instalación ;)! En cuanto al proyecto que me comentas no lo conocía, pero le echare un ojo!

          Un saludo!

  3. Jose Jacome
    Jose Jacome03-22-2014

    Saludos ya voy por esta parte del tema .. pero salieron muchos errores al momento dei implementar base

    por ejemplo en tu guia dice que el archivo base debe estar en /var/www pero para que funcione base en modo http debe estar en /var/www/html

    corrigueme si no estoy en lo cierto

    la otra es que no me carga ningun dato en este http://localhost/base 🙁

    • Eduardo Arriols
      Eduardo Arriols03-23-2014

      Buenas Jose,

      Lo que comentas no es así ya que tu puedes meter lo que sea en /var/www/ y ser accesible desde la red. Normalmente lo suelen meter en html pero para ello debes de configurarlo, es decir, en tu caso estas buscando en http://localhost/base/ que a menos que hayas configurado tu servidor, hará referencia a /var/www/ no a /var/www/html.

      Por lo tanto si lo tienes instalado en /var/www/html/ deberás de configurar el archivo .htaccess para indicarle a tu servidor que localhost/base/ haga referencia a ese directorio.

      Un saludo,
      Eduardo.

  4. Francisco
    Francisco09-29-2014

    Hola Eduardo…el error que tengo, es que no puedo arrancar el servicio Mysql. estoy buscando y me es imposible encontrar algo que me ayude..podrías hacerlo tu?

Leave a Reply

*

    No Twitter Messages