Jedes Mal, wenn ich neu starte, verliere ich die Iptables-Regeln, deren Eingabe so lange gedauert hat. Ich weiß, dass ich sie speichern und beim Booten wiederherstellen kann , aber gibt es eine Möglichkeit, sie für immer zu speichern? Muss ich sie wirklich jedes Mal beim Booten wiederherstellen? Ernsthaft?
Das Problem ist, dass ich eine RIESIGE Liste von IPs habe, in die ich sie mit einer while-Schleife lade. Dies kann bis zu 10 Minuten dauern.
Dies ist mein Heim-FTP-Server. Es ist ein kleines VM mit 1 GB RAM und sehr wenig Rechenleistung. Es gibt so viele IPs, weil ich auf dem asiatischen Kontinent so ziemlich aufgegeben habe. Ich brauche sie nicht, um meinen FTP-Server jeden Tag mit brachialer Gewalt zu erreichen. Ich blockiere auch die Regierung. Monitore, Tracker und Spammer.
Dies ist die while-Schleife, die ich zum Laden in die Liste verwende.
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
Antworten:
Erstellen Sie zunächst eine Datei mit dem Inhalt von
iptables-save
:Es spielt keine Rolle, wo Sie die Datei ablegen. Sie müssen lediglich sicherstellen, dass sich die nächste Zeile auf dieselbe Datei bezieht. Öffnen Sie
/etc/rc.local
als Nächstes diese Zeile und fügen Sie sie hinzu:Von nun an lädt iptables jedes Mal, wenn Ihr Computer hochfährt oder neu startet, Regeln aus der von Ihnen angegebenen Datei.
quelle
-bash: /etc/iptables_rules: Permission denied
den ersten Befehl. Was seltsam ist, wenn man Sudo und alles benutzt.sudo sh -c '/sbin/iptables-save > /etc/iptables.save'
, um denPermission denied
Fehler zu umgehen. Referenz/etc/rc.local
dafür zu verwenden. Sie wird später als der Rest Ihres Systemstarts ausgeführt und führt möglicherweise dazu, dass sich Ihr System in einem Zustand ohne Firewall befindet. Ich würde vorschlagen, dieses einzeilige Skript in/etc/network/if-up.d/firewall
(neue Datei) zu platzieren. Dies stellt sicher, dass es jedes Mal ausgeführt wird, wenn Sie Ihre Netzwerkschnittstellen aktivieren.Bei der Installation sollte die aktuelle Konfiguration von iptables gespeichert werden. Andernfalls können Sie sie in diesen Dateien speichern (abhängig von v4 oder v6) und iptables-persistent lädt sie beim Booten :)
quelle
Wenn Sie viele Regeln haben, sollten Sie auch in Betracht ziehen, ipset in Verbindung mit iptables zu verwenden. Ipset verwendet eine indizierte Datenbanktabelle und ist viel schneller als iptables, wenn eine Adresse abgefragt wird, um zu entscheiden, ob sie akzeptiert oder abgelehnt werden soll.
http://ipset.netfilter.org/index.html
quelle