ローカルホストと特定のアドレスに対してのみmysqlを開く

ローカルホストと特定のアドレスに対してのみmysqlを開く

私の設定: Ubuntu サーバー 9 と msyql 5

my.cnf = bind-address = 0.0.0.0

私のiptablesスクリプト =

iptables -A INPUT -i eth0 -s 99.88.77.66 -p tcp --destination-port 3306 -j ACCEPT

その IP だけでなく、どこからでも mysql に接続できます。iptables-save 、/etc/init.d/netwokring を再起動しましたが、どの IP からでも接続できます。何か手がかりはありますか?

答え1

このルールは99.88.77.66からの接続を許可しますが、他の場所からの接続は禁止しません。これを防ぐには、すべての着信接続をデフォルトでDROPにするルールが必要です。

iptables -P INPUT DROP

そして、明示的に許可したいクライアントのみを許可します。あるいは、99.88.77.66以外のすべてのクライアントに対してポート3306を閉じることもできます。

iptables -A INPUT -i eth0 -s ! 99.88.77.66 -p tcp --destination-port 3306 -j DROP

答え2

そのルール許可する特定の IP からポート 3306/tcp へのトラフィック。デフォルトの iptables ポリシーではすべてを許可するため、後でそのポートへの他のすべてのトラフィックをドロップするルール (またはデフォルト ポリシー) が必要になります。

答え3

おそらく、iptables のデフォルト ポリシーはすべての入力トラフィックを許可するように設定されています。これにより、どの IP からの接続も許可されます。このポリシーをドロップするように変更します。

iptables -P INPUT DROP

関連情報