Szinte biztosan nem akarjuk az internetszolgáltató (ISZ) DNS-szerverét használni, úgyhogy nézzük meg, hogyan cserélhetjük le. A leírás openSUSE-ra vonatkozik, más disztróknál lehetnek eltérések. Ajánlott olvasmányok témában:

Mivel VPN-kapcsolaton keresztül használom a DNS-t, így nem foglalkoztam a DNS-over-TLS megvalósításával, amihez egy DNS-proxyt (stubby) is be kéne iktatni.

dnsmasq

Telepítsük a dnsmasq-ot, ha még nem lenne, majd szerkesszük az /etc/dnsmasq.conf fájlt úgy, hogy az alábbi direktívák ne megjegyzésként szerepeljenek. A felettes névszerver itt 1.1.1.1 (CloudFlare).

domain-needed
bogus-priv
no-resolv
no-poll
server=1.1.1.1
listen-address=::1,127.0.0.1

A DNSSEC-validálás opcionális:

conf-file=/etc/dnsmasq.d/trust-anchors.conf
dnssec
dnssec-check-unsigned

A helyi gyorsítótárazás mellett számomra fontos szempont, hogy a dnsmasq segítségével beállíthatunk helyi feloldású TLD-ket is, ami webfejlesztéshez hasznos:

address=/test/192.168.122.2

Indítsuk el a dnsmasq szolgáltatást:

# systemctl enable --now dnsmasq

Végül tudatnunk kell a NetworkManager szolgáltatással, hogy a dnsmasq-ot használjuk. A jelenleg beállított névszerver az /etc/resolv.conf fájlban szerepel, általában a routerünk lokális címe (a router pedig alapértelmezetten az ISZ DNS-szerverét hívja meg). Ezt a fájlt a NetworkManager vagy más szolgáltatás felülírja, a változtatásaink után 127.0.0.1 lesz majd az itt szereplő cím.

Szerkesszük a /etc/NetworkManager/NetworkManager.conf fájlt, és a [main] szekcióba szúrjuk be ezt a sort:

dns=dnsmasq

Indítsuk újra a NetworkManagert:

# systemctl restart NetworkManager

Készen vagyunk, teszteljük le, hogy működik-e. A dig nevű paranccsal kérdezhetjük le domainek DNS-rekordjait, a válaszban ilyesmit kell látnunk:

...
;; ANSWER SECTION:
...
;; AUTHORITY SECTION:
...
;; Query time: 59 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
...

Majd ha újra lefuttatjuk a lekérdezést ugyanarra a domainre:

...
;; ANSWER SECTION:
...
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
...

A válasz már a helyi gyorsítótárból jött, és spóroltunk 59 ms-t. Ha felvettük a test TLD-t, akkor érvényes választ kapunk pl. a valami.test domainre is.

DNS-szolgáltatások

Az ISZ DNS-szerverei általában két okból sem felelnek meg a magánéleted védelme szempontjából. Egyrészt ugye naplózzák a lekérdezett domaineket a neved mellé. Másrészt nem titkosítják a lekérdezéseket, ezért azok más által megfigyelhetők, sőt akár manipulálhatók is. Ez nem csak elvi lehetőség, egyes külföldi ISZ-k vissza is éltek ezzel. A DoH és DoT nevű technológiákról itt lehet olvasni, mind a CloudFlare, mind a NextDNS támogatják ezeket. A fentiekben oprendszer szintű beállításokról volt szó, de a Firefox kapcsolati beállításaiban is kiválasztható a CloudFlare vagy a NextDNS használata böngészéshez. A VPN-en keresztüli DNS titkosított, így nem igényel külön kliensoldali beállítást.

  • Pi-hole: kezdjünk a saját megoldással, de mivel ezt otthon hosztolod, ezért csak otthon használhatod (hacsak nincs otthoni VPN-ed). Szabad szoftver, konfigurálható tartalomszűrés, teljes körű naplózás. E mellé tényleg fölösleges a dnsmasq.
  • CloudFlare: állítólag a leggyorsabb publikus DNS az 1.1.1.1, létezik a normál mellett malware-szűrős és felnőtt+malware-szűrős címük. Egyedi beállításra nincs lehetőség, mindenesetre ez egy elég jó ingyenes szolgáltatás.
  • NextDNS: az ingyenes szolgáltatásnál havi 300k lekérdezés után megszűnik a tartalomszűrés, de maga a DNS tovább használható; a korlátlan szolgáltatás havi 2€. Emailcímmel regisztrálhatunk fiókot, ahol mindenféle egyedi beállításokra is mód van. Kiválóan alkalmas rá, hogy áttekintsük a látogatási statisztikákat, bár e célra hosszú távon inkább a Pi-hole-t javasolnám.
  • Google: régi és mindenki ismeri a 8.8.8.8-at, de ma már nem ajánlható.
  • Bármelyik tisztességes VPN-szolgáltatás: a VPN mellé kapunk DNS-t is.

Helyi feketelisták

Önmagában vagy a fentiekkel együtt is működik az /etc/hosts fájl alkalmazása bizonyos domainek feloldására, általában blokkolására. Pl. ha bemásolod ezt a listát, akkor megszűnik a gépedről minden kommunikáció a FB-kal. Ha Pi-hole-t használsz, akkor inkább ott állítsd be az ilyesmit, a NextDNS esetén pedig csak kattintgatni kell a felületükön, rengeteg listából lehet választani.

Router-szintű DNS

Alapértelmezetten az otthoni hálózatodra csatlakozó eszközök a routered által meghatározott DNS-t fogják használni (a fentiekben részletezett módszerrel nem). Természetesen ezt is meg lehet változtatni, itt csupán arra hívnám fel a figyelmet, hogy ezt a lehetőséget ellened irányuló célzott támadásra vagy adatgyűjtésre is fel lehet használni, és ezért érdemes lecserélni a router hátuljára matricázott jelszót.