Warum nicht meine iptables Einträge blockieren eine Xen virtuelle Maschine anzusprechen? [geschlossen]

StackOverflow https://stackoverflow.com/questions/653812

  •  19-08-2019
  •  | 
  •  

Frage

Ich schreibe ein Bash-Skript einfach firewalling für Xen hinzuzufügen.

Hier ist die eigentliche Firewall-Konfiguration:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp any
ACCEPT     esp  --  anywhere             anywhere
ACCEPT     ah   --  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ipp
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere            state NEW udp dpt:ha-cluster
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Ich möchte eine neue Kette für jeden meiner virtuellen Maschinen hinzufügen (jeder von ihnen hat eine virtuelle Schnittstelle namens vif1.0, vif2.0, etc). Ausgabe-Schnittstelle (Brücke) ist xenbr0.

Hier ist, was ich tun (zum Beispiel ping zu blockieren ‚in'to domU1, vif1.0):

iptables -N domUFirewall
iptables -I FORWARD -j domUFirewall
iptables -I INPUT -j domUFirewall
iptables -A domUFirewall -i vif1.0 -p icmp -j DROP

Aber .. es nicht funktioniert, bin ich noch in der Lage zu ping in / out der domU.

Muss etwas wirklich ‚dumm‘ sein, aber ich kann nicht herausfinden, was los ist.

Irgendwelche Hinweise?

Thx

War es hilfreich?

Lösung

Da Sie mit XEN mit Bridged Networking, Pakete werden auf einem Niveau abgefangen, bevor gewöhnlichen iptables Befehle sie beeinflussen können. So müssen Sie wahrscheinlich den ebtables Befehl verwenden Paket-Routing in der Art und Weise zu beeinflussen, die Sie wollen.

Original Antwort unten, dass links für andere Konfigurationen arbeiten, aber nicht für XEN mit Bridged Networking.

Ich werde im Interesse des Beispiels, so zu tun, dass die IP-Adresse des vif1.0 ist 192.168.1.100.

Ich würde die Logik wiederholt nicht das Eingabegerät zu überprüfen, sondern stattdessen durch IP-Adresse zu überprüfen. An der Eingangskette wird das Paket kommt von (sagen wir) -Gerät eth0, nicht aus vif1.0. Somit ist diese Regel:

iptables -I INPUT -i vif1.0 -j domUFirewall

, dass ich vorher nie irgendwelche Pakete prüfen vorgeschlagen. Wenn Sie jedoch die folgenden tun, sollte es tun, was Sie wollen:

iptables -I INPUT -d 192.168.1.100 -j domUFirewall

Dabei gilt in diesem Fall die Kette domUFirewall eingerichtet ist durch:

iptables -N domUFirewall
iptables -F domUFirewall
iptables -A domUFirewall -p icmp -j DROP

Wenn eine bestimmte Kette für ein einzelnes Gerät ist, dann sollten Sie diese überprüfen, um vor in die Kette springt, auf in der Regel mit dem „-j chainName“ -Aktion. Dann wird in der Kette selbst, müssen Sie sich niemals für das Gerät oder die IP-Adresse überprüfen.

Zweitens würde ich immer bündig (leer) die Kette in Ihrem Skript, falls Sie das Skript erneut ausgeführt wird. Beachten Sie, wenn Sie das Skript erneut ausführen, Sie Beschwerden über die -N Linie bekommen kann. Das ist in Ordnung.

Es gibt auch andere Möglichkeiten, wie Sie dies tun könnte, aber um ein anderes Beispiel zu geben, würde ich genau wissen müssen, wie Sie Ihre VM eingerichtet ist - Vernetzung überbrückt? NAT? Etc. Aber das Beispiel, das ich hier gab sollten in jedem dieser Modi arbeiten.

Hier sind einige nützliche Links für die Zukunft:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top