DNS szerver beállítása linuxon (ZeroLogDNS)
Ez a cikk azért született meg, mert Darkstreet barátom elkészítette a saját DNS szolgáltatását, a ZeroLogDNS-t, ennek kapcsán felmerült egy kérdés, vagyis inkább kérés, hogy magyarázzuk el, miként lehet linux rendszereken beállítani, de akkor sem kell aggódni, ha nem tudod, hogy mi az a DNS szerver, és miért jó neked, mindent elmesélek.
Mi az a DNS szerver? Mire jó?
A DNS (Domain Name System) azért felel, hogy az IP címekhez hozzárendelje a domain-eket, egyszerű példával élve a DNS az internet telefonkönyve, ennek köszönhetően a számítógép és a felhasználó egyaránt tudja értelmezni a weblapok neveit. Ennek a rendszernek a része a DNS szerver, ami nevéből adodóan egy szerver, aminek az a feladata, hogy ezekre a DNS kérésekre válaszoljon, ez a gép mondja meg a számítógépednek, hogy hol kopogjon be, mikor te beírod a böngésződbe, hogy bitlords.net.
Miért érdemes lecserélni a gyárilag beállított DNS szervert?
Készülékeink alapból az ISP(szolgáltatónk) DNS szervereit használják. Ez azért nem jó, mert nincs bekapcsolva a DNS over TLS, valamint ezek a szolgáltatások logolnak is rendesen, magyarul az adataink szempontjából nem túl szerencsés.
Bővebben erről itt olvashatsz: https://bitlords.net/mit-lat-rolunk-az-isp/
DNS over TLS?
A TLS egy titkosítási eljárás, melyet a HTTPS protokollban is alkalmaznak. Erre azért van szükség, mert alapjáraton titkosítatlanul mennek a DNS kérések, ezzel teret adva a man in the middle attack-eknek, és a DNS manipulációnak, noha a legtöbb böngészőben manapság már alapból be van kapcsolva a DNS over HTTPS, ami, bár csak a böngészőn belül, de véd ettől.
Miért jó a ZeroLogDNS?
A legfőbb érv a privacy. A logok a /dev/null-ba vannak irányítva, tehát azonnal meg vannak semmisítve, egyedül a DNS kérések sikerességét logolja a szerver, ami az alapvető hibaelhárításhoz/figyeléshez szükséges. A szolgáltatás sebességét és stabilitását a 2 külön helyen található szerver biztosítja DoH failover, és load balance-olt DoT segítségével, tehát, ha valamelyik szerverrel valami gond lenne, akkor nincs semmi kiesés.
DoH
Nem ez a cikk fő témája, de érdemesnek tartom megemlíteni. A ZeroLogDNS oldalon található a doh.zerologdns.com domain ami a failover megoldás, ha ezt állítod be, akkor mindig az optimális szervert választja. A beállításról azért nem beszélek sokat, mert DoH-ot csak böngészőben érdemes használni, itt annyi a beállítás, hogy a beállításokban beírod a keresőbe, hogy DNS, és ott van lehetőség firefoxban a DNS over HTTPS bekapcsolására, braveben meg chromeban meg valami trendi magyar nevet adtak neki, de fel fogod ismerni. Ha megvan a keresett beállítás, akkor csak ki kell választani az egyedi lehetőséget, és a szövegdobozba beilleszteni a DNS oldalán található linket, még csak újraindítani sem kell a böngészőt. A működését úgy tudod ellenőrizni, hogy felmész a Perfect Privacy oldalára, megvárod, amíg lefut a teszt, és itt a ZeroLogDNS valamelyik szerverét kell kiadnia. Firefoxal többet fog kiadni, mert nem működik benne rendesen a DoH, és leakel, ezért DoH-val nem is éri meg firefoxot használni.
DoT
Elérkezett a cikk fő témája, a DoT linuxos beállítása. Nem fogunk külső programot használni, mert a systemD-nek van erre egy beépített megoldása, valamint még a Network Manager-t használjuk, a legtöbb linux rendszer ezt a kettő összetevőt tartalmazza is. A szolgáltatás, amit segítségül hívunk a systemd-resolved, ez alapból nem feltétlenül fut, ennek könnyedén utánajárhatsz a sudo systemctl status systemd-resolved
paranccsal (a status sort kell nézni). Amennyiben nem fut, a sudo systemctl enable --now systemd-resolved
paranccsal orvosolhatjuk. Következő lépésként nyissuk meg emelt jogosultsággal (sudo) egy tetszőleges szövegszerkesztőben a resolved.conf
-ot - ez nálam úgy néz ki, hogy:
sudo nvim /etc/systemd/resolved.conf
A fájl alaból valószínűleg tele van kommentekkel, de ne ess pánikba. Ami nekünk kell:
[Resolve]
DNS=37.221.197.124#dns.zerologdns.com
2a03:4000:9:6bf::1#dns.zerologdns.com
185.207.105.31#dns.zerologdns.com
2a03:4000:1e:f0::1#dns.zerologdns.com
DNSOverTLS=yes
Domains=~.
Én mind a kettő szerver IP címét adtam meg, de nyugodtan használhatod a kettő közül is valamelyiket, mert load balance-olva van, tehát úgyis kedvére változtatja, hogy mindenki jól járjon. Ajánlott mind a kettőt használni, de nem szükséges. Az IP után a #dns.zerologdns.com
-ra mindenképp szükség van. A DNSOverTLS=yes
sor az egész mozgatórugója, nem kell magyaráznom, hogy ezért jöttünk. A harmadik sor pedig nem feltétlenül kell, azért van ott, mert néhány esetben nem működik rendesen a névfeloldás.
Ezután mentsük el a configot, és menjünk át a Network Manager configjába.
sudo vim /etc/NetworkManager/NetworkManager.conf
Itt csak annyi a dolgunk, hogy megmondjuk a hálózatkezelő programnak, hogy hol keresse a DNS beállításokat.
[main]
plugins=keyfile
dns=systemd-resolved
Ezután nincs más dolgunk, mint újraindítani mindkét szolgáltatást.
sudo systemctl restart systemd-resolved
sudo systemctl restart NetworkManager
A resolvectl
paranccsal le is tudjuk ellenőrizni, hogy működnek-e a változtatások, ehhez nem kell mást tenned, csak beírni paraméterek nélkül.

Ehhez hasonló eredménynek kell lennie, láthatóan működik a DNSOverTLS, és az általam választott DNS kiszolgálót használja a rendszer, ezzel azt értük el, hogy a gépen minden egyes program TLS titkosítással fogja intézni a DNS kéréseket. Remélem tudtam segíteni, ha esetleg kérdésed van, akkor discordon megtalálsz minket.