Правила моего стола:
sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere tcp dpt:http
2 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
3 ACCEPT icmp -- anywhere anywhere
4 ACCEPT all -- anywhere anywhere
5 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
6 ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
7 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Дополнительная информация
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1083K 263M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
3942M 4886G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
734 42672 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
864 62326 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
138 8568 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
151 20254 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 778 packets, 161K bytes)
pkts bytes target prot opt in out source destination
Удалив правило 7 из входной цепочки, я могу получить доступ к серверу удаленно. Насколько я понимаю, оно не должно затрагивать любые правила, предшествующие правилу 7, поэтому правило 6 должно заменять его для соединений MySQL.
Есть ли какие-то дополнительные правила, которые я должен добавить / изменить?
Правило iptables разрешает входящие подключения к порту 3306, но только на интерфейсе eth0. Вероятно, вы пытаетесь подключиться через другой интерфейс.
Чтобы решить проблему, замените правило на то, которое разрешает нужный вам трафик. Например, чтобы разрешить трафик со всех интерфейсов:
iptables -R INPUT 6 -m state --state NEW -p tcp --dport 3306 -j ACCEPT