Polecane serwery DNS — które z nich są najszybsze i najlepiej chronią użytkownika?

avlab.pl 2 lat temu
Zdjęcie: polecane serwery dns


DNS (Domain Name System) to usługa odpowiedzialna za przypisywanie adresów IP nazwom internetowym (domenom), czytelnym dla człowieka. Każda strona WWW posiada swój „identyfikator”, czyli wspomniany adres IP. Posiadanie domeny i przypisanie jej do adresy IP serwera udostępniającego usługę WWW nie jest obowiązkowe, natomiast wchodzenie na stronę z użyciem adresu IP nie wygląda profesjonalnie, dodatkowo ogranicza nam możliwości — jeden serwer może obsługiwać wiele domen (np. hosting). Adresy te można poznać poprzez wyszukanie strony np. w bazie GWhois lub dzięki polecenia ping w Windows (które wyświetli jedynie adres IP) czy komenda host w Linux. Jest to o tyle dobrze przemyślane, iż dzięki usługom DNS nie musimy pamiętać adresu IP każdej strony, z którą zamierzamy się połączyć.

UWAGA! Zaktualizowaliśmy test serwerów DNS o nowych dostawców i nowe zagrożenia. Aktualna data testu to 2 sierpnia 2022 roku. 

Polecane serwery DNS

Tak naprawdę trudno wyobrazić sobie świat bez tych serwerów. Adresami IP serwerów DNS zajmuje się IANA i ICANN. W Polsce ich odpowiednikiem jest Naukowa i Akademicka Sieć Komputerowa, czyli NASK. Sam DNS podczas przesyłania zapytań działa na podstawie protokołu UDP w warstwie aplikacji w modelu OSI, na domyślnym porcie 53. Zwykle mamy skonfigurowane dwa adresy IP różnych dostawców DNS-ów, co jest zabezpieczeniem w przypadku awarii któregoś z nich. Natomiast wykupienie domeny nie zawsze jest równoznaczne z natychmiastowym dodaniem do bazy DNS adresu internetowego.

Szkielet Internetu” stanowią tzw. root servers. Ich lista dostępna jest na stronie https://root-servers.org/.

Często bywa tak, iż dostawca usług internetowych konfiguruje router, aby łączył się z ustalonymi DNS-ami i zwykle są to serwery DNS operatora internetu. Nie jest to zawsze bezpieczne i nie jest to idealne rozwiązanie, co wyjaśniam w dalszej części artykułu.

Analiza DNS: uzyskiwanie adresu IP opleceniem host.

Dlaczego warto zmienić domyślny adres DNS?

Przede wszystkim dlatego, iż serwery DNS należące do globalnych operatorów są z reguły wydajniejsze i bezpieczniejsze od tych oferowanych przez dostawców Internetu. Niektóre z nich (w tym te wymienione poniżej) zawierają też dodatkowe funkcjonalności w postaci blokowania domen oznaczonych jako złośliwe.

Porównanie serwerów DNS

Tabelka dotycząca porównania serwerów DNS: nazwa operatora, adresy IP, kraj operatora, filtrowanie kategorii, wsparcie dla DoH (DNS over HTTPS).

Nazwa usługi serwerów DNS Adresy IP Kraj operatora (jurysdykcja) Filtrowanie kategorii np. pornografia i reklamy Ochrona przed malware i phishingiem Wsparcie dla DNS over HTTPS (DoH)
Cloudflare 1.1.1.1 oraz 1.1.1.2, 1.0.0.2 (ochrona przed malware), 1.1.1.3, 1.0.0.3 (ochrona przed malware i filtr treści) USA NIE TAK TAK
Google Public DNS 8.8.8.8 i 8.8.4.4 USA NIE NIE TAK
Quad9 9.9.9.9 USA NIE TAK TAK
DNS.Watch 84.200.69.80 i 84.200.70.40 Niemcy NIE NIE TAK (beta)
OpenNIC Lista dostępna tutaj USA NIE NIE NIE
Comodo Secure DNS 8.26.56.26 i 8.20.247.20 USA NIE TAK NIE
CleanBrowsing 185.228.168.168 i 185.228.169.168 USA TAK TAK TAK
Alternate DNS 94.140.14.14 i 94.140.15.15 (blokowanie reklam), 94.140.14.15 i 94.140.15.16 (blokowanie treści „dla dorosłych”) USA TAK TAK TAK
AdGuard DNS 176.103.130.130 i 176.103.130.131 USA TAK TAK TAK
NextDNS 45.90.28.141 i 45.90.30.141 USA TAK TAK TAK

Komentarz do tabeli

Praktycznie wszystkie serwery DNS znajdują się z jurysdykcją w USA. Jedynie czterech dostawców zapewnia jednocześnie filtrowanie kategorii i ochronę przed złośliwymi (w ogólnym znaczeniu) stronami. Cieszy fakt, iż sporo serwerów wspiera DNS over HTTPS (DoH), czyli szyfrowanie zapytań. Warto zauważyć, iż serwery bez wsparcia tej technologii nie mają wiele do zaoferowania.

