Iptables bleiben nach dem Neustart unter CentOS 6.2 nicht bestehen

7

Ich habe versucht, meinen iptables einige Regeln hinzuzufügen, aber sie scheinen nicht zu speichern. Um sie zu retten, habe ich versucht zu laufen iptables-saveund service iptables save. Jedes Mal, wenn ich einen dieser Befehle ausgeführt habe, wird angezeigt, dass er erfolgreich gespeichert wurde. Hier sind die Regeln, die ich einzufügen versuche:

iptables -A INPUT -j REJECT -p tcp --destination-port 3306
iptables -A INPUT -j REJECT -p tcp --destination-port 25

Diese Regeln funktionieren und bleiben bestehen, nachdem ich sie eingegeben habe. Wenn ich jedoch das System neu starte, werden sie beim Ausführen aus der Liste entfernt iptables -Lund die Ports sind wieder geöffnet (mit nmap überprüft).

Wenn ich mir meine Datei / etc / sysconfig / iptables ansehe, sind die Regeln dort (unten) und alle "abgeschlossenen" Zeitstempel stammen aus der Zeit, als ich die Regeln gespeichert habe, was korrekt erscheint. Außerdem sind in meiner Datei / etc / sysconfig / iptables-config alle Einstellungen Standardeinstellungen und scheinen nichts zu ändern, was das Laden von iptable-Regeln von einem anderen Speicherort oder etwas anderem betrifft.

Aaron
quelle

Antworten:

10

Wenn die Änderungen iptables -Lnach einem Neustart nicht sichtbar sind , wird Folgendes vorgeschlagen:

  • Die Regeln werden nicht gespeichert

    • Sie schlagen vor, dass dies der Fall ist, sagen aber gleichzeitig "abgeschlossene Zeitstempel" - Plural. Dies kann bedeuten, dass Sie mehr als eine Kopie der Regeln in derselben Datei haben und nur der erste Satz angewendet wird.
      • Leiten Sie die Ausgabe von iptables-save in die obige Datei um (nicht anhängen):
        iptables-save> / etc / sysconfig / iptables
      • Alternativ können Sie die vorhandene Datei auch an eine andere Stelle verschieben und dann speichern.

  • Die Regeln werden in der falschen Datei gespeichert

    • Ihre Konfiguration ist möglicherweise so eingerichtet, dass eine andere Datei als die, in der Sie speichern, geladen wird. Stellen Sie sicher, dass die geladene Datei mit der Datei übereinstimmt, in der Sie speichern.
      • Die Datei lautet normalerweise / etc / sysconfig / iptables
      • Wenn Sie in /etc/init.d/iptables nachsehen, sollten Sie die folgenden Zeilen finden, die bestimmen, welche Datei geladen wird:
        IPTABLES = iptables
        IPTABLES_DATA = / etc / sysconfig / $ IPTABLES
  • Es liegt ein Fehler bei den Regeln vor

    • Dies ist normalerweise kein Problem. Iptables ignoriert normalerweise nur fehlerhafte Regeln. und Sie schreiben sie nicht von Hand (Sie speichern einen vermutlich funktionierenden Regelsatz).

  • iptables wird beim Booten nicht gestartet

    • Lauf
      chkconfig --list iptables
      um zu überprüfen, welche Runlevels iptables geladen sind. Wenn es im richtigen Runlevel nicht aktiviert ist, fügen Sie es mit hinzu
      chkconfig --level 2345 iptables on

Sie sollten in der Lage sein, Ihr Setup zu testen, indem Sie iptables einfach neu starten (im Gegensatz zum Neustart des Computers):

service iptables restart


Standard iptables Haftungsausschluss: Nur für den Fall, dass etwas schief geht ...

  • Sichern Sie Ihren vorhandenen Regelsatz:
    cp / etc / sysconfig / iptables /etc/sysconfig/iptables.bak
  • Richten Sie einen Cron-Job ein, der Ihre iptables nach einigen Minuten spült (entfernen Sie diesen natürlich, sobald alles funktioniert).
cyberx86
quelle
Vielen Dank. Es funktioniert für mich, meine iptables-Konfiguration wurde nicht in die Datei aufgenommen. Also benutze ich ptables-save> / etc / sysconfig / iptables
Love
3

Sind Sie sicher, dass iptables-save "erfolgreich ausgeführt" wurde? Alles, was es tut, ist die aktuelle Regelsatz-Sicherungsdatei in Text auszuspucken. Sie müssen auf / etc / sysconfig / iptables verweisen, damit dies funktioniert.

iptables-save > /etc/sysconfig/iptables

Wenn Sie eine Ausgabe von iptables-save sehen, spuckt sie im Allgemeinen nur die Ausgabe auf Ihr Display aus, und das nützt Ihnen nichts.

Magellan
quelle
1

Ich denke, die beste Lösung ist: Geben Sie zuerst den folgenden Befehl ein, um iptables-services zu installieren

yum install iptables-services

Geben Sie dann den folgenden Befehl ein, um iptable-Regeln zu speichern

service iptables save
HosseinGBI
quelle
Diese Antwort fügt keine Informationen zu den bereits vorhandenen Antworten hinzu (und liefert weniger Details)
BE77Y