15
Manual de Instalación, Configuración y Administración del Servidor de Preventor de Intrusos

Sistema Detector de Intrusos

Embed Size (px)

Citation preview

Page 1: Sistema Detector de Intrusos

Manual de Instalación,

Configuración y Administración del

Servidor de Preventor de Intrusos

Page 2: Sistema Detector de Intrusos

1.- Instalación y Configuración 1.1.- Instalación del bridge en Centos El servidor Centos posee 3 tarjetas de red br0: interfaz virtual que sirve de puenteeth0 : input del bridgeeth1: output del bridgeeth2: ip configurada para la administración remota Instalamos los siguientes paquetes $> yum install bridge-utilscreamos un archivo llamado puente $> vim puente #!/bin/bash# script para activar el bridge puesnte del IPS# PeruLinux 2011ifup loifup eth2ifconfig eth0 0.0.0.0 upifconfig eth1 0.0.0.0 upbrctl addbr br0brctl addif br0 eth0brctl addif br0 eth1ifconfig br0 up#route add default gw 172.16.80.240echo "nameserver 8.8.8.8" > /etc/resolv.confCopiamos ese archivo a la siguiente ubicación, le damos los permisos de ejecución, $> cp puente /usr/bin/puente $> chmod 775 /usr/bin/puente Agregamos al final del archivo rc.local para que se ejecute automáticamente$> vim /etc/rc.localPuente 1.2.- Instalación de Snort en CentOS Descargar los paquetes necesarios para instalar snort$> yum install mysql mysql-server mysql-devel mysql-bench php-mysql gcc pcre-devel php-gd gd glib2-devel gcc-c++ libpcap-devel

Luego descargar los siguientes binarios(daq-0.5.tar.gz, snort-2.9.0.5.tar.gz,) en la siguiente carpeta : $> mkdir /root/paquetes$> cd /root/paquetes$> wget https://www.snort.org/downloads/860$> wget https://www.snort.org/downloads/867$> wget http://prdownloads.sourceforge.net/libdnet/libdnet-1.11.tar.gz?download$> wget http://www.tcpdump.org/release/tcpdump-4.1.1.tar.gz$> wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz

Compilamos el libpcap, Descomprimimos el binario

Page 3: Sistema Detector de Intrusos

$> tar -zxvf libpcap-1.1.1.tar.gz

y lo movemos en la siguiente ubicación$> mv libpcap-1.1.1 /usr/local/src/libpcap-1.1.1

Ingresamos al binario$> cd /usr/local/src/libpcap-1.1.1

compilamos de la siguiente manera$> ./configure –prefix=/usr$> make && make install Luego vemos que las librerias fueron instaladas en la ubicación /usr/lib/ pero debe estar en /usr/lib64 al ser nuestro sistema 64 bitsHacemos una copia de los binarios$> cp /usr/lib/libpcap* /usr/lib64/ Ahora compilamos los demas paquetesDescomprimimos el paquete libdnet-1.11.tar.gz$> tar -zxvf libdnet-1.11.tar.gz Entramos al paquete y lo compilamos$> cd libdnet-1.11$> ./configure$> make && make install descomprimimos el paquete tpcdump-4.1.1.tar.gz $> tar -zxvf tcpdump-4.1.1.tar.gz Ingresamos al directorio y lo compilamos $> cd tcpdump-4.1.1 $> ./configure$> make && make install Ahora descomprimimos daq-0.5.tar.gz$> tar -zxvf daq-0.5.tar.gz Ingresamos en el directorio y compilamos $> cd daq-0.5$> ./configure$> make && make install Descomprimimos los binarios de snort$> tar -zxvf snort-2.9.0.5.tar.gz Ingresamos y compilamos con los siguientes parametros $> cd snort-2.9.0.5 $> ./configure -with-mysql-libraries=/usr/lib64/mysql --enable-ipv6 --enable-dynamicplugin --enable-build-dynamic-examples --enable-zlib --enable-inline-init-failopen --enable-normalizer --with-daq-includes=/usr/local/ --with-daq-libraries=/usr/local/lib/daq/$> make$> make install

