DNS szerver beállítása linuxon (ZeroLogDNS)


#ZLDNS #DNS Linux Tutorial Privacy Networking

2022 Feb 01: 13:50

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.hu.

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.

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ítzeni. Az oldalon 3 link található, mert külön be tudod állítani a delta(osztrák), és az onyx(német) szervereket, valamint van egy doh.zerologdns.com domain is, 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#dot.zerologdns.com 2a03:4000:9:6bf::11#dot.zerologdns.com
DNSOverTLS=yes
Domains=~.

Én az onyx szerver IP címét adtam meg, de nyugodtan használhatod a deltát is, mert load balance-olva van, tehát úgyis kedvére változtatja, hogy mindenki jól járjon. Az IP után a #dot.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.