Frage :Obwohl iptables mit „chkconfig –level 345 iptables off“ ausgeschaltet ist, zeigt „service iptables status“ nach jedem Neustart immer noch einige iptables-Regeln an.
Antwort
Der Libvirtd-Prozess fügt iptables-Regeln zu iptables hinzu, wenn libvirtd gestartet wird. iptables wird beim Start von libvirtd ausgeführt, auch wenn iptables zuvor deaktiviert war. Diese Regeln wirken sich nicht auf die Firewall-Konfiguration für das physische Netzwerk aus. Wenn keine Xen-Umgebung verwendet wird, werden diese Regeln überhaupt nicht benötigt. In einer Nicht-Xen-Umgebung ist es sicher, den Dienst libvirtd auszuschalten, indem Sie Folgendes ausführen:
# chkconfig --level 345 libvirtd off # service libvirtd stop
Wie man verhindert, dass iptables gestartet wird, wenn libvirtd gestartet wird
Wenn Sie Red Hat Enterprise Linux 5 mit Xen-Kernel verwenden, wird der libvirtd-Daemon standardmäßig eingerichtet. „libvirtd“ ist ein Daemon, der den /usr/sbin/libvirtd-Befehl ausführt und den physischen Netzwerkstatus auf dem Server und die Konfiguration unter /etc/libvirt/qemu/network verfolgt, um einige iptables-Regeln zu erstellen, wie zum Beispiel:
# service iptables status Table: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination Chain POSTROUTING (policy ACCEPT) num target prot opt source destination 1 MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED 2 ACCEPT all -- 192.168.122.0/24 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable 5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain OUTPUT (policy ACCEPT) num target prot opt source destination
1. Überprüfen Sie, ob der libvirtd-Dienst während des Bootens und Ausführens aktiviert ist.
# chkconfig --list libvirtd libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
# /etc/init.d/libvirtd status libvirtd (pid 3895) is running...Hinweis Hinweis:Der libvirtd-Dienst ist für das Starten von iptables verantwortlich, auch wenn iptables zuvor deaktiviert war.
2. Stoppen Sie libvirtd und deaktivieren Sie es durch chkconfig, um es davon abzuhalten, iptables zu laden.
# chkconfig --level 345 libvirtd off # service libvirtd stop
3. Starten Sie den Host neu und überprüfen Sie.
Hinweis :Es sei denn, Sie verwenden xen Kernel auf Oracle Linux zum Hosten von VMs, ist es sicher, libvirtd auszuschalten .Hinweis :Es wurde festgestellt, dass docker service startet auch den iptables-Dienst.