DNS クエリへのフィルターの適用に DNS ポリシーを使用する

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

このトピックでは、Windows Server® 2016 で DNS ポリシーを構成して、指定した条件に基づいたクエリ フィルターを作成する方法について説明します。

DNS ポリシーのクエリ フィルターを使用すると、DNS クエリと DNS クエリを送信する DNS クライアントに基づくカスタムな方法で応答するよう、DNS サーバーを構成できます。

たとえば、既知の悪意のあるドメインからの DNS クエリをブロックするブロック リストというクエリ フィルターを使用して DNS ポリシーを構成できます。これにより、DNS がこれらのドメインからのクエリに応答しなくなります。 DNS サーバーから応答が送信されないため、悪意のあるドメインのメンバーの DNS クエリはタイムアウトします。

別の例として、特定の一連のクライアントだけが特定の名前を解決できるようにする許可リストというクエリ フィルターを作成します。

クエリのフィルター条件

次の条件の任意の論理的な組み合わせ (AND、OR、NOT) を使用して、クエリ フィルターを作成できます。

名前 説明
クライアント サブネット 定義済みのクライアントのサブネットの名前です。 クエリの送信元となるサブネットを確認するために使用します。
トランスポート プロトコル トランスポート プロトコル クエリで使用をします。 可能な値は、UDP と TCP です。
インターネット プロトコル クエリで使用されるネットワーク プロトコルです。 可能な値は、IPv4 と IPv6 です。
サーバーのインターフェイスの IP アドレス DNS 要求を受信した DNS サーバーのネットワーク インターフェイスの IP アドレスです。
FQDN ワイルドカードを使用する可能性があるクエリ内のレコードの完全修飾ドメイン名です。
クエリの型 (A、SRV、TXT など) に照会しているレコードの型。
時刻 クエリが受信した時刻。

以下の例は、DNS 名前解決のクエリをブロックまたは許可する DNS ポリシーのフィルターを作成する方法を示しています。

注意

このトピックのコマンド例では、Windows PowerShell コマンド Add-DnsServerQueryResolutionPolicy を使用しています。 詳細については、次を参照してください。 追加 DnsServerQueryResolutionPolicyします。

ドメインからのクエリをブロックする

場合によっては、悪意があるとして識別したドメインの DNS 名解決、または組織の使用ガイドラインに準拠していないドメインの DNS 名前解決をブロックする必要があります。 DNS ポリシーを使用して、ドメインのクエリのブロックを行うことができます。

この例で構成したポリシーは、特定のゾーンでは作成されません。そうではなく、DNS サーバー上に構成されているすべてのゾーンに適用されるサーバー レベルのポリシーを作成します。 サーバー レベルのポリシーは最初に評価されるため、DNS サーバーがクエリを受信したときに最初に照合されます。

次のコマンド例は、ドメイン suffix contosomalicious.com を使用してクエリをブロックするようにサーバー レベル ポリシーを構成しています。

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicy" -Action IGNORE -FQDN "EQ,*.contosomalicious.com" -PassThru

注意

Action パラメーターの値を IGNORE に設定すると、DNS サーバーは何も応答せずにクエリを削除するように構成されます。 これにより、悪意のあるドメインの DNS クライアントがタイムアウトします。

サブネットからのクエリをブロックする

この例では、何らかのマルウェアに感染していることが検出されたサブネットから、DNS サーバーを使用して悪意のあるサイトに接続しようとしている場合は、そのクエリをブロックできます。

` Add-DnsServerClientSubnet -Name "MaliciousSubnet06" -IPv4Subnet 172.0.33.0/24 -PassThru

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicyMalicious06" -Action IGNORE -ClientSubnet "EQ,MaliciousSubnet06" -PassThru `

次の例は、サブネット条件を FQDN 条件と組み合わせて使用して、感染したサブネットから特定の悪意のあるドメインに対するクエリをブロックする方法を示しています。

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicyMalicious06" -Action IGNORE -ClientSubnet "EQ,MaliciousSubnet06" –FQDN “EQ,*.contosomalicious.com” -PassThru

クエリの種類をブロックする

場合によっては、サーバー上の特定の種類のクエリの名前解決をブロックする必要があります。 たとえば、不正に使用して増幅攻撃を作成することが可能な "ANY" クエリをブロックできます。

Add-DnsServerQueryResolutionPolicy -Name "BlockListPolicyQType" -Action IGNORE -QType "EQ,ANY" -PassThru

ドメインからのクエリのみを許可する

DNS ポリシーは、クエリをブロックするためだけでなく、特定のドメインまたはサブネットからのクエリを自動的に承認するためにも使用できます。 許可リストを構成すると、DNS サーバーは、許可されているドメインからのクエリのみを処理し、他のドメインからの他のすべてのクエリをブロックします。

次のコマンド例では、contoso.com と子ドメイン内のコンピューターとデバイスのみが DNS サーバーへのクエリを実行できます。

Add-DnsServerQueryResolutionPolicy -Name "AllowListPolicyDomain" -Action IGNORE -FQDN "NE,*.contoso.com" -PassThru

サブネットからのクエリのみを許可する

また、IP サブネットの許可リストを作成して、これらのサブネットから送信されていないすべてのクエリを無視することもできます。

Add-DnsServerClientSubnet -Name "AllowedSubnet06" -IPv4Subnet 172.0.33.0/24 -PassThru Add-DnsServerQueryResolutionPolicy -Name "AllowListPolicySubnet” -Action IGNORE -ClientSubnet "NE, AllowedSubnet06" -PassThru

特定の QTypes のみを許可する

QTYPE に許可リストを適用できます。

たとえば、外部の顧客が DNS サーバー インターフェイス 164.8.1.1 に対してクエリを実行している場合、特定の QTYPE のみにクエリを実行できます。一方、内部サーバーが名前解決または監視の目的に使用する SRV や TXT レコードなどの他の QTYPE もあります。

Add-DnsServerQueryResolutionPolicy -Name "AllowListQType" -Action IGNORE -QType "NE,A,AAAA,MX,NS,SOA" –ServerInterface “EQ,164.8.1.1” -PassThru

何千もの DNS のポリシーに合わせて作成できます、トラフィック管理の要件、DNS サーバーを再起動しなくても - 受信したクエリで、すべての新しいポリシーが動的 - 適用されます。