У меня есть Ubuntu vps, который размещен на openvz. Некоторое время у меня были проблемы с использованием имен интерфейсов в iptables, таких как: (отредактировано)
-A INPUT -i venet0:0 -p tcp -m tcp --dport 80 -j ACCEPT
Проблема в том, что iptables не понимает, что такое venet0: 0. У меня также есть довольно странная конфигурация сети. Вывод 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
Я отправил электронное письмо своему провайдеру VPS и спросил, как назначить интерфейсы, такие как eth0
и eth1
для ссылок на интерфейсы iptables, и они ответили, что это невозможно, но это venet
интерфейсы могут быть использованы как таковые. Однако, когда я пытаюсь их использовать, ничего не происходит.
gre0
и gretap0
или для чего они нужны. Есть идеи?
Вы не можете указать искаженное имя интерфейса с iptables, только фактическое имя интерфейса. Прием должен добавить целевой IP-адрес как дополнительное условие. Также Вам не нужно -m tcp
часть. Таким образом, если бы Вы хотели принять, что трафик портирует 80 в обоих искаженных интерфейсах, то правила были бы:
-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