- Условное разрешение DNS имен в Windows Server: DNS Conditional Forwarding, политики DNS
- Настройка DNS Conditional Forwarder в Windows Server
- Настройка DNS Conditional Forwarding с помощью PowerShell
- Фильтрация запросов DNS, политики разрешения имен в Windows Server 2016
- Использование политики DNS для применения фильтров к запросам DNS Use DNS Policy for Applying Filters on DNS Queries
- Условия фильтра запросов Query filter criteria
- Блокировка запросов из домена Block queries from a domain
- Блокировка запросов из подсети Block queries from a subnet
- Блокировка типа запроса Block a type of query
- Разрешить запросы только из домена Allow queries only from a domain
- Разрешить запросы только из подсети Allow queries only from a subnet
- Разрешить только определенные Ктипес Allow only certain QTypes
Условное разрешение DNS имен в Windows Server: DNS Conditional Forwarding, политики DNS
В этой статье мы рассмотрим два способа организации условного разрешения имен в DNS сервере на Windows Server 2016: DNS conditional forwarding и DNS policy. Эти технологии позволяют настроить условное разрешение DNS имен в зависимости от запрошенного имени, IP адреса и местоположения клиента, времени суток и т.д.
Условная пересылка DNS (Conditional Forwarding) позволяет перенаправить DNS запросы об определенном домене на определенные DNS-сервера. Обычно Conditional Forwarders используется, когда нужно настроить быстрое разрешение имен между несколькими внутренними приватными доменами, или вы не хотите, чтобы DNS запросы с вашего сервера пересылались через публичную сеть Интернет. В этом случае вы можете создать на DNS сервере правило DNS пересылки DNS запросов для определенной доменной зоны (только . ) на определенный DNS сервер.
Настройка DNS Conditional Forwarder в Windows Server
Попробуем настроить условное перенаправление DNS запросов для определенной доменной зоны на Windows Server 2016. Например, я хочу, чтобы все DNS запросы к зоне corp.winitpro.ru пересылались на DNS сервер 10.1.10.11.
- Запустите консоль управления DNS ( dnsmgmt.msc );
- Разверните ваш DNS сервер, щелкните правой кнопкой по разделу Conditional Forwarders и выберите New Conditional Forwarder;
- В поле DNS domain укажите FQDN имя домена, для которого нужно включить условную пересылку;
- В поле IP addresses of the master servers укажите IP адрес DNS сервера, на который нужно пересылать все запросы для указанного пространства имен;
- Если вы хотите хранить правило условной переадресации не только на этом DNS сервере, вы можете интегрировать его в AD. Выберите опцию “Store this conditional forwarder in Active Directory”;
- Выберите правило репликации записи conditional forwarding (All DNS servers in this forest, All DNS servers in this domain или All domain controllers in this domain).
Настройка DNS Conditional Forwarding с помощью PowerShell
Вы можете создать правило Conditional Forward для определенной DNS зоны с помощью PowerShell. Воспользуйтесь командлетом Add-DnsServerConditionalForwarderZone:
Add-DnsServerConditionalForwarderZone -Name dmz.winitpro.ru -MasterServers 192.168.1.11,192.168.101.11 -ReplicationScope Forest
Чтобы вывести список DNS Conditional Forwarders на определенном сервере, выполните следующий PowerShell скрипт:
$DNSServer = «DC01»
$Zones = Get-WMIObject -Computer $DNSServer -Namespace «root\MicrosoftDNS» -Class «MicrosoftDNS_Zone»
$Zones | Select-Object Name,MasterServers,DsIntegrated,ZoneType | where <$_.ZoneType -eq "4">| ft -AutoSize
Фильтрация запросов DNS, политики разрешения имен в Windows Server 2016
В Windows Server 2016 появилась новая фича в службе DNS сервера – DNS политики. DNS политики позволяют настроить DNS сервер так, чтобы он возвращал различные ответы на DNS запросы в зависимости от местоположения клиента (с какого IP адреса или подсети пришел запрос), интерфейса DNS сервера, времени суток, типа запрошенной записи (A, CNAME, PTR, MX) и т.д. DNS политики в Windows Server 2016 позволяют реализовать сценарии балансировки нагрузки, фильтрации DNS трафика, возврата DNS записей в зависимости от геолокации (IP адреса клиента) и многие другие сложные сценарии.
Вы можете создать политику как на уровне DNS сервера, так и на уровне всей зоны. Настройка DNS политик в Windows Server 2016 возможна только из командной строки PowerShell.
Попробуем создать простую политику, которая позволяет вернуть разный ответ на DNS запрос в зависимости от геолокации клиента. Допустим, вы хотите, чтобы клиенты в каждом офисе использовали собственный прокси на площадке. Вы создали политику назначения прокси в домене (на всех клиентах будет указано proxy.winitpro.ru). Но клиент из каждого офиса должен резолвить этот адрес по-разному, чтобы использовать для доступа свой локальный прокси-сервер.
Я создал 3 подсети для разных офисов компании:
Add-DnsServerClientSubnet -Name «MSK_DNS_Subnet» -IPv4Subnet «192.168.1.0/24»
Add-DnsServerClientSubnet -Name «EKB_DNS_Subnet» -IPv4Subnet «192.168.11.0/24»
Add-DnsServerClientSubnet -Name «SPB_DNS_Subnet» -IPv4Subnet «192.168.21.0/24»
Чтобы вывести список всех IP подсетей клиентов, выполните:
Теперь нужно для каждого офиса создать отдельную DNS область:
Add-DnsServerZoneScope -ZoneName “winitpro.ru” -Name “MSKZoneScope”
Add-DnsServerZoneScope -ZoneName “winitpro.ru” -Name “EKBZoneScope”
Add-DnsServerZoneScope -ZoneName “winitpro.ru” -Name “SPBZoneScope”
Следующие команды добавят 3 DNS записи с одним именем, но указывающие на разные IP адреса в разных областях DNS:
Add-DnsServerResourceRecord -ZoneName “winitpro.ru” -A -Name “proxy” -IPv4Address “192.168.1.10” -ZoneScope “MSKZoneScope”
Add-DnsServerResourceRecord -ZoneName “winitpro.ru” -A -Name “proxy” -IPv4Address “192.168.11.10” -ZoneScope “EKBZoneScope”
Add-DnsServerResourceRecord -ZoneName “winitpro.ru” -A -Name “proxy” -IPv4Address “192.168.21.10” -ZoneScope “SPBZoneScope”
Get-DnsServerResourceRecord -ZoneName “winitpro.ru” -ZoneScope SPBZoneScope
Теперь нужно создать DNS политики, которые свяжут IP подсети, DNS области и A записи.
Add-DnsServerQueryResolutionPolicy -Name “MSKResolutionPolicy” -Action ALLOW -ClientSubnet “eq,MSK_DNS_Subnet” -ZoneScope “MSKZoneScope,1” -ZoneName “winitpro.ru” –PassThru
Add-DnsServerQueryResolutionPolicy -Name “EKBResolutionPolicy” -Action ALLOW -ClientSubnet “eq,EKB_DNS_Subnet” -ZoneScope “EKBZoneScope,1” -ZoneName “winitpro.ru” -PassThru
Add-DnsServerQueryResolutionPolicy -Name “SPBResolutionPolicy” -Action ALLOW -ClientSubnet “eq,SPB_DNS_Subnet” -ZoneScope “SPBZoneScope,1” -ZoneName “winitpro.ru” –PassThru
- -Action ALLOW
- -Action DENY
- -Action IGNORE
Можно использовать следующие параметры в фильтре DNS:
-InternetProtocol «EQ,IPv4,NE,IPv6»
-TransportProtocol «EQ,UDP,TCP»
-ServerInterfaceIP «EQ,192.168.1.21»
-QType «EQ,A,AAAA,NE,PTR»
-TimeOfDay «EQ,9:00-18:00»
Вывести список всех DNS политик для DNS зоны на сервере можно так:
Get-DnsServerQueryResolutionPolicy -ZoneName winitpro.ru
Теперь с устройств из различных офисов проверьте, что DNS сервер на один и тот же запрос возвращает различные IP адреса прокси:
Можно запретить DNS серверу возвращать DNS адреса для определенного пространства имен (домена):
Использование политики DNS для применения фильтров к запросам DNS Use DNS Policy for Applying Filters on DNS Queries
Применяется к: Windows Server (Semi-Annual Channel), Windows Server 2016 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2016
С помощью этого раздела вы узнаете, как настроить политику DNS в Windows Server ® 2016 для создания фильтров запросов на основе предоставленных условий. You can use this topic to learn how to configure DNS policy in Windows Server® 2016 to create query filters that are based on criteria that you supply.
Фильтры запросов в политике DNS позволяют настроить DNS-сервер на отправку пользовательского способа на основе DNS-запроса и DNS-клиента, отправляющего запрос DNS. Query filters in DNS policy allow you to configure the DNS server to respond in a custom manner based on the DNS query and DNS client that sends the DNS query.
Например, можно настроить политику DNS с помощью списка блоков фильтра запросов, который блокирует запросы DNS от известных вредоносных доменов, что предотвращает реагирование DNS на запросы из этих доменов. For example, you can configure DNS policy with query filter Block List that blocks DNS queries from known malicious domains, which prevents DNS from responding to queries from these domains. Поскольку ответ от DNS-сервера не отправляется, истекает время ожидания запроса DNS участника домена. Because no response is sent from the DNS server, the malicious domain member’s DNS query times out.
Еще один пример — создание списка разрешений фильтра запросов, который позволяет только определенному набору клиентов разрешать определенные имена. Another example is to create a query filter Allow List that allows only a specific set of clients to resolve certain names.
Условия фильтра запросов Query filter criteria
Фильтры запросов можно создавать с помощью любых логических сочетаний (и/или/или не) следующих критериев. You can create query filters with any logical combination (AND/OR/NOT) of the following criteria.
Имя Name | Описание Description |
---|---|
Подсеть клиента Client Subnet | Имя предопределенной клиентской подсети. Name of a predefined client subnet. Используется для проверки подсети, из которой был отправлен запрос. Used to verify the subnet from which the query was sent. |
Транспортный протокол Transport Protocol | Транспортный протокол, используемый в запросе. Transport protocol used in the query. Возможные значения: UDP и TCP. Possible values are UDP and TCP. |
протокол IP Internet Protocol | Сетевой протокол, используемый в запросе. Network protocol used in the query. Возможные значения: IPv4 и IPv6. Possible values are IPv4 and IPv6. |
IP-адрес интерфейса сервера Server Interface IP address | IP-адрес сетевого интерфейса DNS-сервера, получившего запрос DNS. IP address of the network interface of the DNS server that received the DNS request. |
Полное доменное имя. FQDN | Полное доменное имя записи в запросе с возможностью использования подстановочных знаков. Fully Qualified Domain Name of record in the query, with the possibility of using a wild card. |
Тип запроса Query Type | Тип записи, запрашиваемой ( , SRV, txt и т. д. ) Type of record being queried (A, SRV, TXT, etc.). |
Время дня Time of Day | Время суток, когда получен запрос. Time of day the query is received. |
В следующих примерах показано, как создать фильтры для политики DNS, которые либо блокируют, либо разрешают запросы разрешения имен DNS. The following examples show you how to create filters for DNS policy that either block or allow DNS name resolution queries.
В примерах команд в этом разделе используется команда Windows PowerShell Add-днссерверкуериресолутионполици. The example commands in this topic use the Windows PowerShell command Add-DnsServerQueryResolutionPolicy. Дополнительные сведения см. в разделе Add-днссерверкуериресолутионполици. For more information, see Add-DnsServerQueryResolutionPolicy.
Блокировка запросов из домена Block queries from a domain
В некоторых случаях может потребоваться блокировать разрешение DNS-имен для доменов, которые определены как вредоносные, или для доменов, которые не соответствуют рекомендациям по использованию вашей организации. In some circumstances you might want to block DNS name resolution for domains that you have identified as malicious, or for domains that do not comply with the usage guidelines of your organization. Можно выполнять блокировку запросов для доменов с помощью политики DNS. You can accomplish blocking queries for domains by using DNS policy.
Политика, настроенная в этом примере, не создается в какой-либо конкретной зоне. вместо этого создается политика уровня сервера, которая применяется ко всем зонам, настроенным на DNS-сервере. The policy that you configure in this example is not created on any particular zone – instead you create a Server Level Policy that is applied to all zones configured on the DNS server. Политики уровня сервера оцениваются первыми и, таким же, сначала сопоставляются при получении запроса DNS-сервером. Server Level Policies are the first to be evaluated and thus first to be matched when a query is received by the DNS server.
В следующем примере команда настраивает политику на уровне сервера, чтобы заблокировать любые запросы с суффиксом домена contosomalicious.com. The following example command configures a Server Level Policy to block any queries with the domain suffix contosomalicious.com.
Add-DnsServerQueryResolutionPolicy -Name «BlockListPolicy» -Action IGNORE -FQDN «EQ,*.contosomalicious.com» -PassThru
Если для параметра действия задано значение игнорировать, DNS-сервер настроен на удаление запросов без ответа. When you configure the Action parameter with the value IGNORE, the DNS server is configured to drop queries with no response at all. Это приводит к истечению времени ожидания DNS-клиента в вредоносном домене. This causes the DNS client in the malicious domain to time out.
Блокировка запросов из подсети Block queries from a subnet
В этом примере можно заблокировать запросы из подсети, если они будут заражены некоторыми вредоносными программами и пытаются связаться с вредоносными сайтами с помощью DNS-сервера. With this example, you can block queries from a subnet if it is found to be infected by some malware and is trying to contact malicious sites using your DNS server.
«Add-DnsServerClientSubnet-Name» MaliciousSubnet06 «-IPv4Subnet 172.0.33.0/24-PassThru ` Add-DnsServerClientSubnet -Name «MaliciousSubnet06» -IPv4Subnet 172.0.33.0/24 -PassThru
Add-DnsServerQueryResolutionPolicy-Name «BlockListPolicyMalicious06»-Action IGNORE-Клиентсубнет «EQ, MaliciousSubnet06″-PassThru » Add-DnsServerQueryResolutionPolicy -Name «BlockListPolicyMalicious06» -Action IGNORE -ClientSubnet «EQ,MaliciousSubnet06» -PassThru `
В следующем примере показано, как использовать критерии подсети в сочетании с критериями полного доменного имени, чтобы блокировать запросы определенных вредоносных доменов от зараженных подсетей. The following example demonstrates how you can use the subnet criteria in combination with the FQDN criteria to block queries for certain malicious domains from infected subnets.
Add-DnsServerQueryResolutionPolicy -Name «BlockListPolicyMalicious06» -Action IGNORE -ClientSubnet «EQ,MaliciousSubnet06» –FQDN “EQ,*.contosomalicious.com” -PassThru
Блокировка типа запроса Block a type of query
Может потребоваться запретить разрешение имен для определенных типов запросов на серверах. You might need to block name resolution for certain types of queries on your servers. Например, можно заблокировать запрос ANY, который можно использовать злонамеренно для создания атак с усилением. For example, you can block the ‘ANY’ query, which can be used maliciously to create amplification attacks.
Add-DnsServerQueryResolutionPolicy -Name «BlockListPolicyQType» -Action IGNORE -QType «EQ,ANY» -PassThru
Разрешить запросы только из домена Allow queries only from a domain
Политику DNS можно использовать только для блокировки запросов. их можно использовать для автоматического утверждения запросов из конкретных доменов или подсетей. You can not only use DNS policy to block queries, you can use them to automatically approve queries from specific domains or subnets. При настройке списков разрешения DNS-сервер обрабатывает запросы только из разрешенных доменов, блокируя все остальные запросы из других доменов. When you configure Allow Lists, the DNS server only processes queries from allowed domains, while blocking all other queries from other domains.
Приведенный ниже пример команды позволяет выполнять запросы к DNS-серверу только компьютерам и устройствам в contoso.com и дочерних доменах. The following example command allows only computers and devices in the contoso.com and child domains to query the DNS server.
Add-DnsServerQueryResolutionPolicy -Name «AllowListPolicyDomain» -Action IGNORE -FQDN «NE,*.contoso.com» -PassThru
Разрешить запросы только из подсети Allow queries only from a subnet
Можно также создать списки разрешений для IP-подсетей, чтобы все запросы, не исходящие из этих подсетей, игнорировались. You can also create Allow Lists for IP subnets, so that all queries not originating from these subnets are ignored.
Add-DnsServerClientSubnet -Name «AllowedSubnet06» -IPv4Subnet 172.0.33.0/24 -PassThru Add-DnsServerQueryResolutionPolicy -Name «AllowListPolicySubnet” -Action IGNORE -ClientSubnet «NE, AllowedSubnet06» -PassThru
Разрешить только определенные Ктипес Allow only certain QTypes
Списки разрешений можно применять к Ктипес. You can apply Allow Lists to QTYPEs.
Например, если у вас есть внешние клиенты, которые запрашивают интерфейс DNS-сервера 164.8.1.1, запрашиваются только определенные Ктипес, а также другие Ктипес, такие как записи SRV или TXT, которые используются внутренними серверами для разрешения имен или для целей мониторинга. For example, if you have external customers querying DNS server interface 164.8.1.1, only certain QTYPEs are allowed to be queried, while there are other QTYPEs like SRV or TXT records which are used by internal servers for name resolution or for monitoring purposes.
Add-DnsServerQueryResolutionPolicy -Name «AllowListQType» -Action IGNORE -QType «NE,A,AAAA,MX,NS,SOA» –ServerInterface “EQ,164.8.1.1” -PassThru
Вы можете создавать тысячи политик DNS в соответствии с требованиями к управлению трафиком, а все новые политики применяются динамически, без перезапуска DNS-сервера во входящих запросах. You can create thousands of DNS policies according to your traffic management requirements, and all new policies are applied dynamically — without restarting the DNS server — on incoming queries.