Ich glaube, ich habe über diesen Artikel eine Lösung gefunden und IPSet scheint die Antwort zu sein
In Summe:
Wenn ein Satz von IP-Adressen Tausende von Elementen enthält, nimmt die Leistung von iptables ab (tatsächlich nimmt die Leistung von netfilter ab, sobald iptables nur ein Tool zum Verwalten der Firewall ist). Ihre CPU-Auslastung kann sich ebenfalls erhöhen. Zum Glück gibt es eine perfekte Lösung - ipsets
IPSet ist das perfekte Tool, wenn Sie:
- Speichern Sie mehrere IP-Adressen oder Portnummern und stimmen Sie sie auf einen Schlag mit der Sammlung von iptables ab.
- Aktualisieren Sie die iptables-Regeln dynamisch gegen IP-Adressen oder Ports, ohne die Leistung zu beeinträchtigen.
- Drücken Sie komplexe Regelsätze auf der Basis von IP-Adressen und Ports mit einer einzigen iptables-Regel aus und profitieren Sie von der Geschwindigkeit der IP-Sätze
Die Installation von ipset ist unkompliziert sudo apt-get install ipset
Führen Sie dann Folgendes aus
ipset -N autoban iphash ––hashsize 4096 ––probes 2 ––resize 50
Fügen Sie es Ihrer iptables-Kette hinzu. Dies kann je nach Firewall-Einstellungen unterschiedlich sein. Hier verwenden wir Ethin-Kette.
iptables -I ethin 2 -p tcp -m multiport ––dport 80,443 -m set ––match-set autoban src -j DROP
Jetzt können Sie Ihrem ipset alle fehlerhaften IP-Adressen hinzufügen. Zum Beispiel haben Sie eine Textdatei namens bots.txt mit einer IP pro Zeile. Sie können sie also mit einem einfachen Bash-Skript zu ipset hinzufügen:
for i in $( cat /tmp/bots.txt ) ; do ipset -A autoban $i ; done
So überprüfen Sie den Lauf:
ipset -L autoban