IDS con Snort en Debian

De WikiSalud
Revisión a fecha de 15:01 14 oct 2016; Alortiz (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Contenido

Resumen

Instalación, y primeros pasos en la configuración de Snort en Debian Wheezy, complementando su funcionalidad con Barnyard2 y PulledPork.

Después de esta guía, es probable que quiera revisar Otras configuraciones importantes para Snort, en busca de resolver algunos de los primeros problemas que Snort va a plantear

Introducción

Un IDS (Sistema de Detección de Intrusos por sus siglas en Inglés) constituye la primera línea de defensa de una red frente a amenazas a la integridad de la misma. Puede por otro lado servir para monitorear que se cumplan algunos requisitos de confidencialidad y privacidad para en la red de la institución donde se implementa. Por último, es útil para detectar de forma temprana problemas con algunos clientes de red que podrían repercutir en toda la red.

Configurando Snort como IDS

Como vamos a usar PulledPork, y haremos que este integre todas las reglas en un mismo fichero, comentamos las líneas que hacen referencias a ficheros de reglas individuales

sed -i "s/include \$RULE\_PATH/#include \$RULE\_PATH/" /etc/snort/snort.conf

Las más importante variable a configurar para que Snort empiece a entender nuestra red, es precisamente declarar nuestra red en $HOME_NET en la línea 45.

# Setup the network addresses you are protecting
ipvar HOME_NET 10.10.20.0/24

Más abajo, después de la sección de variables y a un par de comentarios (Línea 104), se encuentran otras variables relacionadas con la ubicación de algunos ficheros.

var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules

# If you are using reputation preprocessor set these
# Currently there is a bug with relative paths, they are relative to where snort is
# not relative to snort.conf like the above variables
# This is completely inconsistent with how other vars work, BUG 89986
# Set the absolute path appropriately
var WHITE_LIST_PATH ../rules
var BLACK_LIST_PATH ../rules

Lo recomendable es usar la ruta absoluta, así que es necesario cambiarlo par que quede de la siguiente forma:

var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules

# If you are using reputation preprocessor set these
# Currently there is a bug with relative paths, they are relative to where snort is
# not relative to snort.conf like the above variables
# This is completely inconsistent with how other vars work, BUG 89986
# Set the absolute path appropriately
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
  • Para hacer una prueba completa según el trabajo que nos sigue, descomentamos en la línea 546 que incluye la configuración de reglas personalizadas.
include $RULE_PATH/local.rules
  • Snort permite verificar con la opción -T que el archivo de configuración (Y todos los archivos referenciados) no tengan mayores errores, de la siguiente forma:
snort -T -c /etc/snort/snort.conf  -i eth0

Probando la configuración

  • Corremos snort:
snort  -u snort -g snort -c /etc/snort/snort.conf -i eth0
  • Ejecutamos un ping desde un equipo externo.

Luego de eso, cancelamos el proceso de snort con CTRL + C y arrancamos a barnyard

barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort
  • Nos logueamos en la base de datos con el usuario que nos han proporcionado y buscamos los eventos
select s.sig_name, e.timestamp from event as e left join signature as s on e.signature=s.sig_id;

La prueba que acabamos de realizar constata entre otras cosas que snort está procesando paquetes con nuestras reglas personalizadas y almacenando las alertas en unified2, y que barnyard es perfectamente capaz de leer dicho fichero y de enviar el resultado a la base de datos.

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas