"Die Frage ist: Wie kann ich die gesperrten IP-Adressen auflisten?"
Erstellen Sie eine BANNED-Kette:
iptables -N BANNED
iptables -F BANNED
Erstellen Sie eine Protokollierungskette:
iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP
Fügen Sie vor den meisten anderen Regeln einen Sprung zu einer gesperrten Kette in der INPUT-Kette hinzu
...
iptables -A INPUT -j BANNED
...
Fügen Sie nun die IP-Adressen zur gesperrten Kette hinzu:
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...
Sie können es auch wie eine Datenbank mit den Kommentaroptionen verwenden, damit Sie wissen, wann und warum usw. Flock ist wichtig, wenn iptables von vielen Prozessen häufig aktualisiert wird - es scheint, dass in iptables keine Sperre eingebaut ist.
So zeigen Sie die gesperrten Adressen und Regeln in der gesperrten Kette an:
iptables -S BANNED
So zeigen Sie nur sortierte eindeutige IP-Adressen an:
iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u
Auf meinen Servern werden eine Reihe von Daemons ausgeführt, die die Syslog-Dateien und Weblogs prüfen. Wenn also jemand einen bösen Versuch unternimmt, wird die Adresse je nach Art und Schweregrad und Anzahl der vorherigen Angriffe für einige Tage automatisch gesperrt. Die Informationen werden in einer MySQL-Datenbank angemeldet und sind regelmäßig abgelaufen. Die Adressen werden auch über die MySQL-Replikation an alle anderen Computer im Cluster verteilt, damit sie auch geschützt sind und synchron bleiben. Meine Software sucht auch den Besitzer des Netzwerks und schickt eine Beschwerde an den ISP.
Nach 10 Jahren Arbeit hoffe ich, dass es bald allen zur Verfügung steht. Derzeit habe ich ungefähr 1,5 Millionen IP-Adressen und Hunderttausende von E-Mail- und SSH-Angriffen gemeldet, die zur Bereinigung des Netzes beitragen. Wenn mehr es benutzen würden, dann hoffe ich, dass es mehr Auswirkungen haben würde.
iptables -L INPUT -v -n
zeigt alle blockierten ip