Назад | Перейти на главную страницу

Почему ACCEPT all для всех пунктов назначения в iptables не разрешает порт 8445?

У меня есть тестовый сервер со следующей конфигурацией IPtables:

[root@rhel64 /]# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Когда я попытался получить доступ к приложению, прослушивающему порт 8445, оно было отклонено. Как только я добавил правило, специально разрешающее трафик TCP на 8445, я смог получить к нему доступ. У меня вопрос: почему приведенная выше конфигурация не разрешает порт 8445 по умолчанию, если у меня есть правило «ПРИНЯТЬ все - где угодно и где угодно»?

Из-за давнего недостатка конструкции с iptables -L/--list команда. Полное правило брандмауэра не отображается, если вы не используете -v/--verbose вариант. Как только вы это сделаете, вы увидите, что это правило принимает весь трафик - на lo интерфейс!