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

1voto

Andy Lee Robinson Points 221

"La question est la suivante : comment puis-je dresser la liste des adresses IP bloquées ?

Créer une chaîne BANNIE :

iptables -N BANNED
iptables -F BANNED

Créer une chaîne d'enregistrement :

iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP

Ajouter le saut à la chaîne d'interdiction dans la chaîne INPUT avant la plupart des autres règles

...
iptables -A INPUT -j BANNED
...

Ajoutez maintenant des adresses IP à la chaîne de bannissement :

flock -w 5 /var/lock/iptables -c 'iptables -A BANNED -s 140.130.20.202/32 -i eth0 -m comment --comment "2012-03-19 23:49:33 accesslog" -j BANNEDLOG'
etc...

Vous pouvez également l'utiliser comme une base de données avec les options de commentaire, afin de savoir quand et pourquoi, etc. Le verrouillage est important lorsque iptables est fréquemment mis à jour par de nombreux processus - il semble qu'iptables n'ait pas de verrouillage intégré.

Pour afficher les adresses et les règles interdites dans la chaîne d'interdiction :

iptables -S BANNED

Pour ne visualiser que les adresses IP uniques triées :

iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u

J'ai un certain nombre de démons qui tournent sur mes serveurs et qui vérifient les fichiers syslog et les weblogs. Ainsi, si quelqu'un tente de faire quelque chose de mal, son adresse est automatiquement bannie pendant quelques jours, en fonction du type, de la gravité et du nombre d'attaques antérieures. Les informations sont enregistrées dans une base de données mysql et expirent périodiquement. Les adresses sont également distribuées à toutes les autres machines de la grappe par réplication mysql, de sorte qu'elles sont également protégées et synchronisées. Mon logiciel recherche également le propriétaire du réseau et envoie une plainte au fournisseur d'accès.

Après 10 ans de travail, j'espère pouvoir bientôt le mettre à la disposition de tous. J'ai actuellement environ 1,5 million d'historiques d'adresses IP et des centaines de milliers d'attaques par mail et ssh signalées, ce qui aide à nettoyer le réseau. Si davantage de personnes l'utilisaient, j'espère qu'il aurait plus d'impact.

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