DNSSEC Technologia ochrony DNS w systemie Windows Server 2012

Wady DNS

System rozpoznawania nazw DNS, który jest jednym z fundamentów nowoczesnego systemu interakcji sieciowych, został opracowany ponad 20 lat temu, kiedy prawie nie zastanawiano się nad kwestiami ochrony informacji. Jedną z głównych wad systemu DNS jest możliwość sfałszowania odpowiedzi na zapytanie DNS.

Problem polega na tym, że odpowiedź serwera DNS nie jest w żaden sposób sprawdzana, co oznacza, że ​​w przypadku uszkodzenia serwera DNS (i przekierowania go do fałszywych serwerów DNS), fałszowania rekordu DNS, zatruwania pamięci podręcznej DNS (zatrucia pamięci podręcznej DNS), można wysłać użytkownika do dowolnego Adres IP, a użytkownik będzie miał całkowitą pewność, że współpracuje z legalną stroną internetową lub usługą. Metody te są szeroko stosowane przez atakujących, przekierowujących użytkowników na strony zawierające złośliwe kody lub zbierających ich dane osobowe (hasła, numery kart kredytowych itp.) Za pomocą tzw. ataki farmaceutyczne.

Dlaczego potrzebujesz technologii DNSSEC?

Rozszerzenia bezpieczeństwa DNS (DNSSEC) - technologia ma na celu poprawę bezpieczeństwa usługi DNS poprzez zastosowanie podpisów kryptograficznych, które jednoznacznie zweryfikują autentyczność informacji otrzymanych z serwera DNS. Tj. wszystkie żądania i odpowiedzi serwera DNS z obsługą DNSSEC muszą mieć podpis cyfrowy, którego ważność może zostać zweryfikowana przez klienta przy użyciu klucza publicznego. Te podpisy cyfrowe są tworzone podczas podpisywania strefy (zastosowanie do niej DNSSEC).

Uproszczony mechanizm weryfikacji DNSSEC działa w następujący sposób: klient wysyła żądanie do serwera DNS, serwer zwraca cyfrowo podpisaną odpowiedź DNS. Ponieważ klient ma klucz publiczny urzędu certyfikacji, który podpisał rekordy DNS, może odszyfrować podpis (wartość skrótu) i zweryfikować odpowiedź DNS. Aby to zrobić, zarówno klient, jak i serwer DNS muszą być skonfigurowane do korzystania z tej samej kotwicy zaufania. Zaufaj kotwicy - Wstępnie skonfigurowany klucz publiczny powiązany z określoną strefą DNS. Jeśli serwer DNS obsługuje wiele stref, można użyć wielu kotwic zaufania..

Należy zauważyć, że głównym celem DNSSEC jest ochrona przed fałszowaniem i modyfikacją zapytań i odpowiedzi DNS. Ale dane przesyłane przez samą sieć nie są szyfrowane (chociaż poufność przesyłanych danych DNS można zapewnić przez szyfrowanie, ale jest to opcjonalne i nie jest głównym celem DNSSEC).

Podstawowe składniki DNSSEC są zdefiniowane w następujących standardach RFC:

  • RFC 4033
  • RFC 4034
  • RFC 4035

DNSSEC w systemach Windows

Obsługa technologii DNSSEC pojawiła się w Windows Server 2008 R2 i Windows 7. Jednak ze względu na złożoność i nieoczywistość ustawień, nie była szeroko stosowana. DNSSEC otrzymał dalszy rozwój w systemie Windows Server 2012, w którym funkcjonalność DNSSEC została znacznie rozszerzona, i sugeruje możliwość konfiguracji poprzez interfejs graficzny.

W tym artykule opiszemy podstawową instalację i konfigurację DNSSEC w oparciu o serwer DNS z systemem Windows Server 2012, utworzymy podpisaną strefę i punkty zaufania.

Instalowanie i konfigurowanie DNSSEC w systemie Windows Server 2012

Utwórz nową strefę DNS dnssec.contoso.com i dodaj do niej jeden rekord serwera SRV12 o adresie 192.168.1.14.

Uwaga. W systemie Windows 8/2012 zamiast używania narzędzia nslookup lepiej jest użyć polecenia cmdlet Resolve-DnsName programu Powershell, aby uzyskać informacje z serwera DNS.
Resolve-DnsName srv12.dnssec.contoso.com -Server SRV12-SUB-CA -DnssecOk

Ponieważ strefa nie jest podpisana, żądanie nie zwróci rekordów RRSIG.

