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.
Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět související dotazy týkající se systémů Linux.
V této souvislosti se podíváme na to, jak nainstalovat a nakonfigurovat server Unbound v Ubuntu 20.04.
Jak nainstalovat nevázaný server v Ubuntu?
Chcete-li nainstalovat nevázaný server pro rozlišení názvů v Ubuntu 20.04, spusťte příkaz níže:
$ sudo apt install unbound -y
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
Zde uvidíte, že všechny soubory .conf budou načteny z adresáře unbound.conf.d.
Dále vytvoříme nový konfigurační soubor v adresáři /etc/unbound/unbound.conf.d.
Zde jsme vytvořili soubor unbound_test.conf.
Nyní 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
Vytvořte také soubor protokolu a přidělte oprávnění k zápisu protokolů pomocí příkazů:
$ 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
Pro povolení služby použijte následující příkaz:
$ sudo service unbound enable
Zkontrolujte, zda je nevázaná služba spuštěna nebo ne, pomocí příkazu:
$ sudo service unbound status
Spuštěním následujícího příkazu zkontrolujte, který port unbound naslouchá:
$ sudo netstat -anlpt | grep LIST
Výstup ukáže, že služba Unbound naslouchá na portu 53, aby přijala požadavky.
Podmínky konfiguračního souboru nevázané služby
- port :port pro naslouchání pro bez vazby.
- hide-version :Nezobrazovat verzi nevázané.
- use-syslog:zadejte, zda chcete zapisovat protokoly do syslog.
- uživatelské jméno :Uživatel, pod kterým běží nevázání.
- 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.
- num-threads :Počet vláken , doporučuje se zadat stejný počet jader procesoru.
Jak otevřít port DNS ve 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
Nyní jsme se dostali k poslednímu bodu, abychom otestovali náš nový Unbound DNS server. Pro testování můžeme použít příkaz dig, který je součástí dříve nainstalovaného balíčku bind-utils. Proveďte některé dotazy DNS na skutečném serveru DNS. Zde jsme požádali kernel.org o testování:
$ dig kernel.org @localhost
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 našem případě je adresa IP Unbound DNS serveru 192.168.178.100):
$ dig kernel.org @192.168.178.100
Jak optimalizovat nevázané?
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 pro dosažení vysokého výkonu:
- num-threads:Vlož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.
- outgoing-range:Hodnotu můžete nastavit co největší v závislosti na počtu jader.
- so-sndbuf:Tuto hodnotu lze nastavit na větší hodnotu 4 m nebo 8 m pro vytížený server.
- Další podrobnosti naleznete na adrese https://nlnetlabs.nl/documentation/unbound/howto-optimise/.