Bei jedem Neustart verliere ich die iptables-Regeln, deren Eingabe so lange gedauert hat. Ich weiß, ich kannSpeichern Sie sie und stellen Sie sie beim Booten wieder her, aber gibt es eine Möglichkeit, sie für immer zu speichern? Muss ich sie wirklich jedes Mal beim Booten wiederherstellen? Im Ernst?
Das Problem ist, ich habe eineRIESIGE Listevon IPs, in denen ich eine While-Schleife verwende, um sie zu laden. Dies kann bis zu 10 Minuten dauern.
Dies ist mein FTP-Server zu Hause. Es ist eine kleine VM mit 1 GB RAM und sehr wenig Rechenleistung. Es gibt so viele IPs, weil ich den asiatischen Kontinent so gut wie aufgegeben habe. Ich brauche sie nicht, um meinen FTP-Server jeden Tag mit roher Gewalt anzugreifen. Ich blockiere auch Regierungsmonitore, Tracker und Spammer.
Dies ist die While-Schleife, die ich zum Laden der Liste verwende.
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
Antwort1
apt-get install iptables-persistent
Bei der Installation sollte Ihre aktuelle iptables-Konfiguration gespeichert werden. Andernfalls können Sie sie in diesen Dateien speichern (je nach v4 oder v6) und iptables-persistent lädt sie beim Booten :)
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
Antwort2
Erstellen Sie zunächst eine Datei mit dem Inhalt iptables-save
:
sudo iptables-save > /etc/iptables_rules
Es ist eigentlich egal, wo Sie die Datei ablegen. Sie müssen nur sicherstellen, dass die nächste Zeile auf dieselbe Datei verweist. Öffnen Sie als Nächstes /etc/rc.local
diese Zeile und fügen Sie sie hinzu:
/sbin/iptables-restore < /etc/iptables_rules
Von nun an lädt iptables bei jedem Einschalten oder Neustart Ihres Computers Regeln aus der von Ihnen angegebenen Datei.
Antwort3
Wenn Sie viele Regeln haben, sollten Sie auch die Verwendung von ipset in Verbindung mit iptables in Betracht ziehen. Ipset verwendet eine indizierte Datenbanktabelle und ist beim Nachschlagen einer Adresse, um zu entscheiden, ob sie akzeptiert oder abgelehnt werden soll, viel schneller als iptables.