使用 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。
Internet 协议 查询中使用的网络协议。 可能的值为 IPv4 和 IPv6。
服务器接口 IP 地址 接收了 DNS 请求的 DNS 服务器的网络接口的 IP 地址。
FQDN 查询中的记录的完全限定的域名,可以使用通配符。
查询类型 查询的记录类型(A、SRV、TXT 等)。
时间 收到查询的时间。

以下示例演示如何为阻止或允许 DNS 名称解析查询的 DNS 策略创建筛选器。

注意

本主题中的示例命令使用 Windows PowerShell 命令 Add-DnsServerQueryResolutionPolicy。 有关详细信息,请参阅 Add-DnsServerQueryResolutionPolicy

阻止来自某个域的查询

在某些情况下,你可能希望阻止已确定为恶意的域或不符合组织使用准则的域的 DNS 名称解析。 可以使用 DNS 策略阻止对域的查询。

在此示例中配置的策略不是在任何特定区域上创建的 - 你创建的是一个服务器级别策略,该策略应用于在 DNS 服务器上配置的所有区域。 服务器级别策略是第一个要评估的,因此在 DNS 服务器收到查询时首先被匹配。

以下示例命令将服务器级别策略配置为阻止任何具有域后缀 contosomalicious.com 的查询。

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

注意

使用值 IGNORE 配置 Action 参数时,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

仅允许某些 QType

可以将允许列表应用于 QTYPE。

例如,如果有外部客户查询 DNS 服务器接口 164.8.1.1,则只允许查询某些 QTYPE,而其他 QTYPE(如 SRV 或 TXT 记录)则供内部服务器用于名称解析或监视目的。

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

可以根据流量管理要求创建数以千计的 DNS 策略,所有新策略都会动态应用于传入的查询,且无需重启 DNS 服务器。