IPS con Snort en Debian

De WikiSalud
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Primer envío. Empiezo con las notas que tengo dispersas)
 
(Hice una limpieza superficial de contenido. Agrego Fuentes y le asigno categorías)
 

Última revisión de 15:18 14 oct 2016

Commons-emblem-Under construction-green
Este artículo está en una fase temprana de desarrollo, por lo que puede estar incompleto o tener aún errores de redacción o formato

Contenido

[editar] Resumen

Instalación, configuración y puesta en marcha de un IDS en Debian Wheezy con Snort, complementando su funcionalidad con Barnyard2 y PulledPork.

[editar] Introducción

Un IPS es el siguiente paso en las medidas de seguridad a implementar en nuestra red. Su funcionalidad es más activa respecto al IDS, lo que se traduce en que las reglas no sólo causarán una alarma en el sistema, sino que efectivamente bloquearemos paquetes en tiempo real conforme se vayan sucediendo las coincidencias con nuestras reglas.

Usted usará en esta guía como parte del trabajo descrito en Instalación de Snort en Debian

[editar] Configurando Snort como IPS

Para funcionar como IPS, esta vez nos aseguramos que el snaplen es el máximo permitido, para que así snort sea capaz de leer el paquete entero, con lo que corremos menos riesgos de errores de evaluación en las reglas que terminen en falsos positivos.

config snaplen: 65535

Por otra parte, la configuración que permite a Snort comportarse como un IPS no podría ser más sencilla.

config policy_mode: inline

config daq: nfq
config daq_mode: inline
# El siguientes es de hecho su valor por defecto. Esto permite tener varias instancias de Snort trabajando al mismo tiempo con diferentes configuraciones
config daq_var: queue=0

[editar] Puesta en marcha

Para integrarlo en nuestras actuales reglas en iptables, hay que tener en cuenta que el uso de NFQUEUE implica una regla como cualquier otra. Si hay coincidencia con ella, iptables deja de evaluar las otras reglas (El comportamiento normal de toda la vida, pues).

La forma más sencilla de ponerlo todo en marcha es:

snort -Q -u snort -g snort  -c /etc/snort/snort.conf

porque todas las demás opciones ya están especificadas en el fichero de configuración

Mi actual solución a este inconveniente ha sido agregar el punto de entrada para snort en la cadena POSTROUTING de la tabla mangle. Algunas cuestiones al respecto de este punto:

  • No necesito cambiar las actuales reglas de forwarding que uso en la tabla FILTER, lo cual dicho sea de paso es la forma más natural de crear reglas de filtrado de tráfico
  • Si bien puede considerarse un poco profundo en el flujo de iptables, acá seremos capaces de filtrar precisamente el tráfico permitido por las reglas en forwarding de FILTER, así snort se comporta como un verdadero filtro a nivel de aplicación.
  • Existen algunos tipos de ataques que serán bloqueados por iptables (Escaneos masivos por ejemplo) que iptables podría bloquear, pero que seremos incapaces de analizar por medio de snort
iptables -t mangle -A POSTROUTING -j NFQUEUE

Varias instancias de snort podrían correr en el mismo sistema, usando distintos archivos de configuración que le confieran diferentes conjuntos de reglas (Entre otras cosas). Para señalar la entrada en el flujo de iptables de la instancia correcta, hacemos que --queue-num se correponda con el valor que dimos en config daq_var: queue

iptables -t mangle -A POSTROUTING -j NFQUEUE --queue-num 1

[editar] Fuentes

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas