16 votes

Comment dresser la liste des adresses IP bloquées par iptables ?

Pour empêcher les attaques par force brute contre ssh, j'ai ajouté quelques règles iptables (ci-dessous). La question est la suivante : comment puis-je dresser la liste des adresses IP bloquées ?

(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

16voto

yukondude Points 297

Une option serait d'enregistrer tous les paquets abandonnés avec une règle comme :

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érer ce texte immédiatement avant le DROP règle. Ensuite, vous pouvez rechercher dans le fichier syslog tout ce qui contient "FW_DROPPED" et la liste des IP s'y trouvera. Les entrées du fichier journal ressemblent à ceci :

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

Ainsi, en supprimant ce qui suit "SRC=", vous obtiendrez les adresses IP abandonnées. Triez-les, en éliminant les doublons, et vous obtiendrez votre liste.

J'ai trouvé le Tutoriel Iptables est la documentation la plus utile pour iptables/netfilter.

6voto

David Pashley Points 22851

Vous trouverez les détails sous /proc/net/ipt_recent/SSH.

Cet article pour plus d'informations.

4voto

fredrik Points 144

Regarder

/proc/net/ipt_recent/YOURNAME

où YOURNAME est le nom que vous avez utilisé avec l'option --name dans votre règle iptables.

3voto

giorgio79 Points 1727

Voici un simple "one liner" :

$ iptables -L -n --line

1voto

Eddie Points 11262

Ce que je fais, par exemple pour l'usurpation d'adresse d'entrée, c'est de définir la chaîne SPOOF_REJECT :

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

puis d'envoyer des paquets à cette chaîne s'ils sont usurpés :

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

Vous pourriez faire quelque chose comme cela pour chaque catégorie de paquets que vous abandonnez ou rejetez pour obtenir une ligne dans le syslog à rechercher, puis périodiquement grep, cut, sort, pour obtenir uniquement les adresses IP de ces lignes de journal.

L'avantage d'utiliser des chaînes individuelles pour chaque catégorie est que votre configuration est plus simple et que la lecture de votre site web est plus facile. iptables configuration. Au fur et à mesure que vous ajouterez des règles, vous vous féliciterez d'avoir utilisé des chaînes individuelles pour des actions spécifiques différentes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X