Warda-DNS Warda: od angielskiego ward — chronić, strażnik
v0.9.10

Artykuł

Zablokuj wychodzący DNS na routerze

Filtr DNS widzi tylko pytania, które mu się zadaje. Telewizor, aplikacja albo złośliwe oprogramowanie, które pyta bezpośrednio 8.8.8.8, omija go bez żadnego błędu. Rozwiązanie należy do routera: tylko skrzynka Warda może wysyłać DNS do Internetu.

Opublikowano · fakty sprawdzono

01Dlaczego musi to robić router

Router podaje urządzeniom adres Wardy i większość z nich go używa. Niektóre urządzenia mają jednak własny serwer DNS wpisany w oprogramowanie: telewizory, głośniki i kamery, które używają 8.8.8.8 bez względu na to, co mówi sieć. Program może zrobić to samo, podobnie złośliwe oprogramowanie, które chce niepostrzeżenie rozmawiać ze swoimi serwerami.

Te zapytania nigdy nie docierają do Wardy: nie może ich zablokować ani nawet zobaczyć. Zatrzymać je może tylko router, przez który przechodzi każdy pakiet wychodzący. Zasada jest prosta: porty DNS są otwarte wyłącznie dla skrzynki Warda.

02Porty do zamknięcia

Klasyczny DNS używa portu 53 (UDP i TCP). DNS over TLS używa portu 853 po TCP, a DNS over QUIC portu 853 po UDP. Te porty reguła może zamknąć:

  • zezwolić na porty 53 i 853, TCP i UDP, z adresu Wardy (i jej adresów IPv6) do Internetu: Warda potrzebuje ich, by pytać swoje serwery nadrzędne, w sposób szyfrowany;
  • odrzucać porty 53 i 853 ze wszystkich pozostałych urządzeń sieci do Internetu;
  • albo, tylko dla portu 53, przekierować zapytania do Wardy zamiast je odrzucać: telewizor z wpisanym 8.8.8.8 działa dalej i jest filtrowany.

03Ogólna reguła

Na routerze z Linuksem (OpenWrt, router zbudowany samodzielnie) wystarczy reguła nftables taka jak poniżej, z 192.168.1.53 zastąpionym adresem Twojej skrzynki Warda. Na pfSense, OPNsense lub własnym routerze idea jest ta sama: reguła na interfejsie sieci lokalnej przepuszczająca adres Wardy do portów 53 i 853, a pod nią reguła blokująca te porty dla reszty sieci.

Zrób to samo dla IPv6 z adresami Wardy: urządzenie pytające przez IPv6 omija regułę napisaną tylko dla IPv4. Wiele routerów operatorów nie ma takiej zapory: wtedy regułę niesie własny router za routerem operatora.

nft
table inet warda_dns {
  chain forward {
    type filter hook forward priority filter; policy accept;
    # 192.168.1.53: the address of Warda, the only one that may ask outside
    ip saddr 192.168.1.53 accept
    meta l4proto { tcp, udp } th dport { 53, 853 } reject
  }
}

04Granice, powiedziane wprost

Port zamyka tylko to, co go używa. DNS over HTTPS idzie przez port 443, port każdej bezpiecznej strony: żadna reguła portów nie zamknie go bez zamknięcia sieci WWW. Warda odpowiada na tę część po nazwach: znane usługi szyfrowanego DNS, VPN i proxy są blokowane dla dzieci i nastolatków, a Firefox zachowuje DNS sieci (pyta o nazwę testową, na którą Warda odpowiada jak należy).

Portu 853 nie da się przekierować: zaszyfrowane zapytanie wysłane do Wardy zamiast do jego serwera nie przeszłoby kontroli certyfikatu. Odrzuć go, a większość urządzeń wróci do DNS sieci. VPN z kolei niesie wszystko w swoim tunelu, łącznie z DNS: Warda blokuje znane usługi VPN dla nieletnich, a w abonamencie informuje o próbach.

05Źródła

  1. IETF, RFC 7858, „Specification for DNS over Transport Layer Security (TLS)”, port 853
  2. IETF, RFC 9250, „DNS over Dedicated QUIC Connections”, port 853 po UDP
  3. IETF, RFC 8484, „DNS Queries over HTTPS (DoH)”

Całe centrum pomocy

Warda, filtr DNS dla całego domu

Warda jest bezpłatna dla domu i działa na Raspberry Pi, w Dockerze lub na Debianie.

Pobierz WardęCo blokuje Warda