Есть ли способ отключить рекурсивные запросы от DNS, размещенной на сервере, при этом позволяя работать DNS-запросам, исходящим от сервера?
Не с DNS-сервера Microsoft, нет.
С DNS-сервером ISC, BIND, можно связывать вещи с представлениями. DNS-сервер Microsoft не имеет такого механизма. Таким образом, для любого конкретного экземпляра DNS-сервера Microsoft необходимо выбрать, является ли он DNS-сервером с общедоступным контентом или локальным прокси- сервером DNS. Он не может обманывать и притворяться разными серверами для разных DNS-клиентов.
Сервис / инструмент тестирования безопасности совершенно прав. Это является хорошей практикой не предоставлять прокси - сервис - любой тип прокси - службы: будь это HTTP - прокси сервис, DNS прокси - службы или службы SMTP Подчинение - к остальной части Интернета outwith собственного сайта. У вас очень должны быть отдельные серверы : контент-DNS-сервер, публикующий ваши общедоступные DNS-данные, о ваших доменных именах, которые вы зарегистрировали, всем в Интернете; и локальный прокси-сервер DNS, который выполняет основную работу по разрешению запросов от имени компьютеров вашей локальной сети / организации, который доступен только для компьютеров в вашей организации / в вашей локальной сети. С DNS-сервером Microsoft это не так просто.
Было бы особенно сложно, если бы ваша машина была также контроллером домена. Вы утверждаете, что эта машина доступна напрямую из всего Интернета. Если такая машина является контроллером домена, то вам следует переосмыслить свою сетевую организацию сейчас . Вы бы открыли для публики огромное количество внутренних сервисов, а не только прокси-сервис DNS. Итак, давайте предположим, что это не контроллер домена.
Поскольку он не является контроллером домена и является просто рядовым сервером , у вас нет требования, чтобы DNS- клиент на машине использовал собственный DNS- сервер машины (или, изначально, DNS-сервер другого контроллера домена) для прокси Служба DNS, то есть для контроллеров домена. Если бы вы это сделали, вы бы не смогли отключить прокси-службу DNS на DNS-сервере машины. К счастью, это не контроллер домена, и его DNS-клиент может использовать другую машину для прокси-службы DNS, а не себя.
Однако клиент DNS на компьютере рядового сервера все еще должен использовать внутренний прокси-сервер DNS. Вы не можете просто указать на какой-либо внешний DNS-сервер, например, предоставляемый вашим интернет-провайдером, Google или любой другой стороной, которая не знает всех данных DNS, которые Active Directory использует в вашей локальной сети . Однако вы можете указать DNS-клиент машины на DNS-сервере на одном или нескольких контроллерах домена. Это довольно просто, и это то, что вы - в конце концов - уже делаете на всех ваших рабочих станциях в вашей локальной сети. DNS-клиент на вашем рядовом сервере должен быть просто настроен так же, как DNS-клиенты на всех ваших рабочих станциях .
Учитывая, что DNS-клиент вашей машины не использует DNS-сервер, работающий на машине для прокси-службы DNS, вы просто настраиваете DNS-сервер Microsoft, чтобы никому не предоставлять прокси-службу DNS в любой форме.
дальнейшее чтение
Как сказал Эван в своем ответе, ваши приложения должны использовать клиентский компонент DNS на сервере, который полностью независим от компонента DNS-сервера. Компонент DNS-сервера можно настроить так, чтобы он не выполнял рекурсию, что позволяет ему отвечать на запросы, отправленные ему только для тех зон DNS, для которых он является полномочным.
Приложения могут использовать DNS-серверы, настроенные в свойствах TCP / IP соответствующей сетевой карты, которые можно настроить на использование любых DNS-серверов, которые будут выполнять рекурсию (например, DNS-серверы Google). DNS-серверы, настроенные в свойствах TCP / IP соответствующего сетевого адаптера, не должны указывать на DNS-сервер, работающий на этом же сервере.
источник
У меня совсем недавно была такая же проблема, и наш DNS-сервер использовался для усиленных атак. Но мне нужно сохранить рекурсию для других наших внутренних серверов.
Если у вас есть маршрутизатор Cisco, вот возможное исправление. Я переместил наш внешний DNS на маршрутизатор Cisco 7200VXR и настроил его для ответа только на определенные зоны DNS. Он будет запрашивать внутренние DNS-серверы, поэтому вам не нужно вводить все в двух местах.
Вот фрагмент конфигурации Cisco, который я использовал:
Кроме того, не забудьте разрешить передачу пакетов DNS на маршрутизатор со списком доступа, например:
источник