2012-06-12 38 views
9

Linuxマシン上のMySQL 3306ポートが外部からの攻撃を防ぐためにlocalhost以外のものに接続するのを制限しようとしています。私は次のコードを持って、私はそれが正しいかどうかわからない:MySQL 3306ポートをIPTABLESでlocalhostに制限する

iptables -A INPUT -p tcp -s localhost --dport 3306 -j ACCEPT 

iptables -A OUTPUT -p tcp -s localhost --dport 3306 -j ACCEPT 

iptables -A INPUT -p tcp --dport 3306 -j DROP 

iptables -A OUTPUT -p tcp --dport 3306 -j DROP 

私の他の質問がある - それはlocalhostのみアクセスを与えることが正しいのですか?これは、30以上のドメインを持つ標準的な専用CentOS Webサーバーです。

+0

理由だけではなく、アクセス許可を使用しませんmysqluserの代わりにmysqluser @ localhostのようなローカルホストからログインできるようにmysqlユーザを設定する@% – bretterer

+2

私は尋ねるが、どうしてあなたはUnixソケットと '--skip-networking 'もしあなたがdポートを開く必要はありませんか? –

+0

あなたのiptableのルールはうまくいく、私はそれらを試した。 –

答えて

12

MySQLを使用してネットワーキングをオフにしないのはなぜですか?

は、my.cnfのために追加:

skip-networking

またネットワーキング・セクションに使用するテストの多くをスキップパイプを介して接続を強制的に無視できる程度の性能向上を与えることになっています。変更後は、ではなく 127.0.0.1のlocalhostを使用する必要がありますのでご注意ください。

8
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 

上記のルールは、2行を1つに変換するための規則です。あなたの2番目の質問に

回答:あなたはローカルホスト以外からのmysqlのアクセスを提供したくない場合は

が、この方法を設定するには、最適です。シンプル。 :-)

1
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
iptables -A INPUT -p tcp --dport 3306 -j DROP 

あなたはフィルタリングを削除したい場合は、この使用:

iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 
iptables -D INPUT -p tcp --dport 3306 -j DROP 

:両方のルートが必要な場合がありますので、:sudo iptables (...)

関連する問題