Чому моє правило iptables не працює?


9

У мене на VPS два інтерфейси: eth0і eth0:0. Я хочу заблокувати вхідні пакети на порт 80 за eth0:0допомогою iptables. Я спробував це, але це не працює:

iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP

Якщо я змінюю eth0:0до eth0неї працює правильно. В чому проблема?


4
Я вирішив своє питання таким чином: мій інтерфейс був віртуальним, тому iptables не могли отримати доступ до нього, тому я заблокував інтерфейс IP-інтерфейсом, а не ім'ям інтерфейсу, моя команда: iptables -A INPUT -p tcp --dport 80 -d {ETH0: 0's IP} -j REJECT
sinoohe

Відповіді:


6

Коротка історія: те, як ви це зробили, є правильним (відповідно до вашого коментаря до питання).

Довга історія: в 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 адресою псевдоніма так само, як ви робили в коментарі до своєї відповіді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.