Navigácia
Kyberbezpečnosť

Súkromnejšie DNS a blokovanie reklám: NextDNS CLI a WireGuard na vlastnom serveri

30 októbra, 2026 techy.sk

Vlastný WireGuard tunel s lokálnym klientom NextDNS CLI dokáže filtrovať reklamy a sledovače na všetkých tvojich zariadeniach, keď sú pripojené k serveru. „Absolútne súkromie“ to však nie je a bez WireGuard aplikácie na zariadeniach to nejde. Tento návod ukazuje, ako to postaviť, čo to naozaj chráni a kde sú limity.

Čo tým získaš a čo nie

DNS filtrovanie blokuje domény, ktoré slúžia na reklamy, telemetriu a sledovanie. Pôsobí na úrovni siete, takže chráni aj aplikácie, kde nemôžeš nainštalovať rozšírenie prehliadača. Časť dôvodu, prečo je to zaujímavé, je aj zmena rozšírení v Chromium prehliadačoch (Manifest V3), ktorá obmedzila možnosti niektorých blokátorov. Nie je to však ich plná náhrada:

  • Reklamy z tej istej domény: ak reklama aj obsah idú z rovnakej domény, DNS ich nerozlíši. Preto DNS blokovanie nepokryje napríklad všetky video reklamy.
  • Kozmetické filtre: DNS nevie skryť prázdny rámček po zablokovanej reklame.
  • Poskytovateľ DNS vidí dotazy: NextDNS vidí domény, na ktoré sa pýtaš. Môžeš vypnúť záznamy alebo si vybrať miesto ich uloženia, ale dôvera zostáva potrebná.
  • Prevádzku neskrýva: tunel sa používa len na DNS, takže poskytovateľ pripojenia stále vidí, na aké servery sa pripájaš.

Presnejšie povedané: ide o súkromnejšie a čistejšie DNS, nie o anonymitu.

Architektúra

  • Na Linux serveri beží WireGuard s adresou 10.8.0.1.
  • NextDNS CLI počúva len na tejto adrese a dotazy posiela na NextDNS cez šifrované DNS over HTTPS (DoH).
  • Klienti sa pripájajú cez WireGuard a ako DNS používajú 10.8.0.1.
  • Do tunela ide len DNS prevádzka. Zvyšok internetu ide ďalej priamo, takže nepotrebuješ presmerovanie paketov ani NAT.

Na každom zariadení potrebuješ WireGuard klienta. Na Linuxe je súčasťou jadra, na ostatných systémoch existujú aplikácie. Tvrdenie, že filtrovanie funguje „bez dodatočných aplikácií“, teda neplatí.

Krok 1: WireGuard server

Skript je pre Debian alebo Ubuntu. Spúšťaj ho ako root a pred použitím si ho prečítaj. Parametre sú adresa servera a názov klienta. Skript sa nespustí druhýkrát, aby neprepísal existujúce kľúče.

#!/usr/bin/env bash
set -euo pipefail

ENDPOINT="${1:?Použitie: sudo ./wg-setup.sh VEREJNA_IP_ALEBO_DOMENA}"
SERVER_IP="10.8.0.1"
CLIENT_IP="10.8.0.2"
PORT=51820

if [ -f /etc/wireguard/wg0.conf ]; then
  echo "wg0.conf už existuje, končím." >&2
  exit 1
fi

apt-get update
apt-get install -y wireguard

umask 077
mkdir -p /etc/wireguard
cd /etc/wireguard

wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee client1.key | wg pubkey > client1.pub
wg genpsk > client1.psk

cat > wg0.conf <<EOF
[Interface]
Address = ${SERVER_IP}/24
ListenPort = ${PORT}
PrivateKey = $(cat server.key)

[Peer]
PublicKey = $(cat client1.pub)
PresharedKey = $(cat client1.psk)
AllowedIPs = ${CLIENT_IP}/32
EOF

systemctl enable --now wg-quick@wg0

cat > client1.conf <<EOF
[Interface]
PrivateKey = $(cat client1.key)
Address = ${CLIENT_IP}/32
DNS = ${SERVER_IP}

[Peer]
PublicKey = $(cat server.pub)
PresharedKey = $(cat client1.psk)
Endpoint = ${ENDPOINT}:${PORT}
AllowedIPs = ${SERVER_IP}/32
PersistentKeepalive = 25
EOF

