2017-12-09 12 views
-1

私はWeb全体を検索していましたが、実際には何も見つかりませんでした。私の質問:MySQLの実装されたSSLを使用すると、インターネットから直接サーバー上のMySQLへのアクセスを許可するのは安全ですか?MySQL SSLは本当に安全ですか?

MySQLのSSLはすべての通信を暗号化し、SSL(GRANT ALL PRIVILEGES ON <database> TO '<external_user>'@'%' IDENTIFIED BY 'pass' REQUIRE SSL)を強制してデータベースへのアクセスを制限し、公開鍵を持つユーザーのみにデータベースにアクセスできるようにすることができます。すべての良い。

しかし、私は任意のIPアドレス(bind-address 127.0.0.1を削除する)からMySQLへのアクセスを許可する必要があり、私のファイアウォールでポート3306を開かなければなりません(私の場合はiptablesのフロントエンドとしてufwを使います)。これらの2つのステップは、私にとって非常に安全ではないようです(特に、fail2banログのポート22を攻撃しようとした回数をカウントすると)。

誰かが私が間違っている理由、代替アイデア、またはこれを安全にするための設定を持っていますか?

注:SSHトンネルは使用しません。それは確かに非常に安全ですが、私の知る限り、パフォーマンスはかなり低下します。

注II:PHP PDOクラスを使用してデータベースに接続したいとします。

+0

'保存'?あなたは '* safe *'を意味しますか? SSLが安全かどうか尋ねていますか?この日と年齢で? – EJP

+0

@EJPいいえ、別の質問をしました。下の投票?正直、投票する前に質問を読んでください!そして、はい、私はタイプミスを修正しました。 SSHトンネルの代わりにMySQL SSLを使用することをお勧めします。従って、それはそれが同等に安全であることを期待するかもしれない。しかし、受け入れられた答えによるとそうではありません。 – PeMa

+0

タイトルとテキストの両方が「保存」と表示されます。修正するまで、コメントの後ではまったく正しいとは言えません。あなたの質問は実際にはMySQL SSLに関するものではなく、STARTTLSコマンドの前のポートの状態と平文接続が可能であるという事実です。 – EJP

答えて

1

設定で使用されているSSLは、スニッフィングや変更に対してトランスポートを保護します。 require SSLの設定では、クライアントはSSLを使用する必要があります(「公開鍵を持つユーザーに対してのみデータベースへのアクセスを許可」)。特定のクライアント証明書やクライアント証明書の使用を強制するものではありません。つまり、パスワードを知っている人なら誰でも接続できます。

したがって、データベースの適切なアクセス制御は、依然として秘密を保持するすべてのパスワードにのみ依存します。また、SSLは接続からパスワードを盗聴するのを助け、トラフィックを変更すること(つまり文を変更すること)から、パスワードを既に知っている攻撃者には役立ちません。

TLSは、攻撃者がSQLインジェクションを使用して独自のSQL文を挿入できるように、クライアントの問題に対する保護に役立ちません。また、データベースを直接インターネットに公開することで、サービス拒否攻撃やSSLを使用するかどうかにかかわらず、パスワードを強制的に脆弱にする可能性があります。

+0

こんにちは、ありがとう。私の理解は、私の恐れは妥当であった。セキュリティを達成する方法を提案できますか、私のアプローチを変えるだけですか? – PeMa

+1

@PeMa:残念ながら、データベースを外部から利用できるようにする必要がある理由と、どのような制限があるのか​​について、十分に細かいユースケースは示していません。しかし、SSHまたはVPNとの接続をトンネリングするだけで、特定の数のクライアントのみが必要とされる場合は、公開される攻撃の表面が減少し、リスクが軽減されます。そのような質問をするより良いサイトは実際にはsecurity.stackexchange.comです。しかし、より使いやすい答えを得るためには、できるだけ狭いユースケースを指定するようにしてください。 –

+0

私はsecurity.stackexchange.comについて知りませんでした。ここでのユースケースは、会社のためのいくつかのWebアプリケーションを作成することです。アプリケーションのスケーラビリティ上の理由から、私はxampp(またはphp build-in server)をモバイルデバイス上でローカルに使用して、1つの中央データサーバーと通信することを考えました。 – PeMa

関連する問題