Ahora agregamos al grupo snort $> groupadd snort

Page 4: Sistema Detector de Intrusos

Agregamos al usuario snort que se encuentra en el grupo snort sin permiso de logeo$> useradd -g snort snort -s /sbin/nologin Creamos el directorio donde se encontraran los archivos necesarios para snort $> mkdir /etc/snort$> mkdir /etc/snort/rules$> mkdir /etc/snort/so_rules Se crea la ubicacion de los logs para snort y le damos permisos para el usuario y el grupo snort $> mkdir /var/log/snort $> chown snort:snort /var/log/snort Ingresamos y copiamos las configuraciones por defecto del snort $> cd snort-2.9.0.5/etc $> cp * /etc/snort Ingresamos a la paquetería $> cd /root/paquetes Creamos una carpeta extra donde colocaremos el snortrules$> mkdir rules descargamos de la pagina de snort el siguiente paquete que son las reglas del snort y lo colocamos dentro de rules snortrules-snapshot-2904.tar.gz Luego lo pasamos de nuestra pc a nuestro servidor con el programa winscp http://winscp.net/eng/download.php Una vez copiado lo descomprimimos $> tar -zxvf snortrules-snapshot-2904.tar.gz Ahora copiamos las reglas hacia las reglas del snort $> cd rules $> cp * /etc/snort/rules Entramos a la siguiente ruta $> cd /root/paquetes/rules/so_rules/precompiled/Centos-5-4/x86-64/2.9.0.4 y copiamos el contenido en so_rules $> cp * /etc/snort/so_rules Entramos a la carpeta $> cd /root/paquetes/rules Copiamos toda la carpeta $> cp -rp preproc_rules /etc/snort Modificamos nuestro snort.conf

Page 5: Sistema Detector de Intrusos

$> vim /etc/snort/snort.conf

La linea que dicevar RULE_PATH ../rules La modificamos por var RULE_PATH /etc/snort/rules La linea var SO_RULE_PATH ../so_rules La modificamos por var SO_RULE_PATH /etc/snort/so_rules La linea var PREPROC_RULE_PATH ../preproc_rules La cambiamos por var PREPROC_RULE_PATH /etc/snort/preproc_rules Ahora colocamos un password a nuestro root del mysql $> echo "SET PASSWORD FOR root@localhost=password('alumno');"| mysql -u root -p Damos dos veces enter y nuestra clave estara creada ... donde alumno es nuestra clave Ahora creamos la base de datos $> echo "create database snort;" | mysql -u root -p Colocamos nuestro password y la clave estara creada

Ahora exportamos la configuracion de las tablas$> mysql -u root -p -D snort < /root/snort-2.9.0.5/schemas/create_mysqlingresamos la clave y listo Le damos permisos al usuario snort para el acceso a esa base de datos $> echo "grant all on root.* to snort@localhost" | mysql -u root -p Le colocamos un password al usuario snort en el mysql $> echo "set password for snort@localhost=password('alumno');"| mysql -u root -p Le damos los permisos necesarios $> echo "grant all on snort.* to snort@localhost" | mysql -u root -p

1.3.- Instalación de BARNYARD2 en CentOSdescargamos dentro de /root/paquetes

Page 6: Sistema Detector de Intrusos

