1

В моей системе четыре интерфейса (eth0, eth1, eth2 и eth3). Я хочу заблокировать весь входящий и исходящий трафик на eth2 за исключением портов 80 и 443, хотя сейчас я беспокоюсь только о 80. Команды IPtables, которые я использую, следующие:

/sbin/iptables -A FORWARD -i eth2 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -o eth2 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p tcp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p udp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth2 -j DROP
/sbin/iptables -A FORWARD -o eth2 -j DROP

Проще говоря, это не работает. Весь трафик на eth2 заблокирован, включая порт 80. Есть идеи или способы выяснить, в чем проблема? У меня минимальный опыт работы с IPtables, поэтому я не уверен, с чего начать. Спасибо!

2 ответа2

2

Похоже, вы все время разрешали движение.

1

Рассмотрим строителя брандмауэра, такого как Shorewall. Это поможет сделать все правильно, и может сбросить правила, чтобы вы могли их проверить. Доступна обширная документация и примеры конфигураций для одного, двух или трех интерфейсов (внешних зон). Это дает вам три внешних интерфейса без размещения двух в одной зоне.

Предполагая, что вы назначили eth2 для зоны net включить HTTP и HTTPS с помощью одного из этих rules . Какое правило вам нужно, зависит от того, в каком направлении вы хотите передавать трафик.

Web(ACCEPT)   $FW    net
Web(Accept)   net    $FW

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .