Warda-DNS Warda: z anglického ward — chránit, strážce
v0.9.10

Článek

Zablokujte odchozí DNS na routeru

DNS filtr vidí jen otázky, které mu kdo položí. Televize, aplikace nebo malware, které se ptají přímo 8.8.8.8, ho obejdou bez jediné chyby. Řešení patří routeru: DNS do internetu smí posílat jen krabička Warda.

Zveřejněno · fakta ověřena

01Proč to musí dělat router

Router dává zařízením adresu Wardy a většina ji používá. Některá zařízení ale mají vlastní DNS server zapsaný ve svém softwaru: televize, reproduktory a kamery, které používají 8.8.8.8 bez ohledu na to, co říká síť. Program může udělat totéž, stejně jako malware, který chce nepozorovaně mluvit se svými servery.

Tyto dotazy k Wardě nikdy nedorazí: nemůže je zablokovat, ani je vidět. Zastavit je může jen router, kterým prochází každý paket na cestě ven. Pravidlo je jednoduché: porty DNS jsou otevřené jen krabičce Warda.

02Porty, které zavřít

Klasické DNS používá port 53 (UDP i TCP). DNS over TLS používá port 853 přes TCP, DNS over QUIC port 853 přes UDP. Tyto porty může pravidlo zavřít:

  • povolit porty 53 a 853, TCP i UDP, z adresy Wardy (a jejích IPv6 adres) do internetu: Warda je potřebuje, aby se šifrovaně ptala svých nadřazených serverů;
  • odmítat porty 53 a 853 ze všech ostatních zařízení sítě do internetu;
  • nebo, jen pro port 53, dotazy přesměrovat na Wardu místo odmítnutí: televize s napevno zapsaným 8.8.8.8 pak dál funguje a je filtrovaná.

03Obecné pravidlo

Na routeru s Linuxem (OpenWrt, router postavený doma) stačí pravidlo nftables jako to níže, s 192.168.1.53 nahrazenou adresou vaší krabičky Warda. Na pfSense, OPNsense nebo vlastním routeru je myšlenka stejná: pravidlo na rozhraní místní sítě, které pustí adresu Wardy k portům 53 a 853, a pod ním pravidlo, které tyto porty zablokuje zbytku sítě.

Totéž udělejte pro IPv6 s adresami Wardy: zařízení, které se ptá přes IPv6, obejde pravidlo napsané jen pro IPv4. Mnoho routerů od poskytovatelů takový firewall nemá: pravidlo pak nese vlastní router za routerem poskytovatele.

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
  }
}

04Limity, řečeno otevřeně

Port zavře jen to, co ho používá. DNS over HTTPS jde přes port 443, port každého zabezpečeného webu: žádné pravidlo portů ho nezavře, aniž by zavřelo web. Warda na tuto část odpovídá přes jména: známé služby šifrovaného DNS, VPN a proxy jsou blokované pro děti a dospívající a Firefox si ponechá DNS sítě (ptá se na testovací jméno, na které Warda odpoví, jak má).

Port 853 přesměrovat nejde: šifrovaný dotaz poslaný Wardě místo jeho serveru by neprošel kontrolou certifikátu. Odmítněte ho a většina zařízení se vrátí k DNS sítě. A VPN nese všechno ve svém tunelu, DNS včetně: Warda blokuje známé služby VPN pro nezletilé a s předplatným vám pokusy ohlásí.

05Zdroje

  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 přes UDP
  3. IETF, RFC 8484, „DNS Queries over HTTPS (DoH)“

Celé centrum nápovědy

Warda, DNS filtr pro celou domácnost

Warda je pro domácnost zdarma a běží na Raspberry Pi, v Dockeru nebo na Debianu.

Stáhnout WarduCo Warda blokuje