私のテーブルのルール:
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より前のルールは影響を受けないため、MySQL接続ではルール6がルールに取って代わります。
追加/変更する必要のある追加のルールはありますか?
Iptablesルールは、ポート3306への着信接続を許可しますが、これはeth0インターフェイスでのみ許可されます。別のインターフェースから接続しようとしている可能性があります。
この問題を解決するには、ルールを必要なトラフィックを許可するルールに置き換えます。たとえば、すべてのインターフェイスからのトラフィックを許可するには、次のようにします。
iptables -R INPUT 6 -m state --state NEW -p tcp --dport 3306 -j ACCEPT