MySQLをiptablesで安全に外部公開する設定

今回の設定はMySQL自身は誰でも歓迎Listen!を行って、iptablesで制御する方法です。DBユーザ側で制御しないのは、今後誰かがサーバの管理を引き継いだ時に、DBユーザの設定に手を加えないで済むから。

 

iptablesでの制御なら設定ファイルに記述があるので、修正や追加が必要な場合にもスキルに関わらず容易に保守がしやすいという大きなメリットがあります٩(๑❛ᴗ❛๑)۶これなら、別のネットワークのIPアドレスも簡単に追加できる。

 

今後永遠に自分だけが使って管理するというならどうやってもいいけど。そんなことはまずないはず(笑

 

寂しい話、いつしか他の会社がシステム保守を引き継ぐかもしれないし、お客様の社内にサーバー好きなIT担当者が入ってきたら、その方が引き継ぐかもしれない。だからドキュメントを残して、お客様のシステム要件を満たしつつも出来るだけ保守しやすくしたいと考えて設定します。

誰でもListenさせる

MySQLのデフォルトではlocalhostしか待ち受けしていないので、公開範囲を指定します。

 

これでどのようなIPが来ても受け入れます。

 

※mysqldはserviceコマンドから起動するより起動スクリプトから起動すると、mysqld_safeデーモン経由でmysqldを起動するので、直接mysqldを起動するより安全です。

 

mysqld_safe

エラー発生時の再起動やランタイム情報のエラーログファイルへのロギングなど、いくつかの安全機能を追加します。

 

@see http://dev.mysql.com/doc/refman/5.6/ja/mysqld-safe.html

ログイン用のDBユーザを作成する。

iptablesで制御しよう

これまで行ってきた設定ではMySQLは誰でも待ち受けてしまい非常に危険な状態。だからiptablesで門を正確に制御しよう。

 

 

許可するサーバを列挙して、最後にそれ以外の接続を拒否。

 

これで安全にMySQLを外部公開できますね!

優 ( エンジニア )

この記事を書いた人:優 ( エンジニア )

システムガーディアン爆弾処理班
アクセス負荷対策などNginxへの移行案件が多いこの頃。
AzureやAWSなどクラウド案件も多くなってきました。


この記事に関してのお問い合わせ
御連絡・ご返信は原則2営業日以内を予定しております。
お急ぎの場合は、お手数ですが下記電話でもご対応をしております。

システムガーディアン株式会社
受付時間:平日9:00~18:00
受付担当:坪郷(つぼごう)・加藤
電話:03-6758-9166