web-dev-qa-db-ja.com

外部MySQL接続のためにファイアウォールでポート3306を開いても安全ですか?

TOAD、Navicat、HeidiSQLなどを使用して、ISPでホストされているMySQL DBに接続したい。 MySQLはポート3306でリッスンしているが、ハードウェアファイアウォールが外部接続へのアクセスを許可していない(localhostのみ)と、ISPから言われました。ファイアウォールにIPを追加するオプションがありますが、自宅や外出先で作業するのは理想的ではないため、IPは常に変化しています。これを開けると困りますか?リスクを軽減するためにIPテーブルにIPを追加する以外に何かできることはありますか?

6
Don

一般に、MySQLアクセスをIPアドレスに制限することをお勧めします。いくつかのセキュリティ上の懸念があるかもしれませんが、良いファイアウォールはそれらのいくつかを軽減するべきです。 MySQLはユーザーごとに複数のホスト(ワイルドカードがない場合)を許可しないため、追加のMySQLユーザーを作成する必要があります。接続元のホストごとに1つずつ、または部分的なホスト(例:%.google.com)を実行することもできます。

代替ソリューションは、ローカルから接続できるように、マシンからsshトンネルを作成することです。

MySQLでsshトンネルを作成する方法についての良い記事を以下に示します。

http://www.howtogeek.com/howto/ubuntu/access-your-mysql-server-remotely-over-ssh/

8
telm

3306を開かないでください。

代わりに、他のすべてのサーバーが行うことを実行します。安全なssh接続のためにポート22を開き、ログオンしたら、ローカルでmysqlに接続します。

4
Bohemian

許可に非常に注意し、SSLを要求することで、認証を安全に保つことができます。使用される可能性のある未発見のエクスプロイトに対する保護はありません。

一部のSQLクライアントには、より良いアイデアであるSSHトンネルオプションがあります。

0
datasage

Navicatについて言及したので、そのHTTPトンネル機能を調べてください。そのトンネルエンドポイントをあいまいに指定/配置し、MySQL認証に加えてファイル自体にHTTP認証を使用すると、最も標的を絞った攻撃以外のすべてを排除できます。

0
Dave Ward

安全な方法はポートを閉じることですが、サーバーが同じサーバーを使用する他のクライアントとの共有サーバーである場合、ISPはポートを閉じることを望んでいない可能性があります。私のISPのMySQLでこの問題が発生しています。私の場合、彼らは「これはあなたのアカウントのセキュリティリスクを表すものではありません。これらのポートが開いているという事実にもかかわらず、リモートMySQL接続が行われている間、誰もあなたの資格情報(盗まれない限り)に接続できないためです。オフになりました。」

したがって、ハードで安全なパスワードとリモート接続をコントロールパネルから切り離していて、サーバーの特権がロックダウンされている場合は、多少「安全」ですが、100%「安全」ではありません。

アプリケーションがミッションクリティカルであるか、機密データが含まれている場合は、必要に応じて専用サーバーに移動し、ポートを完全に閉じます。

0
Jeff Mergler