Konfiguracja adresów DNS

Zmianę adresów DNS dokonujemy na pojedynczym urządzeniu lub na wszystkich (w ustawieniach routera). Ma do duże znaczenie. W przypadku modyfikacji adresów np. na laptopie sprawimy, iż tylko to pojedyncze urządzenie będzie komunikowało się ze światem za pośrednictwem ustawionych serwerów. Pozostałe urządzenia w sieci będą rozwiązywały domeny na adresy IP za pośrednictwem serwerów DNS ustawionych w routerze. Należy pamiętać, iż systemowe DNS mają „pierwszeństwo” przed tymi w konfiguracji routera.

Konfiguracja IPv4 w Windows.

W przypadku zmiany adresów DNS w konfiguracji routera sprawa wygląda paradoksalnie łatwiej. Należy jednak pamiętać, iż pozostałych ustawień lepiej nie modyfikować, jeżeli się nie wie, do czego służą. W przeglądarce wchodzimy pod adres (najczęściej) 192.168.0.1 lub 192.168.1.1, czy też inny, w zależności od struktury sieci i producenta routera.

Zazwyczaj ustawienia DNS są połączone z ustawieniami DHCP (Dynamic Host Configuration Protocol), co odpowiada za automatyczne przydzielanie urządzeniom w sieci informacji o niej, m.in. adres IP, maska czy adres bramy domyślnej i DNS.

W jaki sposób poznać adres routera? 

