У меня есть два интерфейса на моем VPS: eth0
и eth0:0
. Я хочу заблокировать входящие пакеты через порт 80 при eth0:0
использовании iptables. Я попробовал это, но это не работает:
iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP
Если я перехожу eth0:0
на eth0
это работает правильно. В чем проблема?
Ответы:
Короткая история: то, как вы сделали это правильно (согласно вашему комментарию к вопросу).
Длинная история: в Linux сетевое «устройство» называется
foo:bar
псевдонимом «foo», используемым, когда нам нужно назначить несколько сетевых настроек для интерфейса «foo», например, чтобы он отвечал на несколько подсетей на одном проводе.Это грязный способ сделать это, и несовместимо с загрузкой. Для IPv6 все адреса, назначенные интерфейсу eth0, перечислены вместе под записью eth0. Есть более современный способ сделать это (с помощью
ip addr
команды).Интерфейсы псевдонимов можно обнаружить, поскольку
:
в их именах есть двоеточие , слева от двоеточия - существующее имя интерфейса, а раздел интерфейса, когда вы это делаетеifconfig
, очень короткий. ТакжеHWaddr
должен быть идентичным интерфейсу родительского интерфейса. Они также не будут перечислены в/proc/net/dev
. Если бы вы сказалиip addr
,eth0:0
будет отображаться как второй адрес интерфейсаeth0
. (найдите строку с отступом, начинающуюся сinet
)Псевдонимы и их родители имеют много общих настроек и полей, поскольку они имеют общий физический уровень. Ядро не рассматривает их как полностью отдельные интерфейсы. Например, трафик отображается на родительском интерфейсе, а не на псевдониме. Возможно, вы заметили, что псевдоним даже не имеет счетчиков пакетов / байтов!
Если вам нужно перехватить трафик, брандмауэр и т. Д. На интерфейсе псевдонима, вы должны использовать вместо него его родитель. Поскольку единственное отличие псевдонима от его родителя - это настройки IPv4, единственный способ сопоставить трафик с псевдонимом - использовать эти настройки IP. С помощью
iptables
вы сопоставляете IPv4-адрес псевдонима так же, как в комментарии к своему ответу.источник