Unbound je rekurzivní, ověřující, velmi bezpečný server s mezipamětí DNS, který je distribuován zdarma pod licencí BSD. Unbound podporuje DNS-over-TLS a DNS-over-HTTPS pro zvýšení soukromí online tím, že klientům umožňuje šifrovat jejich připojení. V závislosti na konfiguraci vaší sítě může Unbound podporovat IPV4 i IPV6. Instalace a konfigurace Unbound v linuxových distribucích je poměrně jednoduchá a přímočará. Balíček Unbound je dostupný ve většině moderních OS včetně CentOS, Ubuntu, Fedora. Společnosti, které používají svou vlastní doménu k internímu obsluhování aplikací nebo webových stránek, mohou jako DNS server využít unbound. V tomto článku se naučíme, jak nainstalovat a nakonfigurovat Unbound server v Ubuntu 20.04.
Instalace
Instalace nevázaného serveru pro rozlišení jmen v Ubuntu 20.04 je velmi jednoduchá a snadná. Spusťte následující příkaz a nainstalujte balíček
$ sudo apt install unbound -y
Výstup:
Spusťte také následující příkaz pro instalaci dalších balíčků, které použijeme ke kontrole konfigurace serveru DNS
$ sudo apt install bind-utils net-tools -y
Po dokončení instalace lze obsah konfiguračního souboru nalézt pomocí příkazu:
$ cat /etc/unbound/unbound.conf
Výstup:
Výstup ukazuje, že z adresáře unbound.conf.d budou načteny všechny soubory .conf.
Vytvořte nový konfigurační soubor v adresáři /etc/unbound/unbound.conf.d adresář. V tomto příkladu jsem vytvořil unbound_test.conf soubor. Můžete mít svůj vlastní předpoklad.
Otevřete soubor pomocí textového editoru a přidejte následující ukázkovou konfiguraci. Podle toho můžete upravit parametry.
$ sudo nano /etc/unbound/unbound.conf.d/unbound_test.conf
server: port: 53 verbosity: 0 num-threads: 2 outgoing-range: 512 num-queries-per-thread: 1024 msg-cache-size: 32m interface: 127.0.0.1 interface: 192.168.5.5 rrset-cache-size: 64m cache-max-ttl: 86400 infra-host-ttl: 60 infra-lame-ttl: 120 outgoing-interface: 192.168.0.2 access-control: 127.0.0.0/8 allow access-control: 192.168.5.0/24 allow username: unbound directory: "/etc/unbound" logfile: "/var/log/unbound.log" use-syslog: no hide-version: yes so-rcvbuf: 4m so-sndbuf: 4m do-ip4: yes do-ip6: no do-udp: yes do-tcp: yes
Now create a log file and assign permission to write logs $ sudo touch /var/log/unbound.log
$ sudo chown unbound:unbound /var/log/unbound.log
Restartujte službu Unbound a načtěte konfiguraci
$ sudo service unbound restart
Pomocí následujícího příkazu povolíte službu
$ sudo service unbound enable
Zkontrolujte, zda je nevázaná služba spuštěna nebo ne, pomocí příkazu:
$ sudo service unbound status
výstup:
Spuštěním následujícího příkazu zkontrolujte, na kterém portu nevázaný naslouchá
$ sudo netstat -anlpt | grep LIST
Výstup:
Výstup ukazuje, že služba Unbound naslouchá na portu 53, aby přijala požadavky.
Vysvětlení konfiguračního souboru:
port :Port pro naslouchání pro Unbound
skrýt verzi :Nezobrazovat verzi unbound
use-syslog :určete, zda chcete zapisovat protokoly do syslog
uživatelské jméno :Uživatel, pod kterým běží unbound
výřečnost :Úroveň protokolu, která se pohybuje od 0 do 4 a 4 je úroveň protokolu ladění
rozhraní :Rozhraní, ve kterých budou naslouchány nesvázaným požadavkům
odchozí rozhraní :Rozhraní, přes které přichází internet
počet vláken :Počet vláken , doporučuje se zadat stejný počet jader procesoru
Otevřete port DNS v bráně firewall.
Jakmile je konfigurační soubor vytvořen, musíte otevřít port DNS, aby se místní klienti LAN mohli připojit k vašemu serveru DNS Unbound cache-only.
$ sudo ufw allow from any to any port 53 proto tcp
$ sudo ufw allow from any to any port 53 proto udp
Chcete-li zkontrolovat pravidlo brány firewall, spusťte následující příkaz
$ sudo ufw status
Výstup:
Nyní jsme se dostali k poslednímu bodu, abychom otestovali náš nový Unbound DNS server. Pro testování můžeme použít dig příkaz, který je součástí dříve nainstalovaného balíčku bind-utils . Proveďte některé dotazy DNS na skutečném serveru DNS. Pro tento příklad jsem požádal o testování na kernel.org. Můžete mít svůj vlastní předpoklad.
$ dig kernel.org @localhost
Výstup:
Doba odezvy na první dotaz je 4 ms. Protože jsme nakonfigurovali server Unbound DNS, je nyní dotaz uložen do mezipaměti. Chcete-li ověřit mezipaměť DNS, spusťte následující dotaz se stejným názvem domény.
$ dig kernel.org @localhost
Nyní můžete zjistit, že doba dotazu je 0 ms.
Pokud chcete otestovat konfiguraci serveru Unbound DNS z klientů LAN, dotazujte se na odpověď DNS směřující na IP serveru Unbound DNS. (V mém případě je IP adresa mého nevázaného DNS serveru 192.168.178.130)
$ dig kernel.org @192.168.178.130
Optimalizace
Výchozí konfigurace Unbound funguje dobře pro omezené uživatele, ale v případě, že má být služba poskytována velkému počtu uživatelů, je třeba provést určitou optimalizaci. Zde jsou některé možnosti optimalizace, které můžete implementovat, abyste dosáhli vysokého výkonu.
počet vláken: Umístěte do systému stejný počet jader CPU, například zadejte hodnotu 4 pro 2 CPU, každé se 2 jádry.
so-reuseport:ano V linuxu to pomáhá zlepšit výkon UDP
odchozí rozsah :Hodnotu můžete nastavit co největší v závislosti na počtu jader.
so-sndbuf: Tuto hodnotu lze nastavit na větší hodnotu 4m nebo 8m pro zaneprázdněný server.
Další podrobnosti naleznete na adrese
https://nlnetlabs.nl/documentation/unbound/howto-optimise/
Závěr
V článku jsme se zabývali tím, jak nainstalovat a nakonfigurovat Unbound name resolution server v Ubuntu se základní konfigurací. Některé testy byly provedeny pomocí příkazu dig ke kontrole konfigurace serveru Unbound. Také jsme se dozvěděli, jak dotazovat odpovědi DNS od místního klienta LAN pomocí IP adresy nevázaného serveru. Velmi oceníme jakoukoli zpětnou vazbu a návrhy.