¿Cómo enumero las direcciones IP bloqueadas por iptables?

¿Cómo enumero las direcciones IP bloqueadas por iptables?

Para evitar ataques de fuerza bruta contra ssh, agregué algunosreglas de iptables(abajo). La pregunta es: ¿Cómo puedo enumerar las direcciones IP bloqueadas?

(1)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

Respuesta1

Una opción sería registrar cualquiera de los paquetes descartados con una regla como:

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl -j LOG --log-prefix "FW_DROPPED: "

Insértelo inmediatamente antes de la DROPregla. Luego, puede buscar en el archivo syslog cualquier cosa que contenga "FW_DROPPED" y la lista de IP estará allí. Las entradas en el archivo de registro se ven así:

Jun  3 08:05:57 some-machine kernel: [15852451.420557] FW_DROPPED: IN=eth0 OUT= MAC=00:50:ba:4a:d9:e3:00:12:17:3a:e3:64:08:00 SRC=228.23.45.189 DST=192.168.1.1 LEN=48 TOS=0x00 PREC=0x00 TTL=106 ID=10941 PROTO=TCP SPT=58212 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0

Entonces, al recortar lo que sigue a "SRC=", se mostrarán las IP eliminadas. Ordene eso, eliminando duplicados y tendrá su lista.

he encontrado elTutorial de Iptablesser la documentación más útil para iptables/netfilter.

Respuesta2

Puede encontrar detalles en /proc/net/ipt_recent/SSH.

Este artículotiene más información.

Respuesta3

Mira a

/proc/net/ipt_recent/YOURNAME

donde TUNOMBRE es el nombre que usaste con la opción --name en tu regla de iptables.

Respuesta4

Lo que hago, por ejemplo para la suplantación de direcciones de entrada, es definir la cadena SPOOF_REJECT:

iptables -N SPOOF_REJECT
iptables -A SPOOF_REJECT -j LOG --log-prefix "Input spoof detected: "
iptables -A SPOOF_REJECT -j REJECT

luego enviar paquetes a esta cadena si están falsificados:

iptables -A INPUT -i $EXT_DEV1 -s $INT_NET -j SPOOF_REJECT
iptables -A INPUT -i $EXT_DEV2 -s $INT_NET -j SPOOF_REJECT

Podría hacer algo como esto para cada categoría de paquetes que descarta o rechaza para obtener una línea en el syslog para buscar, luego buscar, cortar y ordenar periódicamente para obtener solo las direcciones IP de estas líneas de registro.

El beneficio de utilizar cadenas individuales para cada categoría es que su configuración se vuelve más sencilla y más fácil de leer iptables. A medida que agregue más y más reglas, se alegrará de haber utilizado cadenas individuales para acciones diferentes específicas.

información relacionada