Rekurencja DNS jest niepewna, ale konieczna w przypadku aplikacji wewnętrznych?

16

W zarządzaniu systemem Windows Server 2008 serwer obsługuje DNS (serwer nazw) dla niektórych domen, a także hostuje niektóre aplikacje publicznie dostępne.

Skanowanie bezpieczeństwa wykazało, że konfiguracja DNS jest niepewna, ponieważ umożliwia rekurencyjne zapytania.

Próbowano wyłączyć zapytania rekurencyjne, ale wystąpiło kilka problemów (e-maile wysłane z aplikacji lokalnych nie zostały dostarczone, a aplikacja działająca lokalnie, która łączy się z witryną innej firmy, nie mogła rozpoznać nazwy domeny dla połączenia itp.). Wygląda więc na to, że żądania DNS pochodzące z samego serwera opierają się na zapytaniach rekurencyjnych.

Czy istnieje sposób na wyłączenie zapytań rekurencyjnych przez DNS hostowany na serwerze, jednocześnie umożliwiając działanie zapytań DNS pochodzących z serwera? Zastanawiam się, czy możemy wyłączyć zapytania rekurencyjne na lokalnym serwerze DNS i ustawić wychodzący DNS w ustawieniach sieciowych na coś zewnętrznego (np. 8.8.8.8), aby wychodzące zapytania DNS były tam wysyłane jako pierwsze, a DNS tego serwera tylko się kończy uzyskiwanie zapytań o domeny, które faktycznie hostują lokalnie.

Dziękuję za Twój czas!

ilasno
źródło

Odpowiedzi:

11

Dobrym pomysłem jest nie oferowanie funkcji wyszukiwania rekurencyjnego w całym Internecie, więc skonfigurowanie serwera DNS tak, aby odpowiadał tylko na zapytania, na które jest autorytatywny, to Good Thing TM .

Na pierwszy rzut oka wydaje się, że wniosek, do którego doszedłeś w ostatnim akapicie, jest dobry: Skonfiguruj własne ustawienia TCP / IP serwera, aby korzystał z serwera DNS, który jest autoryzowany do wyszukiwania rekurencyjnego. Proces serwera DNS nie korzysta z serwerów DNS skonfigurowanych w ustawieniach TCP / IP na karcie sieciowej komputera serwera do niczego konkretnego. Zamiast tego przesyła żądania (lub korzysta ze wskazówek dotyczących roota) na podstawie konfiguracji serwera DNS.

Gdy aplikacje działające na serwerze podejmą próbę zapytania o domeny, serwer DNS działający na tym komputerze jest autorytatywny dla żądania, ostatecznie przejdzie do procesu serwera DNS działającego na tym komputerze i odpowiedź na zapytanie.

Evan Anderson
źródło
14

Czy istnieje sposób na wyłączenie zapytań rekurencyjnych przez DNS hostowany na serwerze, jednocześnie umożliwiając działanie zapytań DNS pochodzących z serwera?

Nie z serwerem DNS Microsoftu, nie ma.

Dzięki serwerowi DNS ISC, BIND, można było łączyć rzeczy z widokami. Serwer DNS Microsoft nie ma takiego mechanizmu. Tak więc dla każdego wystąpienia serwera Microsoft DNS należy wybrać, czy jest to serwer DNS o treści publicznej , czy lokalny serwer DNS proxy . Nie może łączyć rzeczy i udawać, że jest różnego rodzaju serwerem dla różnych klientów DNS.

Usługa / narzędzie do testowania bezpieczeństwa ma rację. To jest najlepsza praktyka, aby nie dostarczać usługi proxy - każdy rodzaj usługi proxy: czy to usługa proxy HTTP, DNS proxy, usługę lub usługi SMTP Submission - do reszty Internecie znajdującą się poza własnym miejscu. Państwo bardzo dużo powinny mieć oddzielne serwery : zawartość serwera DNS publikowanie danych DNS publicznego, o swoich nazw domen, które zostały zarejestrowane, aby wszyscy w internecie; oraz lokalny serwer DNS proxy, który wykonuje pomyłkowe rozwiązywanie zapytań w imieniu komputerów w twojej sieci LAN / organizacji, który jest dostępny tylko dla komputerów w twojej organizacji / w twojej sieci LAN. Z serwerem DNS Microsoftu nie jest to szczególnie łatwe.

