Может кто-нибудь объяснить, почему IPTABLES блокирует любые порты в этом списке правил:
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 tcp dpt:mysql
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
Мне кажется, что строка ACCEPT ALL должна принимать весь трафик, но это не так.
Ваши iptables следует рассматривать для каждой цепочки.
INPUT
цепь.OUTPUT
цепь.FORWARD
цепочка, даже если для политики по умолчанию установлено значение ACCEPT
.Таким образом, ваш брандмауэр разрешает все входящие и исходящие соединения. Однако он отказывается пересылать любой пакет на любой другой хост.
Общее правило - следовать вашим правилам iptables для совпадения. Если ничего не найдено, примените политику цепочки по умолчанию.
pkts bytes target prot opt in out source destination
6741 691K ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
1 84 ACCEPT icmp -- any any anywhere anywhere
0 0 ACCEPT all -- lo any anywhere anywhere
Оказывается, то, что я считал пропусканием всего трафика, было разрешением только кольцевого трафика (т.е. "lo").