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.
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
2.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
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.