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

avlab.pl 1 rok temu
Zdjęcie: polecane serwery dns


Polecane serwery DNS - wyniki testu szybkości i ochrony

DNS (Domain Name System) to usługa odpowiedzialna za przypisywanie adresów IP i innych informacji domenom internetowym. Każda strona WWW posiada swój „identyfikator”, czyli wspomniany adres IP. W przypadku hostingu wiele stron współdzieli jeden adres. Posiadanie domeny i przypisanie jej do adresu IP serwera WWW nie jest wymagane do uruchomienia dostępnego publicznie serwisu, natomiast wchodzenie na stronę z użyciem adresu IP nie wygląda profesjonalnie. Adresy IP powiązane z daną domeną można poznać poprzez wyszukanie domeny np. w bazie Whois lub dzięki polecenia ping w Windows (które wyświetli jedynie adres IP) czy komendy host w Linux.

UWAGA!

Zaktualizowaliśmy test serwerów DNS o nowych dostawców i nowe zagrożenia. Aktualna data testu to 10 września 2023 roku.

Zmiany od czasu ostatniego testu

W tym roku nie były sprawdzane serwery DNS.Watch (chociaż same serwery odpowiadają, to ich strona zwraca kod błędu 502, co może oznaczać ewentualne porzucenie projektu) i OpenNIC (dwa polskie serwery są niedostępne od dłuższego czasu).

Natomiast udało się przetestować nowy serwer dns0.eu, o którym pisaliśmy w artykule z 10 lutego 2023 r.

W procesie testowania nie było większych zmian, z wyjątkiem listy domen używanej w teście wydajności. Szczegóły zostały opisane poniżej.

Adresami IP serwerów DNS zajmuje się IANA i ICANN. W Polsce za rejestr domen i domenę .pl odpowiada Naukowa i Akademicka Sieć Komputerowa, czyli NASK. Sam DNS podczas przesyłania zapytań wykorzystuje protokół UDP, a działa w warstwie aplikacji 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 jednego z nich.

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

Uzyskiwanie podstawowych informacji o domenie poleceniem host.

Istnieją różne rekordy DNS możliwe do ustawienia dla domeny. Najbardziej podstawowe z nich to:

  • A — adres IPv4, na który wskazuje dana domena
  • AAAA — adres IPv6, na który wskazuje dana domena
  • CNAME — nazwa kanoniczna, często używana do wskazania różnych prefiksów domeny zamiast adresów IP (np. avlab.pl może być wartością rekordu CNAME dla www.avlab.pl)
  • MX — adres serwera obsługującego pocztę
  • TXT — różne dodatkowe informacje (np. kod weryfikacyjny Google Workspace), wykorzystywany także do walidacji “własności” domeny przy zakupie certyfikatów SSL oraz do konfiguracji SPF


Routery dostarczone przez dostawcę usług internetowych często są konfigurowane do korzystania z serwerów DNS w sieci operatora. Zwykle warto zmienić to ustawienie na serwery DNS należące do globalnych operatorów, ponieważ z reguły są wydajniejsze i bezpieczniejsze od tych oferowanych przez dostawców Internetu. Niektóre z nich (wymienione poniżej) zawierają też dodatkowe funkcjonalności w postaci blokowania złośliwych domen lub tych z treściami dla dorosłych.

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 (jurdykcja)

Filtrowanie kategorii np. pornografia i reklamy

Ochrona przed malware i phishingem

Wsparcie dla DNS over HTTPS (DoH)

Cloudflare

1.1.1.1 i 1.1.1.2, 1.0.0.2 (blokowanie malware), 1.1.1.3 i 1.0.0.3 (blokowanie malware i treści dla dorosłych)

USA

NIE

TAK

TAK

Google Public DNS

8.8.8.8 i 8.8.8.4

USA

NIE

NIE

TAK

Quad9

9.9.9.9

USA

NIE

TAK

TAK

Comodo Secure DNS

8.26.56.26 i 8.20.247.40

USA

NIE

TAK

NIE

CleanBrowsing

185.228.168.168 i 185.228.169.168

USA

TAK

TAK

TAK

Alternate DNS

76.76.19.19 i 76.223.122.150

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

dns0.eu

193.110.81.0 i 185.253.5.0, 193.110.81.9 i 185.253.5.9 (blokowanie malware), 193.110.81.1 i 185.253.5.1 (blokowanie treści dla dorosłych)

Francja

NIE