$> wget http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz descomprimimos y compilamos con soporte para mysql $> tar -zxvf barnyard2-1.9.tar.gz $> cd barnyard2-1.9 $> ./configure -with-mysql-libraries=/usr/lib64/mysql $> make && make install luego copiamos los archivos de configuración $> cp etc/barnyard2.conf /etc/snort Creamos los archivos de log de barnyard y le asignamos permisos $> mkdir /var/log/barnyard2$> chmod 666 /var/log/barnyard2$> touch /var/log/snort/barnyard2.waldo$> chown snort:snort /var/log/snort/barnyard2.waldo Ahora editamos el archivo de configuracion del barnyard$> vim /etc/snort/barnyard2.confdescomentamos las siguientes lineas config hostname: mailconfig interface: br0output database: log, mysql, user=snort password=alumno dbname=snort host=localhost 1.3.1- Iniciar Serviciosiniciar snort $> snort -c /etc/snort/snort.conf -D Iniciar Baynard $> /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo -D Nota: Mensajes de error en mysql si exiten mensajes de error en mysql se le agrega en el archivo /etc/my.cnf y reiniciamos los servicioswait_timeout = 10000000 2.- Instalación y Configuración del Panel de Administración

Page 7: Sistema Detector de Intrusos

Snorby es una interfaz gráfica basada en ruby y ruby rails, que nos permitirá ver los logs de posibles ataques

2.1.- Instalación de SnorbyPrerequisitos

Apache, mysql, snort y barnyard2

Paqueteria necesaria

gcc, openssl, openssl-devel, fontconfig-devel, libtool-ltdl-devel, xz, libxml2

La ultima paquteria de ImageMagic e instalarlas

$> wget http://www.imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-6.6.9-4.x86_64.rpm

$> wget http://www.imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-devel-6.6.9-4.x86_64.rpm

$> yum install ImageMagick-6.6.9-4.x86_64.rpm ImageMagick-devel-6.6.9-4.x86_64.rpm --nogpgcheck

$> yum install -y libxml2 libxml2-devel libxslt libxslt-devel http-devel curl-devel

Ahora descargamos ruby, descomprimimos y compilamos

$> wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.9.2-p180.tar.gz

$> tar -zxvf ruby-1.9.2-p180.tar.gz$> cd ruby-1.9.2-p180$> ./configure$> make && make install

Para instalar el codig snorby necesitamos git

$> yum install git

Descargamos snorby la ultima versión de la siguiente manera

$> git clone git://github.com/Snorby/snorby.git

entramos al codigo fuente de snorby y vemos si existen actualizaciones

$> git pull

Descargamos las gemas de rubi e instalamos

$> gem install bundler$> bundler install

Instalamos el modulo mod_rails. Esto nos proporciona un modulo apache para instalar Snorby

Page 8: Sistema Detector de Intrusos

$> gem install passenger –-no-rdoc –-no-ri

$> passenger-install-apache2-module

$> bundle install --path vender/cache

Modificamos el archivo apache

$> vim /etc/httpd/conf/httpd.conf

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6/ext/apache2/mod_passenger.soPassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.6PassengerRuby /usr/local/bin/ruby

Y también lo siguiente

<VirtualHost *:80>ServerName ips.onpe.org.peDocumentRoot /var/www/snorby/public<Directory /var/www/snorby/public>AllowOverride allOptions -MultiViews</Directory></VirtualHost>

Mover el paquete snorby a la siguiente ubicación

$> mv /root/snorby /var/www

Modificamos la siguiente directiva

$> vim /var/www/snorby/config/database.yml

colocamos lo siguiente

snorby: &snorby adapter: mysql username: root password: password # change this host: localhost

Luego lo modificaremos, instalamos la base de datos snorby y sus tablas

rake snorby:setup

Le damos privilegios a los usuarios;

$> mysql -u root -p

mysql> use snorby;

mysql> grant all privileges on *.* to snorby@localhost identified by 'contrasena';

Modificamos los siguientes archivos

$> vim /var/www/snorby/scripts/railsLa primera linea la borramos y colocamos lo siguiente

Page 9: Sistema Detector de Intrusos

#!/usr/local/bin/ruby

$> vim /var/www/snorby/scripts/delayed_job

#!/usr/local/bin/ruby

Le damos permisos a la carpeta snorby

$> cd /var/www/snorby$> chmod 777 * -R

Ingresamos por primera vez a la interfaz de snorby

http://ipdelservidor

La primera vez colocamos el usuario