Byłoby to szczególnie trudne, gdyby Twój komputer był także kontrolerem domeny. Oświadczasz, że ten komputer jest dostępny bezpośrednio z całego Internetu. Jeśli taki komputer jest kontrolerem domeny, powinieneś teraz przemyśleć swoją organizację sieciową . Będziesz wystawiał publicznie straszną liczbę usług wewnętrznych, nie tylko usługę proxy DNS. Pracujmy więc nad domniemaniem, że nie jest to kontroler domeny.

Ponieważ nie jest to kontroler domeny, a jedynie serwer członkowski , nie ma wymogu, aby klient DNS na komputerze korzystał z własnego serwera DNS (lub początkowo serwera DNS innego kontrolera domeny) jako serwera proxy Usługa DNS, tak jest w przypadku kontrolerów domeny. Jeśli tak, nie można wyłączyć usługi proxy DNS na serwerze DNS komputera. Na szczęście nie jest to kontroler domeny, a jego klient DNS może korzystać z innej maszyny do obsługi DNS serwera proxy, a nie z samej siebie.

Jednak klient DNS na komputerze serwera członkowskiego musi nadal korzystać z wewnętrznego serwera proxy DNS. Nie możesz po prostu skierować go na jakiś zewnętrzny serwer DNS, taki jak te dostarczone przez Twojego dostawcę usług internetowych, Google lub inną firmę, która nie zna wszystkich danych DNS używanych przez Active Directory w Twojej sieci LAN . Możesz jednak skierować klienta DNS urządzenia na serwer DNS na co najmniej jednym kontrolerze domeny. Jest to dość proste i właśnie to robisz na wszystkich swoich stacjach roboczych w sieci LAN. Klient DNS na serwerze członkowskim musi być skonfigurowany tak jak klienci DNS na wszystkich twoich stacjach roboczych .

Biorąc pod uwagę, że klient DNS twojego komputera nie korzysta z serwera DNS działającego na maszynie dla usługi proxy DNS, po prostu skonfiguruj serwer DNS Microsoftu, aby nikomu nie udostępniał usługi proxy DNS w żadnej formie.

Dalsza lektura

JdeBP
źródło
Doskonały opis.
Nic
Doceniam informacje, dziękuję! Pracuję tutaj z mniejszą infrastrukturą, więc przedstawione rozwiązanie jest przesadą w tym scenariuszu.
ilasno
Krótka uwaga, że ​​nie jest to już prawdą od Server 2016 - system Windows obsługuje teraz DNS typu split-brain , w tym opcję ograniczenia wyszukiwania rekurencyjnego w zależności od adresu klienta. Jednak skonfigurowanie niezależnego serwera dla żądań publicznych jest nadal prostszą opcją.
Bob
5

Jak stwierdził Evan w swojej odpowiedzi, twoje aplikacje muszą korzystać z komponentu klienta DNS na serwerze, który jest całkowicie niezależny od komponentu serwera DNS. Składnik serwera DNS można skonfigurować tak, aby nie wykonywał rekurencji, co pozwala mu odpowiadać na zapytania przesłane do niego tylko dla stref DNS, dla których jest autorytatywny.

Aplikacje mogą korzystać z serwerów DNS skonfigurowanych we właściwościach TCP / IP odpowiedniej karty sieciowej, które można skonfigurować tak, aby korzystały z dowolnych serwerów DNS wykonujących rekurencję (takich jak serwery DNS Google). Serwery DNS skonfigurowane we właściwościach TCP / IP odpowiedniej karty sieciowej nie muszą wskazywać serwera DNS działającego na tym samym serwerze.

joeqwerty
źródło
0

Niedawno miałem ten sam problem i nasz serwer DNS był używany do ataków wzmacniających. Ale muszę kontynuować rekurencję dla naszych innych wewnętrznych serwerów.

Jeśli masz router Cisco, oto możliwa poprawka. Przeniosłem nasz zewnętrzny DNS na router Cisco 7200VXR i skonfigurowałem go tak, aby odpowiadał tylko określonym strefom DNS. Przeszukuje wewnętrzne serwery DNS, więc nie musisz wprowadzać wszystkiego w dwóch miejscach.

Oto fragment używanej przeze mnie konfiguracji 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

Nie zapomnij również pozwolić pakietom DNS na router z listą dostępu, taką jak:

permit udp any host 1.2.3.4 eq domain
Brain2000
źródło