ファイアウォール設定によって、MySQL サーバーへの受信接続を指定された IP アドレスに制限する方法

ファイアウォール設定によって、MySQL サーバーへの受信接続を指定された IP アドレスに制限する方法

背景目的: MYSQLサーバーへの受信接続を特定のホストのみに制限するために、受信ルールを設定します。Windowsファイアウォールつまり、特定のホストのみが MYSQL サーバーに接続できるようにしたいのです。

Windows ファイアウォールの設定では、デフォルトで次のように表示されます。

ここに画像の説明を入力してください

両方のポートが開いています。そのため、X プロトコルからの受信は想定していないため、ポート 33060 へのすべての受信接続をブロックしました。

ここに画像の説明を入力してください

次に、ローカル PC から MYSQL サーバーに接続しようとしたところ、接続に成功しました。次に、MYSQL サーバーのポート 3306 への着信接続を、指定した IP アドレスのみに制限してみました。

まず、安全な場合は接続を許可するを選択します。 ここに画像の説明を入力してください

2 番目は、この MYSQL サーバーに接続するために指定したリモート IP アドレスです。 ここに画像の説明を入力してください

上の画像の黒く塗りつぶされた部分に、ローカルPCのグローバルIPアドレス(IPv4)を入力しました。XX.XXX.XXX.XX形式で入力しました。グローバルIPアドレスはこのオンラインサービス. その後、ローカル PC から MYSQL サーバーに接続しようとしましたが、接続できませんでした。

Windows PowerShellで接続をテストしましたTest-NetConnection。しかし、ポートへの接続に失敗しました。

ここに画像の説明を入力してください

私の何が間違っているのでしょうか?

テスト1:

以下のようにもテストしました。

Remote IP address以下のように設定を変更します Any IP address

ここに画像の説明を入力してください

以下の設定はそのままにしておきます。

Allow the connection if it is secure

ここに画像の説明を入力してください

次に、Test-NetConnectionWindows PowerShell で試してください。ただし、ポートにアクセスできません。

テスト2:

以下のように再度テストしてみました。

以下のように設定し続けます Remote IP address

ここに画像の説明を入力してください

以下の設定を変更しました:

Allow the connection

ここに画像の説明を入力してください

次に、Test-NetConnectionWindows PowerShell で試してください。ただし、ポートに再度アクセスできません。

答え1

設定を変更する必要がありますこの接続を許可する「安全な場合はこの接続を許可する」ではなく、「安全な場合はこの接続を許可する」です。

後者の設定では、接続が IPSec で保護されている場合にのみ接続が許可されますが、これはほとんど使用されていないし、今後も使用されることはありません。

答え2

「安全な場合は接続を許可する」オプションを削除します。これにより、MySQL クライアントでサポートされていない追加の認証および暗号化レイヤーが追加されます。ここでは使用できません。

さらに、メッセージ のみを受け取った場合failedあなたのスクリーンショットの場合、MySQL サーバーはそのインターフェースをリッスンしていません。問題がファイアウォールにある場合は、メッセージが表示されますTimedOut

MySQL サーバーが、おそらくデフォルトのループバック インターフェイス (127.0.0.1) のみではなく、外部インターフェイスまたはすべてのインターフェイス (0.0.0.0) でリッスンしていることを確認します。

これを確認するには、サーバー上で次のコマンドを実行します:

Get-NetTCPConnection -State Listen -LocalPort 3306

関連情報