iptables не отбрасывает порт udp для точного IP-адреса

iptables не отбрасывает порт udp для точного IP-адреса

Мои правила iptables следующие:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
-A INPUT -d (my public facing ip)/32 -p udp -m udp --dport 10000 -j DROP
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b -j RETURN

Во всех остальных таблицах также все цепочки на ACCEPT.
Почему 1.1.1.1 не может получить доступ к портам TCP 80 и 443, но все по-прежнему могут получить доступ к порту 10000 на моем публичном IP?

решение1

-A INPUT -p tcp -m multiport --dports 80,443 -j f2b

Говорит, если перейти к цепочке с именемф2б

-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable

Первое правило в цепочке названоф2бсказать ОТКЛОНИТЬ 1.1.1.1/32

Что касается 8.8.8.8, я не вижу трафика, возможно, он использует TCP, а не UDP. 8.8.8.8 — это пункт назначения, поэтому если бы источником был 8.8.8.8, а пунктом назначения было бы что-то другое, то это не соответствовало бы правилу.

Попробуй это:

-I FORWARD 1 -d 8.8.8.8/32 -p udp -m udp --dport 10000 -j DROP

решение2

Если вы хотите заблокировать трафик, который приходитот8.8.8.8 от попадания на ваш порт, вы используете -s(адрес источника), а не -d(адрес назначения)

решение3

Я исправил проблему, заменив DROP на REJECT. Не знаю, почему это работает, но вот результат:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
-A INPUT -d (my public facing ip)/32 -p udp -m udp --dport 10000 -j REJECT --reject-with icmp-port-unreachable
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b -j RETURN

EDIT: Я обнаружил, что DROP работает отлично, я использовал nmap, чтобы проверить, открыт ли порт, и забыл, что nmap сообщит, что порт закрыт, только если получит отказ.

Связанный контент