Podpisujemy cyfrowo wewnętrzną strefę DNS dnssec.contoso.com. Aby to zrobić, w konsoli DNS kliknij strefę prawym przyciskiem myszy i wybierz DNSSEC-> Podpisz strefę.

W wyświetlonym Kreatorze podpisywania stref pozostaw wszystkie ustawienia domyślne (Użyj ustawień domyślnych, aby podpisać strefę) -> Dalej -> Dalej -> Zakończ.

Po zakończeniu pracy kreatora w podpisanej strefie zostaną automatycznie utworzone następujące nowe rekordy zasobów:

  • RRSIG (Resource Read Signature) - Signature Resource Record
  • DNSKEY (A Public Key) - przechowuje publiczną część klucza i jego identyfikatory
  • DS (sygnatariusz delegacji) - zawiera skrót nazwy domeny spadkobiercy i jego klucz KSK
  • NSEC (Next Secure) i NSEC3 (Next Secure 3) - używane do niezawodnej ochrony przed atakami fałszowania

Po podpisaniu strefy klucz publiczny zostanie zapisany w pliku% windir% \ system32 \ dns \ keyset-dnssec.

Importujemy do DNS klucz publiczny strefy (ta sama kotwica zaufania), przechodząc do sekcji Punkt zaufania w konsoli DNS, wybierając import -> DNSKEY i określając ścieżkę do pliku keyset-dnssec.

Uwaga. Ten klucz musi być rozpowszechniany na wszystkich serwerach DNS, które będą uczestniczyć w bezpiecznym buforowaniu danych podpisanej strefy.

W wyniku zaimportowania klucza, w sekcji Punkty zaufania -> dnssec pojawią się dwa klucze DNSKEY (jeden klucz jest aktywny, drugi jest w trybie gotowości).

W systemie Windows Server 2012 możliwe jest automatyczne replikowanie kluczy Trust Anchors do wszystkich kontrolerów domeny w lesie obsługujących tę strefę DNS. Aby to zrobić, we właściwościach żądanej strefy (dnssec) na karcie Zaufaj kotwicy włącz opcję Włącz dystrybucję kotwic zaufania dla tej strefy i zapisz zmiany.

Spróbujmy jeszcze raz przesłuchać tę strefę od klienta.

Jak widać, w odpowiedzi serwera DNS znajdują się informacje o rekordzie RRSIG i podpisie cyfrowym.

Konfigurowanie klientów systemu Windows do korzystania z DNSSEC

Aby zmusić klientów systemu operacyjnego Windows do wymuszenia tylko „bezpiecznych” (DNSSEC) żądań, tj. akceptuj dane DNS tylko wtedy, gdy ich podpis cyfrowy jest prawidłowy, konieczne jest użycie NRPT (Tabela zasad rozpoznawania nazw) przy użyciu obiektu zasad grupy.

Aby to zrobić, w sekcji GPO Konfiguracja komputera -> Zasady -> Ustawienia systemu Windows -> Zasady rozpoznawania nazw na zakładce DNSSEC włącz opcje:

  • Włącz DNSSEC w tej regule
  • Wymagaj od klientów DNS sprawdzenia, czy dane nazwy i adresu zostały sprawdzone przez serwer DNS

Pozostaje przypisać polisę do żądanej jednostki organizacyjnej. Po zastosowaniu zasad upewnij się, że klient jest skonfigurowany do korzystania z „bezpiecznego” DNS:

Get-DnsClientNrptPolicy

Wartość DNSSecValidationRequired = True, tj. klient wymaga zweryfikowanych odpowiedzi DNS.

W przypadku, gdy odpowiedź otrzymana z serwera DNS nie jest podpisana lub certyfikaty są podpisane niepoprawnie, polecenie zwróci błąd Niezabezpieczony pakiet DNS.

DNSSEC dla obszarów zewnętrznych

Aby serwer DNS wymagał obowiązkowej weryfikacji DNSSEC dla stref zewnętrznych, musisz to zrobić we właściwościach na karcie Zaawansowane włącz opcję Włącz sprawdzanie poprawności DNSSEC dla zdalnych odpowiedzi.

Możesz zaimportować kotwice zaufania strefy głównej ręcznie (opisane powyżej) lub za pomocą polecenia:

dnscmd / RetrieveRootTrustAnchors
Wskazówka. Aby DNSSEC działał poprawnie, musisz wprowadzić szereg zmian w zaporach ogniowych:

  1. Otwórz port 53 po obu stronach protokołów TCP i UDP
  2. Ponieważ rozmiar danych w pakiecie DNSSec przekracza 512 bajtów, konieczne jest zezwolenie na przesyłanie pakietów DNS większych niż 512 bajtów przez UDP i TCP