Мои iptables теперь выглядят следующим образом:
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:12001
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12001
3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:8989
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8989
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8888
Правило STATE NEW для порта 8989 будет пропускать новые соединения. Однако будет ли он блокировать все установленные подключения на порту 8989?
Если это вся ваша цепочка INPUT, она ничего не блокирует, потому что политика INPUT - ACCEPT и у вас нет правил DROP.
Если вам нужен работающий брандмауэр, вам необходимо либо измените политику INPUT на DROP, либо добавьте правило DROP. Но да, если вы это сделаете, вам также понадобится правило для принятия установленных соединений. Вы можете сделать это так:
iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Это принимает все установленные соединения в качестве первого правила ввода, что обычно является разумным решением.
Если вы подключаетесь по ssh, убедитесь, что вы принимаете как новый, так и установленный TCP подключений к порту ssh перед добавлением политики или правила DROP. В противном случае вы можете заблокироваться.