Ich habe ein Ubuntu-vps, das mit openvz gehostet wird. Seit einiger Zeit habe ich Probleme mit der Verwendung der Schnittstellennamen in Iptables, wie zum Beispiel: (bearbeitet)
-A INPUT -i venet0:0 -p tcp -m tcp --dport 80 -j ACCEPT
Das Problem ist, iptables scheint nicht zu verstehen, was venet0: 0 ist. Ich habe auch eine ziemlich seltsame Netzwerkkonfiguration. Ausgabe von ifconfig -a
gre0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-20-4A-00-00-00-00-00-00-00-00
NOARP MTU:1476 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
gretap0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
BROADCAST MULTICAST MTU:1476 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:44859 errors:0 dropped:0 overruns:0 frame:0
TX packets:37950 errors:0 dropped:103 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9472928 (9.0 MiB) TX bytes:8953521 (8.5 MiB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:xx.xx.xx.xx P-t-P:xx.xx.xx.xx Bcast:xx.xx.xx.xx Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
venet0:1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:xy.xy.xy.xy P-t-P:xy.xy.xy.xy Bcast:xy.xy.xy.xy Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Ich schickte eine E-Mail an meinen VPS-Anbieter und fragte, wie man Schnittstellen wie eth0
Und eth1
Für die Referenzierung von Iptables-Schnittstellen zuweist. Sie antworteten, dass dies nicht möglich sei, aber die venet
-Schnittstellen könnte als solche verwendet werden. Wenn ich jedoch versuche, sie zu verwenden, passiert nichts.
Ich weiß, dass es etwas geben muss, das ich falsch mache oder nicht verstehe. Ich verstehe auch nicht, was die Schnittstellen gre0
Und gretap0
Sind oder wofür sie sind. Irgendwelche Ideen?
Sie können bei iptables keinen Alias-Schnittstellennamen angeben, sondern nur einen tatsächlichen Schnittstellennamen. Der Trick besteht darin, die Ziel-IP-Adresse als zusätzliche Bedingung hinzuzufügen. Außerdem benötigen Sie den Teil -m tcp
Nicht. Wenn Sie also Datenverkehr an Port 80 auf beiden Alias-Schnittstellen akzeptieren möchten, lauten die Regeln:
-A INPUT -i venet0 -d xx.xx.xx.xx -p tcp --dport 80 -j ACCEPT
-A INPUT -i venet0 -d xy.xy.xy.xy -p tcp --dport 80 -j ACCEPT