При управлении Windows Server 2008 на сервере размещается DNS (это сервер имен) для некоторых доменов, а также размещаются некоторые общедоступные приложения.
Сканирование безопасности показало, что конфигурация DNS небезопасна, поскольку разрешает рекурсивные запросы.
Была предпринята попытка отключить рекурсивные запросы, но возникло несколько проблем (электронные письма, отправленные из локальных приложений, не были доставлены, а приложение, работающее локально, которое подключается к стороннему сайту, не могло разрешить доменное имя для подключения и т. Д.). Таким образом, похоже, что запросы DNS, которые исходят от самого сервера, зависят от рекурсивных запросов для работы.
Есть ли способ отключить рекурсивные запросы DNS, размещенного на сервере, но при этом разрешить работу DNS-запросов, исходящих на сервере? Мне интересно, можем ли мы отключить рекурсивные запросы на локальном DNS-сервере и установить исходящий DNS в сетевых настройках на что-то внешнее (например, 8.8.8.8), чтобы исходящие DNS-запросы шли туда первыми, а DNS этого сервера только заканчивался до получения запросов о доменах, которые он фактически размещает локально.
Спасибо за ваше время!
Есть ли способ отключить рекурсивные запросы DNS, размещенного на сервере, но при этом разрешить работу DNS-запросов, исходящих на сервере?
С DNS-сервером ISC, BIND, можно было избавиться от представлений. DNS-сервер Microsoft не имеет такого механизма. Таким образом, для любого конкретного экземпляра DNS-сервера Microsoft необходимо выбрать, является ли он общедоступным. содержание DNS-сервер или локальный сайт доверенное лицо DNS-сервер. Он не может навязывать дела и притворяться разными типами серверов для разных DNS-клиентов.
Сервис / инструмент тестирования безопасности совершенно прав. Это является Лучшая практика - не предоставлять услуги прокси - любой своего рода прокси-сервис: будь то HTTP-прокси-сервис, DNS-прокси-сервис или SMTP-сервис - для остальной части Интернета вне собственного сайта. Ты очень должен иметь отдельные серверы: контентный 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-сервера так, чтобы он отвечал только на запросы, для которых он является авторитетным, - это хорошо.TM.
На первый взгляд кажется, что вывод, к которому вы пришли в последнем абзаце, является хорошим: настройте собственные параметры TCP / IP сервера для использования DNS-сервера, который является уполномочен предоставлять рекурсивный поиск. Процесс DNS-сервера не использует DNS-серверы, настроенные в настройках TCP / IP на сетевой карте серверного компьютера, ни для чего конкретного. Скорее, он пересылает запросы (или использует корневые ссылки) на основе конфигурации DNS-сервера.
Когда приложения, работающие на сервере, пытаются запросить домены, DNS-сервер, работающий на этом компьютере, является полномочным для запроса, в конечном итоге, дойдет до процесса DNS-сервера, запущенного на этом компьютере, и на запрос будет дан ответ.
Как заявил Эван в своем ответе, ваши приложения должны использовать клиентский компонент DNS на сервере, который полностью независим от компонента сервера DNS. Компонент DNS-сервера можно настроить так, чтобы он не выполнял рекурсию, что позволяет ему отвечать на отправленные ему запросы только для зон DNS, для которых он является полномочным.
Приложения могут использовать DNS-серверы, настроенные в свойствах TCP / IP соответствующей сетевой карты, которые можно настроить для использования любых DNS-серверов, которые будут выполнять рекурсию (например, DNS-серверы Google). DNS-серверы, настроенные в свойствах TCP / IP соответствующей сетевой карты, не должны указывать на DNS-сервер, работающий на том же сервере.
У меня совсем недавно была такая же проблема, и наш DNS-сервер использовался для атак усиления. Но мне нужно сохранить рекурсию для других наших внутренних серверов.
Если у вас есть маршрутизатор Cisco, вот возможное решение. Я переместил наш внешний DNS на маршрутизатор Cisco 7200VXR и настроил его так, чтобы он отвечал только на определенные зоны DNS. Он будет запрашивать внутренние DNS-серверы, поэтому вам не нужно вводить все в двух местах.
Вот фрагмент конфигурации Cisco, который я использовал:
ip dns view default
dns forwarder 192.168.0.xx (internal DNS server)
domain round-robin
ip dns view-list default
view default 1
restrict name-group 1
ip dns name-list 1 permit abc.com
ip dns name-list 1 permit def.com
ip dns name-list 1 permit anyotherdomainthatyouhost.com
ip dns name-list 1 permit 3.2.1.in-addr.arpa (needed for reverse PTR lookups)
interface fastethernet0/0 (the interface where the IP address is that will host DNS)
ip dns view-group default
ip address 1.2.3.4 secondary (use the public facing IP you will use to host DNS)
ip dns server
Кроме того, не забудьте разрешить DNS-пакеты для маршрутизатора со списком доступа, например:
permit udp any host 1.2.3.4 eq domain