echo "Klientsky súbor: /etc/wireguard/client1.conf"

Dôležitý riadok je AllowedIPs = 10.8.0.1/32 v klientskej konfigurácii. Znamená, že cez tunel pôjde len komunikácia s DNS serverom. Súbor client1.conf obsahuje súkromný kľúč, preto ho prenes bezpečne (napríklad cez QR kód z nástroja qrencode alebo cez SSH) a z miest, kde sa nepotrebuje, ho zmaž.

Krok 2: NextDNS CLI

Najprv si vytvor konfiguračný profil na webe NextDNS a poznač si jeho ID. Potom spusti oficiálny inštalátor podľa dokumentácie projektu. Inštalátor sa pri spustení vyptá na nastavenia, preto ho nespúšťaj bez dozoru. Skript pred spustením z internetu radšej stiahni a prečítaj. Po inštalácii nastav počúvanie len na adrese tunela:

sudo nextdns config set -profile=TVOJE_ID -listen=10.8.0.1:53 -cache-size=10MB -report-client-info=true -setup-router=false
sudo nextdns restart

Dve veci sú tu podstatné. Adresa 10.8.0.1 musí existovať skôr, než sa NextDNS spustí, inak sa nepodarí na nej počúvať. Zabezpeč to poradím služieb v systemd, napríklad súborom /etc/systemd/system/nextdns.service.d/override.conf:

[Unit]
[email protected]
[email protected]

Potom spusti sudo systemctl daemon-reload && sudo systemctl restart nextdns. A nenechaj službu počúvať na všetkých rozhraniach, inak by server fungoval ako verejný DNS resolver.

Krok 3: Firewall

Z internetu povoľ len UDP port 51820. DNS povoľ iba z rozhrania tunela:

sudo ufw allow 51820/udp
sudo ufw allow in on wg0 to any port 53
sudo ufw enable

Ak SSH používaš, povoľ ho skôr, než firewall zapneš.

Krok 4: Over, že to funguje

  • Na serveri: dig @10.8.0.1 example.com by mal vrátiť odpoveď.
  • Na klientovi po pripojení tunela otvor test na stránke NextDNS. Protokol by mal byť DoH a profil tvoj.
  • Otestuj známu reklamnú doménu z blocklistu, ktorú si vo svojom profile zapol. Mala by sa zablokovať.

Cache Boost a CNAME flattening

Obe funkcie nájdeš v nastaveniach profilu na strane NextDNS, nie v CLI:

  • Cache Boost podľa dostupných popisov vynúti minimálnu životnosť (TTL) odpovedí na päť minút. Klienti sa potom pýtajú menej často, čo zrýchli odozvu. Nezamieňaj ho s lokálnou pamäťou CLI (cache-size), ktorá je samostatná.
  • CNAME flattening rozbalí reťazec záznamov CNAME na výslednú IP adresu už na strane služby, čím znižuje počet dotazov. Bývajú s tým problémy v niektorých službách, napríklad pri poštových službách, a môže zasahovať do niektorých blocklistov. Zapni ho, len ak ti nevadí občasné ladenie.

Ochrana proti sledovačom schovaným za CNAME (CNAME cloaking) je samostatná funkcia v bezpečnostných nastaveniach. Flattening nie je jej náhrada.

Bezpečnostný kontrolný zoznam

  • Server aktualizuj a prístup cez SSH zabezpeč kľúčmi.
  • DNS resolver nesmie byť dostupný z verejného internetu. Over to z externej siete.
  • Každé zariadenie dostane vlastný kľúč a adresu. Stratené zariadenie tak jednoducho odoberieš zo servera.
  • V profile NextDNS si nastav, či chceš záznamy dotazov, ako dlho sa uchovávajú a kde.
  • Počítaj s tým, že ak tunel nebeží, zariadenie používa bežné DNS poskytovateľa pripojenia.

Čo si z toho odniesť

Vlastný WireGuard s NextDNS CLI je dobrý spôsob, ako mať jednotné filtrovanie dotazov na mobile aj notebooku mimo domácej siete. Je to krok k súkromnejšiemu DNS, nie dokonalé súkromie. Najväčšie zlepšenie získaš, keď to skombinuješ s ďalšími vrstvami, napríklad s blokátorom v prehliadači, a budeš si vedomý toho, čo tento prístup neriešia.

Zdieľať článok

Mohlo by vás zaujímať