[email protected] : snorby

Soporte para pdf

Descargamos el siguiente paquete lo descomprimimos instalamos y colocamos en la siguiente ubicación.

$> wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc1-static-amd64.tar.lzma$> xz -d wkhtmltopdf-0.10.0_rc1-static-amd64.tar.lzma$> tar -xvf wkhtmltopdf-0.10.0_rc1-static-amd64.tar$> cp wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf

2.1.- Administración de Snorby

Page 10: Sistema Detector de Intrusos

Acceso al panel de snorby

Al ingresar por primera vez colocamos el correo [email protected] y la contrasena snorby

Acá cambiamos nuestros datos y le damos en aplicar las reglas luego nos posicionamos en el dashboard

Page 11: Sistema Detector de Intrusos

Los eventos son de 3 clases, de alta severidad, de media y de baja severidad

Por ejemplo entramos a los logs de alta severidad

A darle click a un evento podemos ver su información la cual puede ser visualizada en modo hexadecimal o ascii

Page 12: Sistema Detector de Intrusos

Además podemos ver el origen y el destino del ataque y ver la información del ataque en el botón query signature database, esto buscara en la base de datos rootedyour.com y te enviara el tipo de ataque.

Podemos ir a la pestaña eventos y vemos los sucesos en groso modo

Page 13: Sistema Detector de Intrusos

Luego vamos a sensores que son los agentes que scanearan la red

Vemos el uso de los sensores es decir el porcentaje de trabajo de cada sensor, podemos cambiar el nombre de cada sensor al que elijamos.

Incluso podemos hacer búsquedas de eventos

3.- Configuración de actualizaciones automáticas de las reglas del Snort

Page 14: Sistema Detector de Intrusos

Para actualizar automáticamente las reglas de IDS del spot descargamos el paquete oinkmaster

http://sourceforge.net/projects/oinkmaster/files/oinkmaster/2.0/oinkmaster-2.0.tar.gz/download

lo descomprimimos

$> tar -zxvf oinkmaster-2.0.tar.gz

Copiamos oinkmaster.pl,oinkmaster.conf y oinkmaster.1 en los siguientes directorios$> cp oinkmaster.pl /usr/local/bin$> cp oinkmaster.conf /etc$> cp oinkmaster.1 /usr/local/man/man1

Editar la configuración de oinkmaster.conf, cambie la configuración de la línea "url = <url>"

Primero se debe verificar la versión del snort para descargar las reglas correspondientes a su versión

eso se logra con el siguiente comando

$> snort -V

En la siguiente pagina nos registramos en la página de snort para poder obtener el oinkcode que nos permitirá actualizar en línea nuestras reglas de snort.

https://www.snort.org/signup

Luego de registrarnos ingresamos a nuestra cuenta y nos situamos en la siguiente dirección

https://www.snort.org/account/oinkcode y nos dará nuestro oinkcode correspondiente a nuestra cuenta, incluso nos mostrara como configurarla

Luego de ver la versión del snort nos vamos a la siguiente línea del archivo oinkmaster.conf

$> vim /etc/oinkmaster.conf

url = http://www.snort.org/pub-bin/oinkmaster.cgi/<oinkcode>/snortrules-snapshot-CURRENT.tar.gz

Reemplazamos el <oinkcode> por nuestro oinkode

guardamos y cerramos

Para ejecutar el oinkmaster podemos dar el siguiente comando

$> oinkmaster.pl –o /etc/snort/rules

Creamos un grupo para el oinkmaster

$> groupadd oink

Creamos un usuario para el oinkmaster sin permiso de logeo

$> useradd –g oink oink –s /sbin/nologin

Page 15: Sistema Detector de Intrusos

Creamos el crontab como usuario oink master

$> su – oink

$> crontab –e

15 4 * * * /usr/local/bin/oinkmaster.pl –o /etc/snort/rules

Estas reglas al no ser pagadas solo se actualizaran cada 15 días despues de salir las nuevas versiones.