Es un sistema avanzado de comparación de
paquetes basado en múltiples tablas de eventos pasados. Se pueden definir
diferentes reglas que se basen en coincidencias previas, para decidir la acción
actual.
Lo que esto me permite hacer es, básicamente, crear un fichero temporal para cuando la
gente trata de realizar un ‘PortScan’ sobre una red
poder bloquear todo el trafico que generen durante un determinado tiempo.
Hay que tener en cuenta que este modulo se creo con http server en mente
aunque trabaja con todo tipo de conexiones TCP.
Un ejemplo de esto sería:
iptables
-A FORWARD -m recent --rcheck --seconds 60 -j DROP
iptables -A FORWARD -i eth0 -d 127.0.0.0/8 -m recent --set -j DROP
iptables -A FORWARD -i eth0 -d 127.0.0.0/8 -m recent --set -j DROP
Todos aquellos que intenten enviar datos al rango ip 127.0.0.0/8 desde la interface eth0 serán
bloqueados durante un periodo de 60 segundos.
¿Como trabaja?
Un paquete destinado al rango 127.0.0.0/8 pasaría a través de la primera regla y sería capturado por la segunda regla la cual metería la ip origen en una lista `recent` para, posteriormente, descartarlo silenciosamente (DROP), el resto de paquetes durante los próximos 60 segundos serán descartados.
Un paquete destinado al rango 127.0.0.0/8 pasaría a través de la primera regla y sería capturado por la segunda regla la cual metería la ip origen en una lista `recent` para, posteriormente, descartarlo silenciosamente (DROP), el resto de paquetes durante los próximos 60 segundos serán descartados.
Algunas de las opciones para configurar las diferentes
opciones son:
--name : Nombre de la lista recent que vamos a usar.
--set: Esto añade la ip origen del paquete a la lista.
--rcheck: Revisa si la dirección de origen del packete
está en la lista o no.
--update: Como rcheck pero
--remove: Esto revisa si la ip de origen del paquete está
en la lista, si es así la eliminará.
--hitcount: Es el número de ocurrencias que debe haber de
este tipo de paquetes, para
aplicar el target de la regla.
--seconds: Establece el intervalo de tiempo en segundos.
El listado recent se localiza en `/proc/net/ipt_recent/`. Esto te permite, por ejemplo, añadir las
IP’s que desees de forma manual en dicho fichero.
Por defecto el modulo solo recuerda 100
ip’s atacantes aunque este comportamiento se puede modificar, en este caso lo
vamos a aumentar a 1000:
modprobe ipt_recent ip_list_tot=1000
¿Que es capaz de evitar?
Por ejmplo un Null Scan,
Via NMAP podemos :
nmap -sN 192.168.0.2 (siendo 192.168.0.2 la ip del PC de la victima)
Este tipo de escaner consiste en escanear puertos TCP sin "flags", algunos firewall no protegen contra este tipo de paquetes.
Pues bien, para detectar este tipo de escaneo y proteger nuestra red de ello:
- # Log attack
- iptables -A INPUT -p tcp --tcp-flags ALL NONE -m limit --limit 3/m --limit-burst 5 -j LOG --log-prefix "Firewall> Null scan "
- # Drop and blacklist for 60 seconds IP of attacker
- iptables -A INPUT -p tcp --tcp-flags ALL NONE -m recent --name blacklist_60 --set -m comment --comment "Drop/Blacklist Null scan" -j DROP
No hay comentarios:
Publicar un comentario