Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - MurdeR^^

#1
Les dejo una invitación a todos los interesados que anden por Argentina :P

Saludos!


#2
Seguridad / Snort: Detección de intrúsos y ataques
24 Septiembre 2007, 09:16 AM
Snort: Detección de intrúsos y ataques  //  By MurdeR ( http://www.thefreeks.com.ar , x3m_murder@hotmail.com )

#######################
Instalación de Snort+ ACID:
#######################

Instalaremos Snort, utilizando una base de datos mysql y apache para el ACID (para ver estadísticas en vivo).

Paso 1: Bajar todos los paquetes;

- snort-x.x.x.tar.gz
- acid-x.x.x
- adodb-x.x-for-php
- jpgraph-x.x
- mysql-x.x.x
- apache-1.3.x
- php-4.x

(recomiendo apache 1.3 y php 4 ya que algunas características cambian en diferentes versiones)


Paso 2:

Descomprimir y compilar snort;

root@murder # tar -zxvf snort.tar.gz
root@murder # cd snort
root@murder # ./configure --sysconfdir=/etc --prefix=/usr --with-mysql=/usr && nice -19 make
root@murder # make install
y creamos un directorio para los logs:
root@murder # mkdir /var/log/snort

Paso 3:

Instalar mysql, apache y php;

http://www.diosdelared.com/foro/index.php?topic=636.0

Paso 4:

Crear tablas y configurar usuario en mysql;

root@murder # mysql -u root -p

Desde aca en mysql...

Creamos la db:

$ CREATE DATABASE snort

Le ponemos clave:

$ grant all on snort.* to root@localhost identified by "password"

$exit

Salimos de mysql.. volvemos a la consola;

root@murder # mysql -u root -ptu_contraseña < /usr/src/snort-x.x.x/schemas/create_mysql snort

Paso 5:

Configuramos Snort;

root@murder # mkdir /etc/snort; mkdir /etc/snort/rules
root@murder # cd /usr/src/snort-2.3.3/
root@murder # cp etc/* /etc/snort
root@murder # cd rules
root@murder # cp * /etc/snort/rules

Editamos el conf file;

root@murder # gedit /etc/snort/snort.conf

usando control f (buscar) buscamos la linea que pone RULE_PATH y la sustituimos por:

var RULE_PATH /etc/snort/rules

y localizamos la que pone "output database" y la sustituimos por:

output database: log, mysql, user=root password=tu_contraseña dbname=snort host=localhost

Guardar y cerrar gedit (o vim o lo que sea)

Paso 6:

Instalando ACID;

root@murder # tar zxvf acid-x.x.x.tar.gz

Lo movemos a htdocs (o donde pitos este el home de apache..)

root@murder # mv ./acid /var/www/htdocs/

Descomprimimos tambien jpgraph (para las imagenes) y adodb y los movemos:

root@murder # tar zxvf jpgraph-x.x.tar.gz
root@murder # mv ./jpgraph-x.x /var/www/htdocs/acid/jpgraph
root@murder # tar zxvf adodbxxx.tgz
root@murder # mv ./adodb/var/www/htdocs/acid/adodb

Editamos el conf file de acid:

root@murder # gedit /var/www/htdocs/acid/acid_conf.php

Localizamos y modificamos la linea que pone: $Dblib_path

$DBlib_path = "/var/www/htdocs/acid/adodb";

Y modificamos las alertas (control f, $alert ;), deben quedar así:

$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "root";
$alert_password = "tu_contraseña";
$ChartLib_path = "/var/www/htdocs/acid/jpgraph/src";

Ahora creamos el siguiente archivo:
root@murder # gedit /var/www/htdocs/acid/.htaccess

(Esta en blanco..) y ponemos lo siguiente:

AuthName ?Acid Access?
AuthType Basic
AuthUserFile /var/www/htdocs/acid/htpasswd.users
require valid-user

Guardar, salir y listo.


Paso (ya me perdi xD) ah si, 7:

Editamos el access de apache;

root@murder # gedit /etc/apache/access.conf

y agregamos:

<Directory /var/www/htdocs/acid/>
AllowOverride AuthConfig
order allow,deny
allow from all
Options ExecCGI
</Directory>

al final o donde quieran... guardar, salir

ahora editamos httpd.conf:

