web-dev-qa-db-ja.com

特定のコンピューターがSQLServerインスタンスに接続できるようにWindowsファイアウォールを構成するにはどうすればよいですか?

ドメイン上の特定のコンピューターのみにSQLServerインスタンスへの接続を許可しようとしていますが、すべてのコンピューターの接続を誤ってブロックしているようです。

データベースをホストしているサーバーでファイアウォールを構成するときに、インスタンスにアクセスできるようにするコンピューターを設定した後。それらすべてをブロックします。ルールを元の状態に戻すと、機能します。

ファイアウォールルールで、次のように設定しました。

  • 一般タブ
    • 処置:安全な場合は接続を許可してください。
  • リモートコンピュータ
    • これらのコンピューターからの接続のみを許可する:チェック済み
    • 下のダイアログボックスには、ドメイン\ PC1 $、ドメイン\ PC2 $などのコンピューター名が表示されます。

このルールを設定すると、サーバーへの接続が約60秒後にタイムアウトし、一般的な「サーバーが存在しないか、アクセスが拒否されました」というメッセージが表示されます。

使用する必要がある正しい設定は何ですか?

1
Jake

これは、Windows Server 2012組み込みファイアウォールを使用し、コマンドプロンプト(またはバッチスクリプト)から Netsh AdvFirewallファイアウォールコマンド を発行することで実行できます管理者として実行

"スクリプトとコマンド"以下の「説明」を参照してください。 。 。


説明

基本的に、次のようなインバウンド接続を許可します。

  1. TCPポート番号 SQLServerインスタンスがサーバーでリッスンしている

    • [ localport = { any | Integer | rpc | rpc-epmap | Teredo | [ ,... ] } ]

      • IPポート番号が一致するネットワークパケットがこのルールに一致することを指定します。 localportは、アウトバウンドネットワークパケットの送信元ポートフィールドと比較されます。これは、インバウンドネットワークパケットの宛先ポートフィールドと比較されます。

        • 整数。パケットがルールに一致するために存在しなければならない正確なポート番号を指定します。ポート値は、個々の数値〜655355000-5020などの範囲またはカンマ区切りの数値と範囲のリストにすることができます。

      localportには、コンマで区切って複数のエントリを指定できます。スペースを含めないでください。

      localportが指定されていない場合、デフォルトはanyです。

  2. このTCPポートのみ特定の(または一連の)IPアドレスからで接続を許可することによって

    • [ localip = { Addresses } ]

      • IPアドレスが一致するネットワークパケットがこのルールに一致することを指定します。 localipは、インバウンドネットワークパケットの宛先IPアドレスフィールドと比較されます。これは、アウトバウンドネットワークパケットの送信元IPアドレスフィールドと比較されます。

        • IPアドレス。 正確なIPv4またはIPv6アドレスのみに一致します。

      複数のエントリは、localipをカンマで区切って指定できます。スペースを含めないでください。

      localipが指定されていない場合、デフォルトは任意です。


スクリプトとコマンド

コマンドライン

netsh advfirewall firewall add rule name="Inbound 1433 Access Per IP Address" dir=in  protocol=tcp  action=allow localip=192.168.1.10,192.168.1.20,192.168.1.30

バッチスクリプトの許可

ECHO ON
SET name="Inbound 1433 Access Per IP Address"
SET dir=in 
SET protocol=tcp 
SET action=allow 
SET localport=1433 
SET localip=192.168.1.1,192.168.1.2,192.168.1.1

netsh advfirewall firewall add rule name=%name% dir=%dir% protocol=%protocol% action=%action% localip=%localip%

ルールの削除

netsh advfirewall firewall delete rule name="Inbound 1433 Access Per IP Address"

その他のリソース

1
Pimp Juice IT