Instalación de Snorby

En los artículos anteriores hemos configurado Snort para que nos escribiera las alertas en un fichero Unified2 y con Barnyard2 conseguimos pasar estas alertas a nuestra Base de Datos de Mysql. Para nuestra gestión de alertas que genere nuestro Snort vamos a instalar la aplicación Web SNORBY en un sistema operativo Debian 8.

Aquí os dejamos una captura del dashboard así como del login de este framework muy interesante e intuitivo.

snrb1
Login de acceso a nuestro framework

snrb2
Dashboard

Lo primero que tenemos que hacer es instalar los pre-requisitos necesarios, para ello ejecutamos.

apt-get update

apt-get install -y libgdbm-dev libncurses5-dev git-core curl zlib1g-dev build-essential \

libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev \

libcurl4-openssl-dev python-software-properties libffi-dev

apt-get install -y imagemagick apache2 libyaml-dev libxml2-dev libxslt-dev git libssl-dev

Snorby está escrito en Ruby, y para su correcto funcionamiento hay que instalar la versión 1.9.3 de Ruby. Además, hay que instalar una serie de gemas necesarias para su correcta ejecución.

Para acelerar la instalación hay que ejecutar los siguientes comandos para evitar la descarga e instalación de documentación.

echo «gem: –no-rdoc –no-ri» > ~/.gemrc

sh -c «echo gem: –no-rdoc –no-ri > /etc/gemrc»

Instalación de ruby 1.9.3

cd /usr/src/

wget https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.gz

tar -xvzf ruby-1.9.3-p551.tar.gz

cd ruby-1.9.3-p551

./configure

make

make install

Instalación de las «Gemas».

gem install wkhtmltopdf

gem install bundler

gem install rails

gem install rake –version=0.9.2

Una vez realizados los pasos anteriores procedemos a la instalación de Snorby

Lo primero que tenemos que hacer es proceder a su descarga.

cd /usr/src/

wget https://github.com/Snorby/snorby/archive/v2.6.2.tar.gz -O snorby-2.6.2.tar.gz

tar xzvf snorby-2.6.2.tar.gz

cp -r ./snorby-2.6.2/ /var/www/html/snorby/

cd /var/www/html/snorby

A continuación, debemos realizar los siguientes pasos

1.- Ejecutamos,

   bundle install

2.- Para la creación de la BBDD de snorby tenemos que realizar los siguientes pasos

2.1 .- Creamos el fichero de configuración database.yml

cp /var/www/html/snorby/config/database.yml.example /var/www/html/snorby/config/database.yml

Tenemos que añadir la clave de administrador de Mysql en el fichero database.yml

imagen1-articulo2.2 .- Creamos el fichero de configuración snorby_config.yml

cp /var/www/html/snorby/config/snorby_config.yml.example /var/www/html/snorby/config/snorby_config.yml

para configurar el fichero snorby_config.yml, ejecutamos la siguiente sentencia

sed -i s/»\/usr\/local\/bin\/wkhtmltopdf»/»\/usr\/bin\/wkhtmltopdf»/g /var/www/html/snorby/config/snorby_config.yml

cd /var/www/html/snorby

3.- Una vez realizados los pasos anteriores procedemos a instalar Snorby

bundle exec rake snorby:setup

Sería conveniente quitar el usuario administrador de Mysql del fichero database.yml, para ello vamos a crear un usuario en la BBDD de Mysql.

    mysql -u root -p

    create user ‘snorby’@’localhost’ IDENTIFIED BY ‘PASSWORD123’;

    grant all privileges on snorby.* to ‘snorby’@’localhost’ with grant option;

flush privileges;

exit

Una vez creado procedemos a modificar el fichero database.yml y modificamos el usuario y password conexión a la BBDD y ponemos el que hemos creado

nano /var/www/html/snorby/config/database.yml

imagen2-articulo

Para comprobar el funcionamiento de Snorby solo hay que ejecutar:

cd /var/www/html/snorby/

bundle exec rails server -e production

y accedemos a través de la url:

http://ip_de_snorby_server:3000

Instalación Phusion Passenger

Para lanzar Snorby vamos a utilizar el módulo de Apache Phusion Passenger. Para ello hay que instalar previamente estos requisitos.

apt-get install -y libcurl4-openssl-dev apache2-threaded-dev libaprutil1-dev libapr1-dev

A continuación, vamos a instalar la gema Passenger y el módulo de Apache.

gem install passenger

passenger-install-apache2-module

Al lanzar Phusion Passenger nos saldrá un menú, tendremos que quitar el soporte para el lenguaje Python.

Antes de terminar la instalación nos saldrá las siguientes líneas, las copiamos y le damos dos veces al intro para terminar la instalación:

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.26/buildout/apache2/mod_passenger.so

   <IfModule mod_passenger.c>

     PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.26

     PassengerDefaultRuby /usr/local/bin/ruby

   </IfModule>

La primera línea indica a Apache la ruta a la biblioteca de objetos compartidos para cargar el módulo Phusion Passenger.

Debemos crear el siguiente fichero:

vi /etc/apache2/mods-available/passenger.load

y añadimos la primera línea:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so

A continuación, creamos el fichero de configuración de Phusion Passenger

vi /etc/apache2/mods-available/passenger.conf

y añadimos las siguientes líneas:

PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-5.0.21

PassengerDefaultRuby /usr/local/bin/ruby

En el siguiente paso habilitamos el módulo Pasenger.

a2enmod passenger

service apache2 restart

Ahora tendremos que crear el sitio web de Snorby en Apache

vi /etc/apache2/sites-available/snorby.conf

y añadimos las siguientes líneas:

<virtualhost *:80>

     ServerAdmin webmaster@localhost

     ServerName snorby.sublimerobots.com

     DocumentRoot /var/www/html/snorby/public

     <directory «/var/www/html/snorby/public»>

         AllowOverride all

         Order deny,allow

         Allow from all

         Options -MultiViews

         </directory>

</virtualhost>

A continuación, tenemos que habilitar el muevo sitio, desactivamos el que viene por defecto y reiniciamos la configuración de Apache

cd /etc/apache2/sites-available/

a2ensite snorby.conf

service apache2 reload

cd /etc/apache2/sites-enabled

a2dissite 000-default

service apache2 reload

Creación de un servicio para el control de Snorby

En primer lugar, tenemos que crear el fichero de configuración del servicio:

vi /lib/systemd/system/snorby_worker.service

Y añadimos las siguientes líneas:

[Unit]

Description=Snorby Worker Daemon

Requires=apache2.service

After=syslog.target network.target apache2.service

 

[Service]

Type=forking

WorkingDirectory=/var/www/html/snorby

ExecStart=/usr/local/bin/ruby script/delayed_job start

[Install]

WantedBy=multi-user.target

Y ejecutamos las siguientes líneas:

systemctl enable snorby_worker

systemctl status snorby_worker.service

Para iniciar solo hay poner http://ip_de_snorby_server, ya no hay que especificar puerto ya que por defecto es el puerto 80

E-mail: [email protected]
Password: snorby

Ya solo nos quedaría configurar Barnyard2 para enviar las alertas a la BBDD, para ello tendremos que añadir la siguiente línea al final del fichero Barnyard2.conf

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

Con esto ya tendríamos el framework funcionando para gestionar nuestras alertas de una manera mucho más eficiente y «bonita».

Espero que este artículo os sirva para poder instalarlo sin problemas.

Muchas gracias

Juanjo Martínez.