root@murder # gedit /etc/apache/httpd.conf

y modificamos el user  y group por:

User web

Group web

guardar, salir..

Para terminar, reiniciamos apache:

root@murder # apachectl restart

o si no esta arrancado:

root@murder # apachectl start

Paso final de la instalacion (8...):

Activamos el snort:

root@murder # snort -devyq -c /etc/snort/snort.conf -l /var/log/snort/ -D

y lo añadimos a rc.local (script bash de arranque-.-) para que arranque cada vez que se reinicia:

root@murder # echo snort -devyq -c /etc/snort/snort.conf -l /var/log/snort/ -D >> /etc/rc.d/rc.local

Para ver las estadisticas en el acid pongan en el navegador:

http://localhost/acid

y voilá.



#######################
Usando snort a mano:
#######################

Es muy sencillo e intuitivo, ponemos el snort a snifar el trafico de la interfaz deseada, en este caso eth0:

murder@murder $ snort -c /var/log/snort -i eth0

Listo, esto registrará todas las alertas de ataques, scaneos, etc. en los logs. Para verlo no hay mas que

murder@murder $ cd /var/log/snort
murder@murder $  ls
y obtendran un resultado como este:

192.168.0.2/   200.129.x.x/ alert


###################
Configuracion avanzada:
###################

Snort se basa en reglas para detectar los intentos de ataques, estas reglas se pueden crear manualmente (un rollazo) o descargar y cargar de la siguiente manera:

root@murder # wget http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_os/snortrules-snapshot-CURRENT.tar.gz

Creamos un dir para las reglas:

root@murder # mkdir /etc/snort/rules

Descomprimimos:

root@murder # tar -zxvf snortrules-snapshot-CURRENT.tar.gz

Movemos al directorio recien creado:

root@murder # cp * /etc/snort/rules

root@murder # cd /etc/snort
root@murder # gedit snort.conf

y lo modificamos de la siguiente forma:

#######################################

var HOME_NET 192.168.126.0/24
        var EXTERNAL_NET !$HOME_NET
        var RULE_PATH /etc/snort/rules

--------include classification.config --> include
$RULE_PATH/../classification.config
--------include reference.config --> include $RULE_PATH/../reference.config

######################### end  #############################

Y despues de la linea preprocessor stream4_reassemble agregar lo siguiente:

###

preprocessor stream4_reassemble: both,ports 21 23 25 53 80 110 111 139
143 445 513 1433

### end ###

Descomentamos la linea:

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

Guardar... cerrar..


Ahora le cambiamos el propietario/grupo al dir de las reglas:

root@murder # chown -R snort.snort /etc/snort/rules

Y list...


########################
Actualización automatica: (esta parte es extraida de nabble.com)
########################

Instalar y Configurar OinkMaster para actualizar automaticamente snort
descargamos oinkmaster desde sourceforge y lo descomprimimos
cd /root/snortinstall
wget http://superb-west.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-2.0.tar.gz
tar -zxvf oinkmaster-2.0.tar.gz

copiamos el archivo oinkmaster.pl a /usr/sbin/ y el archivo
oinkmaster.conf lo copiamos en /etc/
cd /root/snortinstall/oinkmaster-2.0/
cp oinkmaster.pl /usr/sbin/
cp oinkmaster.conf /etc/

le cambiamos los permisos a esos archivos:

        chmod +x /usr/sbin/oinkmaster.pl
        chmod 755 /etc/snort ????
       
entramos en la pagina de snort: http://www.snort.org y entramos con
nuestra cuenta de snort,
despues del acceso, nos dirigimos a la parte inferior de la pagina y
presionamos el boton "Get Code"
copiamos ese codigo y luego editamos el archivo /etc/oinkmaster.conf asi:
debemos copiar el codigo de seguridad generado anteriormente y
reemplazarlo donde dice <oinkcode>

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

como superusuario le ponemos una contrasena al usuario snort:
su -
passwd snort
       
luego ejecutamos la actualizacion:
sudo -u snort /usr/sbin/oinkmaster.pl -o /etc/snort/rules

para programar la actualizacion todos los dias a las 7:30, agregamos
la siguiente linea al archivo /etc/crontab:
30 7 * * * snort /usr/bin/oinkmaster.pl -o /etc/snort/rules

###########

FIN

###########