Warda-DNS Warda: van het Engelse ward — beschermen, bewaker
v0.9.10

Artikel

Uitgaande DNS blokkeren op je router of modem

Een DNS-filter ziet alleen de vragen die hem gesteld worden. Een tv, een app of malware die rechtstreeks 8.8.8.8 vraagt, gaat eromheen, zonder enige foutmelding. De oplossing hoort bij de router: alleen het Warda-kastje mag DNS naar het internet sturen.

Gepubliceerd op · feiten gecontroleerd op

01Waarom de router het moet doen

Je router geeft de apparaten het adres van Warda, en de meeste gebruiken het. Maar sommige apparaten hebben hun eigen DNS-server in hun software staan: tv's, speakers en camera's die 8.8.8.8 gebruiken wat het netwerk ook zegt. Een programma kan hetzelfde doen, en ook malware die ongezien met zijn servers wil praten.

Die verzoeken bereiken Warda nooit: het kan ze niet blokkeren, en zelfs niet zien. Alleen de router, waar elk pakket op weg naar buiten doorheen gaat, kan ze tegenhouden. De regel is eenvoudig: de DNS-poorten staan alleen open voor het Warda-kastje.

02De poorten die je sluit

Gewone DNS gebruikt poort 53 (UDP en TCP). DNS over TLS gebruikt poort 853 via TCP, DNS over QUIC poort 853 via UDP. Dit zijn de poorten die een regel kan sluiten:

  • poort 53 en 853, TCP en UDP, toestaan vanaf het adres van Warda (en zijn IPv6-adressen) naar het internet: Warda heeft ze nodig om zijn eigen upstream-servers versleuteld te vragen;
  • poort 53 en 853 weigeren vanaf alle andere apparaten van het netwerk naar het internet;
  • of, alleen voor poort 53, de verzoeken naar Warda omleiden in plaats van ze te weigeren: een tv met 8.8.8.8 erin blijft dan werken, en wordt gefilterd.

03Een algemene regel

Op een router met Linux (OpenWrt, een zelfgebouwde router) volstaat een nftables-regel zoals hieronder, met 192.168.1.53 vervangen door het adres van je Warda-kastje. Op pfSense, OPNsense of een eigen router is het idee hetzelfde: een regel op de interface van het lokale netwerk die het adres van Warda doorlaat naar poort 53 en 853, en daaronder een regel die deze poorten blokkeert voor de rest van het netwerk.

Doe hetzelfde voor IPv6 met de adressen van Warda: een apparaat dat via IPv6 vraagt, gaat om een regel heen die alleen voor IPv4 geschreven is. Veel modems van providers hebben zo'n firewall niet: een eigen router achter het modem draagt dan de regel.

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

04De grenzen, eerlijk gezegd

Een poort sluit alleen af wat hem gebruikt. DNS over HTTPS gaat over poort 443, de poort van elke beveiligde site: geen poortregel kan die sluiten zonder het web te sluiten. Warda beantwoordt dat deel via de namen: de bekende diensten voor versleutelde DNS, VPN en proxy zijn geblokkeerd voor kinderen en tieners, en Firefox houdt de DNS van het netwerk (het vraagt een testnaam, die Warda op de juiste manier beantwoordt).

Poort 853 kun je niet omleiden: een versleuteld verzoek dat bij Warda terechtkomt in plaats van bij zijn server, zou falen op de controle van het certificaat. Weiger hem, en de meeste apparaten vallen terug op de DNS van het netwerk. Een VPN, ten slotte, draagt alles in zijn tunnel, DNS inbegrepen: Warda blokkeert de bekende VPN-diensten voor minderjarigen en meldt je met het abonnement de pogingen.

05Bronnen

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

Het hele helpcentrum

Warda, het DNS-filter van het hele huis

Warda is gratis voor thuis en draait op een Raspberry Pi, met Docker of op Debian.

Warda downloadenWat Warda blokkeert