Das Dienstprogramm iptables steuert den Filtercode für Netzwerkpakete im Linux-Kernel. Die Funktion iptables wird verwendet, um die Tabellen der IP-Paketfilterregeln im Linux-Kernel einzurichten, zu verwalten und zu überprüfen. Der Beitrag diskutiert die am häufigsten auftretenden Probleme mit iptables und wie man sie löst.
iptables-Regeln werden nach einem Neustart nicht geladen
Sie haben iptables-Firewallregeln festgelegt und gespeichert und sie werden nach einem Neustart immer noch nicht geladen. Nach einem Neustart werden die iptables-Regeln nicht geladen, sondern :
– Die Firewall-Regeln müssen neu definiert werden, da die neuen Regeln nicht gespeichert/angewendet wurden.
– Der iptables-Dienst muss neu gestartet werden Reihenfolge zum Laden der Regeln.
Fehlerbehebung
1. Stellen Sie sicher, dass der Dienst so eingestellt ist, dass er beim Booten gestartet wird
1. Stellen Sie sicher, dass der Dienst so eingestellt ist, dass er beim Booten startet:
# chkconfig iptables --list iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
2. Wenn iptables ausgeschaltet ist, aktivieren Sie den Dienst für die Runlevel 3-5
# chkconfig iptables on
2. Stellen Sie sicher, dass die Regeln auf der Festplatte gespeichert wurden
1. Vergewissern Sie sich, dass die neuen Regeln in /etc/sysconfig/iptables gespeichert sind .
2. Wenn sie nicht gespeichert wurden, speichern Sie die aktuellen Regeln, nachdem Sie sie mit einer der beiden unten gezeigten Methoden festgelegt haben:
a. Speichern der Regeln durch den Dienstbefehl iptables:
# service iptables save
b. Speichern Sie die Ausgabe des folgenden Befehls in der Datei /etc/sysconfig/iptables. Sie können die Regeln auch speichern, indem Sie sie manuell in die Datei schreiben.
# iptables-save
3. Stellen Sie sicher, dass die iptables-Module beim Booten geladen werden
1. Stellen Sie sicher, dass das iptables-Modul unmittelbar nach dem Booten geladen wurde.
Die RHEL 5-Ausgabe sollte in etwa so aussehen:
# lsmod | grep tables ip_tables 55457 1 iptable_filter ip6_tables 50177 1 ip6table_filter x_tables 50505 6 ipt_REJECT,xt_state,ip_tables,ip6t_REJECT,xt_tcpudp,ip6_tables
Die RHEL 6-Ausgabe sollte in etwa so aussehen:
# lsmod | grep table iptable_filter 2793 1 ip_tables 17831 1 iptable_filter ip6table_filter 2889 1 ip6_tables 19458 1 ip6table_filter
2. Wenn das Modul nicht geladen werden kann, entfernen Sie alle Blacklist-Zeilen für iptables-Module aus der modprobe-Konfiguration.
# grep -r iptables /etc/modprobe* /etc/modprobe.d/blacklist.conf:blacklist iptables /etc/modprobe.d/blacklist.conf:blacklist ip6tables
4. Sehen Sie in den Tabellen nach, ob sie leer sind oder ob Regeln fehlen
Unten ist ein Beispiel für eine geleerte oder leere Tabelle:
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination
5. Stellen Sie sicher, dass sich die Regeldatei nach einem Neustart nicht geändert hat
# cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bkp # reboot # sdiff -s /etc/sysconfig/iptables /etc/sysconfig/iptables.bkp
6. Überprüfen Sie, ob ein Neustart des iptables-Dienstes die Regeln erfolgreich lädt
Überprüfen Sie, ob das Ausführen von „service iptables restart“ nach dem Booten erforderlich ist und die Tabellen ordnungsgemäß lädt.
# service iptables restart # service iptables statusWas bewirkt, dass iptables jedes Mal nach einem Neustart geladen wird, selbst wenn es vollständig ausgeschaltet istWas bewirkt, dass iptables jedes Mal nach einem Neustart geladen wird, selbst wenn es vollständig ausgeschaltet ist