Metod jest kilka, a te zależą w głównej mierze od systemu:

  • Windows: Uruchamiamy wiersz polecenia (z poziomu Menu Start, wyszukując “cmd”, lub skrótem Win+R i wpisując “cmd”. Następnie wpisujemy „ipconfig” i szukamy pozycji Default Gateway. Widoczny adres to adres routera. To zdecydowanie najszybszy sposób, bo w domowej sieci raczej DHCP przydziela konfigurację, a kilka osób ustawia ją statycznie (co ma uzasadnienie w przypadku serwerów i drukarek w sieci). jeżeli posiadamy sprzęt od MikroTik, to polecam wykorzystać WinBox, który w zakładce Neighbours wyświetla urządzenia tej firmy w naszej sieci.
  • Linux: W terminalu wystarczy wpisać “route” i pod Gateway widoczny jest szukany adres.
  • Android: Adres routera jest widoczny w ustawieniach konkretnej sieci WiFi. Nie zalecam jednak zmieniać konfiguracji z poziomu mobilnych przeglądarek z powodu małego komfortu. Lepiej pobrać aplikację (Tether w przypadku TP-Link i MikroTik dla łotewskiego producenta) z oficjalnego sklepu i z niej korzystać, bo umożliwia szybki dostęp do najważniejszych ustawień (w tym blokadę danego urządzenia jednym kliknięciem).
W polu Serwer DNS i Alternatywny DNS wpisujemy adresy wybranego dostawcy.

Test szybkości serwerów DNS

Do przetestowania szybkości serwerów DNS użyłem narzędzia dnsperf, które pobierało z pliku tekstowego listę 33575 domen. Następnie automatycznie odpytywał po kolei serwery z adresami z tej listy.

Tabelka zawiera wyniki (w milisekundach, więc Average Latency wypisane przez dnsperf należało pomnożyć 1000 razy) średniego czasu odpowiedzi od domen zapisanych w pliku.

Im mniejsza wartość, tym odpowiedź serwera jest szybsza (milisekundy).

Nazwa usługi serwerów DNS Test o 5 rano Test o 13 po południu Test o 20 wieczorem Test kolejnego dnia o 9 rano
Cloudflare 221,4 211,6 214,6 221,6
Google Public DNS 151,1 145,2 141,2 140,8
Quad9 319,8 298,5 305 294,1
DNS.Watch 166,6 205,8 156,6 170
OpenNIC 56,6 161,3 58,8 291,3
Comodo Secure DNS 148 137,1 156,8 147,5
CleanBrowsing 205,9 187,7 215,4 193,4
Alternate DNS 153,7 165,3 213 166
AdGuard DNS 199,6 208,2 208,7 203,4
NextDNS 160,9 164,6 383,5 153,2

Komentarz do tabeli: 

Od razu można zauważyć zdecydowaną przewagę serwerów DNS OpenNIC pod względem wydajności. W tym przypadku podobne wyniki utrzymywały się praktycznie przez cały czas trwania testu, z wyjątkiem pory popołudniowej. Niektóre serwery również potrafią gwałtownie obsłużyć ruch (Google, Comodo), chociaż uzyskane czasy znacznie się różną z wynikami lidera testu.

Test ochrony przed phishingiem (100 adresów dziennie)

Oba testy były całkowicie zautomatyzowane. Manualna obsługa polegała na uruchomieniu skryptu do testowania i weryfikacja plików z domenami pod kątem ich różnorodności. Musiałem też wstrzymać testy na kilka dni, aby do listy dodać unikalne adresy URL, jeżeli w ciągu jednego dnia nie pojawiły się nowe zagrożenia.

Pewnym wyzwaniem było przygotowanie list z adresami phishingowymi i malware pod wymagania polecenia wget (z parametrem -i, który wskazuje plik z pobraną listą adresów).

W przypadku listy od CERT Polska, sprawa była prosta, wystarczyło użyć head -n100 i przekierować output do pliku o odpowiedniej nazwie. Lista PhishTank była w formacie CSV, tutaj można było sobie poradzić w samym arkuszu kalkulacyjnym. Obie listy były użyte do testów ochrony przed phishingiem.

Z kolei lista adresów z malware od URLhaus, oprócz domen, zawiera wiele adresów IP, które nie były szczególnie przydatne w testach DNS. W dodatku adresy są poprzedzone protokołem i mają też dalszą część poza samym adresem (bezpośredni odnośnik do pliku). Pierwszym krokiem było pozostawienie jedynie adresu/domeny, bez protokołu i dalszej części. W tym zadaniu wyjątkowo dobrze sprawdził się awk. Następnie konieczne było „odsianie” adresów IP (wraz z portem, jeżeli akurat był zawarty) i pozostawienie jedynie domen. Jedyną opcją było użycie wyrażeń regularnych. Wynikowo otrzymywałem plik z samymi domenami oraz pustymi liniami po usunięciu adresów IP. Zadaniem sed było wycięcie tych linii. Później już tylko awk usuwający powtórzenia domen i na koniec standardowo head.

Od liczby 100 odejmowałem ilość pobranych plików i w ten sposób uzyskiwałem ilość zablokowanych zapytań.

Zablokowane adresy (NXDOMAIN [*]) Cloudflare Quad9 Comodo Secure DNS CleanBrowsing Alternate DNS AdGuard DNS NextDNS
Dzień 1 82 87 82 100 35 81 82
Dzień 2 63 77 78 78 69 75 76
Dzień 3 26 24 24 79 100 25 24

[*] Tak zwany błąd NXDOMAIN oznacza, iż w bazie DNS konkretnego operatora domena nie jest powiązana z adresem IP, czyli użytkownik końcowy nie widzi odpowiedzi od danej strony.

Test ochrony przed malware (100 adresów dziennie)

Zablokowane adresy (NXDOMAIN [*]) Cloudflare Quad9 Comodo Secure DNS CleanBrowsing Alternate DNS AdGuard DNS NextDNS
Dzień 1 50 99 42 99 47 7 40
Dzień 2 39 99 35 100 32 4 30
Dzień 3 42 98 31 100 36 8 37

[*] Tak zwany błąd NXDOMAIN oznacza, iż w bazie DNS konkretnego operatora domena nie jest powiązana z adresem IP, czyli użytkownik końcowy nie widzi odpowiedzi od danej strony.

Serwer DNS to istotny aspekt naszego bezpieczeństwa!

Wszystkie urządzenia wysyłają i odbierają jakieś dane. Użytkownik odwiedza daną stronę w przeglądarce, zainstalowana aplikacja odpytuje swoje serwery o aktualizacje itp. Serwer DNS może ochronić przed różnymi złośliwymi działaniami. Należy jednak pamiętać, iż malware nie znajduje się jedynie w Internecie, bo równie dobrze możemy zainfekować system, uruchamiając złośliwe makra, nieznany program. Zagrożeniem jest też podłączenie nieznanego pendrive.

DNS nie chroni przed popularnymi atakami występującymi w sieci (MITM, podsłuchanie komunikacji, ARP spoofing). Nie możemy też liczyć na ochronę kamery internetowej czy pliku hosts. Swoją drogą mało osób o tym wspomina, ale ten prosty plik ma ogromny wpływ na bezpieczeństwo. Podmiana pliku HOSTS przez malware może mieć tragiczne konsekwencje:

[adres_IP_atakujacego] mbank.pl

Od teraz zamiast na stronie mBanku, po wejściu na https://mbank.pl będziemy na witrynie należącej do atakującego! jeżeli jest dobrze przygotowana, to raczej nie mamy szans na zauważenie ataku (chociaż można porównać tzw. odcisk palca certyfikatu, ale raczej nikt nie porównuje tego za każdym razem). W pasku adresu widoczny jest mbank.pl, a w praktyce jesteśmy połączeni z serwerem przestępcy!

Serwery DNS to bardzo istotny element naszego bezpieczeństwa. O tym niech poświadczy fakt szkodliwego systemu DNSChanger, które podmieniało adresy DNS. Pisał o tym także CERT Polska. Na tej stronie internetowej znajdują się aktualne listy serwerów DNS w Polsce.

Idź do oryginalnego materiału