iptables-Regeln werden unter CentOS 6.x nicht neu geladen

7

Ich habe ein einzelnes ipset zu meinem iptablesauf einer CentOS 6.x-Box hinzugefügt und diese Regel geht verloren, wenn der Computer neu gestartet wird.

Ich habe diese Antwort gefunden , die zeigt, wie ein Ubuntu-System die iptablesRegeln nach einem Neustart neu laden kann, aber dieses Verzeichnis ist unter CentOS nicht vorhanden.

Wie lasse ich diese CentOS-Box die Firewall-Regeln nach einem Neustart laden?

HINWEIS: Ja, ich speichere die Regeln mit iptables saveund die Datei wird gespeichert.

Das ist was drin ist /etc/sysconfig/iptables:

# Generated by iptables-save v1.4.7 on Mon Apr  8 09:52:59 2013
*filter
:INPUT ACCEPT [2713:308071]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1649:1766437]
-A INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state INVALID,NEW,RELATED,ESTABLISHED -m set
 --match-set blocking src -j DROP 
COMMIT
# Completed on Mon Apr  8 09:52:59 2013

Der Befehl zeigt, -A INPUTaber als ich ihn erstellt habe, habe ich verwendet -I INPUT.

Die Regel, die verwendet wurde, um dies zu erstellen, war:

iptables -I INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state NEW,ESTABLISHED,RELATED,INVALID -m set --set blocking src -j DROP
DuckDucking
quelle
@Christopher, klingt ähnlich wie / etc / sysconfig / network-scripts / rule- * files. Enthält diese ipset-Datei Definitionen von ipset-Datenstrukturen oder tatsächliche iptables-Regeln? Beispiel?
12.

Antworten:

2

Sie haben Regeln verloren, weil:

Nach dem Hinzufügen von Regeln müssen Sie speichern, bevor Sie den Dienst oder Server neu starten. Denn wenn Sie eine Regel hinzufügen, befinden sie sich im Speicher, aber nach dem Speichern werden sie in einer Datei gespeichert und beim Start aus dieser Datei wiederhergestellt.

Zuerst müssen Sie hinzugefügte Regeln speichern, indem Sie:

$ /etc/init.d/iptables save

Dadurch werden alle Regeln /etc/sysconfig/iptablesgespeichert und der iptables-Dienst beim Start mit folgenden Funktionen aktiviert:

$ chkconfig --level 53 iptables on

Methode 2

So speichern Sie Regeln:

$ /sbin/iptables-save  > /etc/iptables.rules

So stellen Sie Regeln wieder her [Hinzufügen unter Eintrag in /etc/rc.local]:

$ /sbin/iptables-restore < /etc/iptables.rule
Rahul Patil
quelle
1
Ich habe das getan und iptables wird geladen, wenn das System gestartet wird, aber es wird leer geladen.
DuckDucking
Hast du die /etc/sysconfig/iptablesDatei überprüft ?
Rahul Patil
Nach dem Hinzufügen der Regel tun Sie einfach, save was ich oben erwähnte, dann wird es beim Start mit /etc/sysconfig/iptablesDatei wiederhergestellt
Rahul Patil
Ja, die Datei wird korrekt gespeichert. Dies ist etwas Seltsames, das ich jetzt entdeckt habe: Wenn ich Service-Iptables speichere, wird eine Meldung angezeigt, die besagt , dass die Regeln in / etc / sysconfig / iptables gespeichert wurden. Wenn ich jedoch Ihren Befehl /etc/init.d/iptables ausführe, speichere die Meldung mir, dass die Regeln in / etc / sysconfig / ipt gespeichert wurden. Mit anderen Worten, in einer anderen Datei gespeichert ... warum ist das so?
DuckDucking
1
Nee. Die Regeln werden nach dem Booten nicht neu geladen. Ich habe das vorübergehend gelöst, indem ich eine Crontab erstellt habe, die ein Bash-Skript ausführt, das prüft, ob Regeln geladen sind, und diese nicht lädt. Es ist eine lahme Lösung, aber es funktioniert, bis ich eine echte Lösung finde. Vielen Dank.
DuckDucking
2

Ich hatte das gleiche Problem.

Sie haben ein setipset mit dem Namen "Blocking" erstellt. Ich sehe jedoch nicht, wo dies setgespeichert wird, sodass Sie es nach einem Neustart in einem Skript neu erstellen müssen.

M Johnson
quelle
1

Habe gerade das gleiche Problem bei Centos 6.4 bemerkt.

Ich habe gerade @reboot /etc/init.d/iptables restartdie Crontab eingesetzt und es funktioniert.

k4h
quelle
0

Ich habe eine E-Mail an Host Gator gesendet und schließlich eine Antwort von einem Linux-Administrator bei Host Gator erhalten:

Hallo!

HostGator hat eine benutzerdefinierte Firewall erstellt, die standardmäßig auf allen VPS- und dedizierten Serverplänen vorhanden ist.

Glücklicherweise befindet sich in der Firewall-Konfiguration eine Datei, die die Konfiguration von iptables beibehalten soll.

Die Datei lautet wie folgt: /etc/firewall/INCLUDE

Fügen Sie einfach Ihre iptables-Zeilen zu dieser Datei hinzu und starten Sie die Firewall mit einem Neustart der Service-Firewall neu. Die iptables-Regeln bleiben bestehen.

Eigentlich habe ich diese Zeilen zur Datei hinzugefügt, sodass Ihre iptables-Regeln jetzt geladen und beibehalten werden sollten.

Bitte zögern Sie nicht, uns zu kontaktieren, wenn Sie weitere Fragen oder Bedenken haben

ConfusedDeer
quelle