RouterOS i szyfrowane połączenia DNS
Nowe wersje RouterOS posiadają wsparcie dla szyfrowanych połączeń DNS. Szyfrowanie odbywa się za pomocą HTTPS czyli jest to DNS over HTTPS (DoH). Pamiętaj, że standardowo ruch DNS *nie* jest szyfrowany!
Nowe wersje RouterOS posiadają wsparcie dla szyfrowanych połączeń DNS. Szyfrowanie odbywa się za pomocą HTTPS czyli jest to DNS over HTTPS (DoH). Pamiętaj, że standardowo ruch DNS *nie* jest szyfrowany!
Opcja /IP/DNS umożliwia obsługę klienta jaki i serwera DNS
1. Klient DNS
Jak każdy system z protokołem IP RouterOS posiadaa klienta DNS pozwalającego zmieniać nazwy domenowe na adresy IP.
Jak każdy system z protokołem IP RouterOS posiadaa klienta DNS pozwalającego zmieniać nazwy domenowe na adresy IP.
– aby ustawić serwery DNS dla naszego RouterOS idziemy do menu /IP/DNS
– możemy tu podać kilka serwerów, mogą być lokalne jak i w sieci Internet
– w polu Cache Size określamy jak duży bufor DNS będzie wspierany przez nasz RouterOS
– jeśli nasz RouterOS obsługuje wielu klientów warto zwiększyć tą wartość
– nasz RouterOS jest klientem DNS ale także może pełnić rolę bufora zapytań DNS dla hostów w naszej sieci przyspieszając rozwiązywanie nazw DNS–>IP
– aby włączyć buforowanie zapytań (i tym samym stać się lokalnym serwerem DNS) zaznaczymy opcję „Allow Remote Requests”
– od tego momentu hosty w sieci LAN mogą korzystać z naszego RouterOS jak z serwera DNS
– standardowo połączenie klienta do naszego RouterOS jak i RouterOS do serwera DNS nie jest szyfrowane i to może być poważnym problemem w kwestii bezpieczeństwa naszego IT
2. Połączenia szyfrowane
– powyższe połączenia *nie* są szyfrowane
– aby włączyć szyfrowanie trzeba ustawić opcję ‚Use DoH Server’
– możemy podać jeden z publicznych adresów serwerów wspierających szyfrowanie np. Cloudflare:
CloudFlare
https://1.1.1.1/dns-query
– po zatwierdzeniu opcja ta ma przewagę nad polem ‚Servers’ czyli jeśli tylko połączenie szyfrowane może być zestawione to podane wyżej serwery nie będą używane
– sprawdzamy czy działa za pomocą wbudowanej konsoli:
Inny dostawca szyfrowanego DNS
Zamiast Cloudflare możemy oczywiście zastosować inny serwer DNS potrafiący szyfrować połączenia np. OpenDNS, który ma dodatkowo funkcję filtrowania treści po nazwach DNS. Proste ale na początek dobre zabezpieczenie z serii kontroli rodzicielskiej. W tym wypadku pole Use DoH Server ma zawartość taką:
https://doh.opendns.com/dns-query
Ponieważ posługujemy się tu adresem DNS zanim będziemy do niego mieli dostęp trzeba dodać statyczny wpis kierujący pod odpowiedni adres IP:
– W oknie /IP/DNS klikamy na Static
– W oknie jakie się pojawi klikamy w niebeski plus i dodajemy nowy wpis:
– Zatwierdzamy OK
– Teraz możemy założyć konto w serwisie https://opendns.com/ celem włączenie filtrowania „niewłaściwych” treści. Poniżej fragment konfiguracji konta OpenDNS:
3. Certyfikat połączenia
Samo szyfrowanie ruchu DNS to mało. Choć zapewnia bezpieczeństwo transmitowanych zapytań i odpowiedzi to nie gwarantuje, że podłączamy się do zaufanego serwera. Funkcjonalność taką daje certyfikat serwera DNS, podobnie jak certyfikat połączenia HTTPS. Podniesie to bezpieczeństwo korzystania z danych dostarczanych z serwera DNS czyli odpowiedzi na zapytania.
Samo szyfrowanie ruchu DNS to mało. Choć zapewnia bezpieczeństwo transmitowanych zapytań i odpowiedzi to nie gwarantuje, że podłączamy się do zaufanego serwera. Funkcjonalność taką daje certyfikat serwera DNS, podobnie jak certyfikat połączenia HTTPS. Podniesie to bezpieczeństwo korzystania z danych dostarczanych z serwera DNS czyli odpowiedzi na zapytania.
sposób a)
– w przeglądarce wchodzimy na stronę serwera DNS (tego z pola DoH) i pobieramy jego certyfikat (oczywiście jeśli korzystasz z innego dostawcy DNS musisz wejść na jego serwis)
– klikamy w kłódkę i „Połączenie jest bezpieczne’
– kolejno klikamy w ‚Certyfikat jest ważny’
– w oknie jakie się pojawi klikamy w zakładkę Szczegóły i przycisk Eksportuj
– zapisujemy plik certyfikatu np. pod nazwą: cloudflare-dns.com
– otwieramy /Files w aplikacji WinBox i przeciągamy tam powyższy plik
– idziemy do do sekcji /System/Certificates
– klikamy w Import
– wybieramy wcześniej wgrany do /Files plik
– importujemy klikając Import
– certyfikat pojawi się na liście certyfikatów znanych naszemu RouterOS i jak widać jest ważny 90 dni
– pamiętaj, że certyfikat ma datę ważności po której powyższe czynności trzeba powtórzyć
– w sekcji /IP/DNS włączamy sprawdzanie certyfikatów i zatwierdzamy klikając Apply
– patrzymy w logi i pingujemy z konsoli np. adres: wp.pl
– jeśli certyfikat jej poprawny uzyskamy odpowiedź na pinga
– celem sprawdzenia czy weryfikacja certyfikatów działa włączamy logi
– w terminalu WinBox pingujemy dowolny host
– jeśli w logach pojawi się błąd nazwa hosta nie zostanie rozwiązana na adres IP jak niżej:
– problemem jest to, że nasz RouterOS choć posiada certyfikat samego serwera to może go zweryfikować ponieważ nie posiada certyfikatu instytucji nadrzędnej (czyli wydającej certyfikat dla DNS CloudFlare)
– idziemy zatem dalej w naszej konfiguracji aby wszystko zadziałało:
sposób b)
– ustawiamy serwer DNS na dowolny ale działający koniecznie po adresie IP, wyłączamy opcję weryfikacji certyfikatów DoH
– ustawiamy serwer DNS na dowolny ale działający koniecznie po adresie IP, wyłączamy opcję weryfikacji certyfikatów DoH
– używając konsoli pobieramy plik certyfikatów głównych urzędów certyfikacyjnych tzw. CA za pomocą poleceń
>/tool fetch url=https://curl.se/ca/cacert.pem
>/certificate import file-name=cacert.pem passphrase=””
>/certificate import file-name=cacert.pem passphrase=””
– certyfikaty pojawią się w /System/Certificates
– usuwamy wpis 1.1.1.1 z pola Servers, włączamy opcję DoH + sprawdzanie certyfikatów i zatwierdzamy
– ponownie testujemy z konsoli i teraz działa
3.1 Automatyczna aktualizacja certyfikatów
Aby nasze certyfikaty były zawsze aktualnie można ustawić ich automatyczne pobieranie np. co dobę
– tworzymy w sekcji /System/Script skrypt o nazwie np. „DNS_DoH_pobranie_certyfikatow” i zawartości jak niżej
– Wywołanie skryptu dodamy do /System/Schedule (poniżej ustawione na uruchamianie skryptu codziennie o 02:00:00)