Radio UNCION ACTIVA

Es

jueves, 21 de enero de 2010

Como instalar y administrar una red de detección de intrusos.

Instalación

El software requerido es Snort compilado con soporte para la base de datos MySQL (snort-mysql), un conjunto de reglas de ataques para el Snort (snort-rules-default), la base de datos MySQL, soporte para ruby y como forma opcional un servidor web Apache.


MySQL
Antes de comenzar con la instalación es importante explicar que vamos a crear una contraseña para el usuario root en la base de datos, el cual tiene control total sobre MySQL. A su vez nos crearemos el usuario snort con contraseña contraseña_bbdd_snort y una base de datos donde escribirá Snort, que en el caso de la guía la he llamado snort28 (por la versión del Snort). Como nota final indicar que la contraseña que empleamos para el usuario snort que no contenga caracteres no numéricos o letras puesto que da problemas.

Instalamos la base de datos MySQL:

aptitude install libmysqlclient15-dev mysql-client mysql-server

En la instalación de la base de datos se nos pedira que introduzcamos la contraseña de root para la base de datos. En caso de no haberla introducido podremos usar la herramienta mysqladmin para generarla:

mysqladmin -u root password contraseña_bbdd_root

Accedemos a mysql como root para crear la base de datos de nombre snort28 y darle permisos al usuario snort para que tenga control total sobre dicha base de datos. Adicionalmente crearemos la contraseña para el usuario snort:

mysql -u root -p
(contraseña_bbdd_root)
> create database snort28;
> grant all on snort28.* to 'snort'@'localhost' identified by 'contraseña_bbdd_snort';
> flush privileges;
> quit

Creamos toda la estructura de la base de datos que requerirá snort para guardar sus datos:

cd /usr/share/doc/snort-mysql/
zcat create_mysql.gz | mysql -u snort -p snort28

Snort

Instalamos Snort y sus reglas:

aptitude install snort-mysql snort-rules-default

Configuramos snort modificando las siguientes líneas del fichero /etc/snort/snort.conf:

vim /etc/snort/snort.conf

var HOME_NET 192.168.0.0/16 #Poner nuestra red interna
var RULE_PATH /etc/snort/rules
dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/
dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so
output database: log, mysql, user=snort password=contraseña_bbdd_snort dbname=snort28 host=localhost

Para finalizar indicamos que ya tenemos tanto el Snort como la base de datos lista:

rm /etc/snort/db-pending-config

Snorby

Instalamos Ruby y sus dependencias para dar soporte a Snorby:

aptitude install git-core openssl ruby1.8-dev libopenssl-ruby libapr1-dev libaprutil1-dev rubygems1.8 rake

Nos bajamos snorby:

cd /var
git clone git://github.com/mephux/Snorby.git
cd /var/Snorby/config
cp database.yml.example database.yml
cp email.yml.example email.yml

Editamos database.yml:

production:
adapter: mysql
database: snort28
username: snort
password: contraseña_bbdd_snort
host: localhost

Ahora es donde empieza la fiesta... a descargarse dependencias toca:

gem install rake
gem install -v=2.3.2 rails
gem install mysql
gem install prawn
gem install passenger

Instalamos ya por fin Snorby:

cd /var/Snorby
rake snorby:setup RAILS_ENV=production
rake snorby:update RAILS_ENV=production

Ahora comprobamos que realmente esta funcionando levantando el servicio web de ruby:

ruby script/server -e production -b 127.0.0.1 -p 8888 -d

Nos conectamos por un navegador web a la siguiente dirección:

http://127.0.0.1:8888/

Si todo ha funcionado veremos una ventana de login, por defecto el usuario es snorby y la contraseña admin. Para cambiarlo vamos a la barra superior Settings -> MySettings -> Cambiamos el login y el password.

Captura de pantalla de interfaz Snorby: http://doc.ubuntu-es.org/Imagen:Snorby.jpg#filelinks

Servidor web Apache

Nos puede interesar emplear el servidor web Apache por SSL en vez del servidor web de Ruby. Para ello hay que seguir los siguientes pasos:

Instalamos las dependencias:

aptitude install apache2 apache2-prefork-dev build-essential

Creamos un servidor virtual:

vim /etc/apache2/sites-available/ids


SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache2.pem
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.8/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.8
PassengerRuby /usr/bin/ruby1.8
ServerAdmin webmaster@localhost
DocumentRoot /var/Snorby/public

Options FollowSymLinks
AllowOverride None

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined


Indicamos que queremos que el servidor virtual se cree en el arranque de apache:

ln -s /etc/apache2/sites-available/ids /etc/apache2/sites-enabled/ids

Agregamos el nuevo puerto a la lista de puertos:

vim /etc/apache2/ports.conf


Listen 8888


Habilitar módulos ssl

ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/
ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/

Creamos los certificados:

mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
cat server.key server.crt >> apache2.pem

Instalamos la compatibilidad con apache <-> ruby mediante Passenger:

/var/lib/gems/1.8/gems/passenger-2.2.8/bin/passenger-install-apache2-module

Funcionamiento Snort

todo...


Construcción de reglas

todo..

Obtenido de "http://doc.ubuntu-es.org/IDS"

1 comentario:

  1. Hey ke onda, oie deverias de tener un boton de contacto jaja llevo dias keriendote localizar xD saludos

    ResponderEliminar

Powered By Blogger