NIE

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ż zdecydowana większość serwerów wspiera DNS over HTTPS (DoH), czyli szyfrowanie zapytań.

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ć “ip r”, szukanym adresem jest ten po frazie “default via …”.
  • Android: Adres routera jest widoczny w ustawieniach konkretnej sieci WiFi. Nie polecam jednak zmieniać konfiguracji z poziomu mobilnych przeglądarek z powodu ograniczonej wygody (nie każdy panel jest przystosowany do mniejszych ekranów). Lepiej pobrać dedykowaną aplikację z oficjalnego sklepu i z niej korzystać, bo umożliwia szybki dostęp do najważniejszych ustawień.
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 domeny z listy top 1000 od Cloudflare Radar. Następnie automatycznie odpytywało po kolei wskazane serwery DNS adresami z tej listy. Ograniczyłem dodatkowo ilość zapytań na sekundę do 10, co było spowodowane konfiguracją niektórych serwerów — odrzucały wszelkie zapytania powyżej tego limitu.

W poprzednich edycjach tego testu używana była lista Alexa. w tej chwili nie jest jednak aktualna (część domen w niej zawartych już zresztą wygasła), przez co w tym roku nie mogła zostać wykorzystana.

dnsperf wymaga listy w formacie <domena> <rekord_DNS>. Lista od Cloudflare Radar zawiera wyłącznie nazwy domen, natomiast poniższym poleceniem sed można było łatwo dopisać “A” do 1000 linii w tym pliku:

sed -i 's/$/ A/' domeny.txt

Tabela zawiera wyniki (w milisekundach, więc Average Latency wypisane w sekundach 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 8 rano

Test o 14 po południu

Test o 20 wieczorem

Test kolejnego dnia o 8 rano

Średni wynik

Cloudflare

30

25.7

31.4

27.8

28.72

Google Public DNS

34.6

37.2

43.2

35

37.5

Quad9

78.9

77.7

80.1

81.9

79.65

Comodo Secure DNS

61.8

73.2

75.0

56.2

66.55

CleanBrowsing

69.2

52.1

49.9

50.1

55.32

Alternate DNS

219.3

436.2

261.1

414.8

332.85

AdGuard DNS

151.3

165.2

168.3

381.4

216.55

NextDNS

81.6

77.1

75.3

78.9

78.22

dns0.eu

68.3

74.5

65.3

65.9

68.5

Komentarz do tabeli:

Najszybsze czasy odpowiedzi za każdym razem uzyskiwał serwer DNS operowany przez Cloudflare. Całkiem podobną wydajność zapewnia serwer Google. Najgorzej w tym zestawieniu wypadają serwery Alternate DNS i AdGuard DNS, gdzie wyniki zdecydowanie odbiegają od reszty testowanych rozwiązań. Pozostałe serwery zachowują porównywalny poziom czasu odpowiedzi.

Test ochrony przed phishingiem (100 adresów dziennie)

W testach ochrony przez phishingiem i malware korzystałem odpowiednio z list PhishTank oraz URLhaus. Do odczytu przygotowanych list używane było polecenie wget. Potrzebowałem do tego zwykłego pliku TXT, gdzie w kolejnych liniach zapisane były pełne adresy URL.

Listę PhishTank można było wyjątkowo łatwo przygotować do tych wymagań. Zawiera ona wyłącznie domeny (żadnych adresów IP) w drugiej “kolumnie”, którą poleceniem awk wystarczyło przekierować do pliku, a potem z użyciem sed usunąć pierwszą linię zawierającą nazwę kolumny — url.

Z kolei w przypadku listy URLhaus konieczne były pewne dodatkowe czynności. Oprócz tego, iż zawiera adresy IP, to zdarzają się na niej powtórzenia domen. Do usunięcia adresów IP używałem opcji Zamień… w Notepad++ z trybem szukania ustawionym na Wyrażenia regularne. Pozostawały wtedy puste linie, które jednak usuwałem dzięki sed (w samym Notepad++ też byłaby możliwość). Ewentualne powtórzenia usuwałem kombinacją poleceń sort i uniq, a na koniec przekierowywałem już do adekwatnego pliku output polecenia head -100 domeny.txt.

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

Zablokowane adresy (NXDOMAIN [*])

Cloudflare

Quad9

Comodo Secure DNS

CleanBrowsing

Alternate DNS

AdGuard DNS

NextDNS

dns0.eu

Dzień 1

75

45

29

55

28

40

30

89

Dzień 2

66

74

28

96

29

66

28

78

Dzień 3

47

61

32

93

12

18

12

61

[*] 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 [*])CloudflareQuad9Comodo Secure DNSCleanBrowsingAlternate DNSAdGuard DNSNextDNSdns0.eu
Dzień 187922590171625100
Dzień 286923186201932100
Dzień 387895086161828100

[*] 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.

Idź do oryginalnego materiału