Úvod
Unbound je ověřovací, rekurzivní a mezipaměťový server DNS. Nevázaný server DNS však nelze použít jako autoritativní server DNS, což znamená, že jej nelze použít k hostování záznamů vlastních doménových jmen. V důsledku toho, pokud je vaším cílem vybudovat server DNS pouze pro mezipaměť nebo přesměrování, může být Unbound vaší preferovanou volbou, protože to dělá a dělá to dobře.
Cíl
Cílem je poskytnout rychlý a snadno sledovatelný průvodce instalací a konfigurací pro server DNS Unbound cache-only na Redhat 7 Linux. Na konci této příručky budete moci používat Unbound DNS server ze všech klientů ve vaší lokální síti.
Požadavky
Privilegovaný přístup k vašemu serveru Redhat 7 Linux s nakonfigurovanými standardními repozitáři RedHat.
Obtížnost
STŘEDNÍ
Konvence
- # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí
sudo
příkaz - $ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel
Pokyny
Nevázaná instalace a instalace nástrojů DNS
V prvním kroku nainstalujeme skutečný Unbound DNS server a také nástroje DNS, které budou případně použity k testování konfigurace vašeho serveru DNS cache-only. Vzhledem k tomu, že máte správně nakonfigurované úložiště Redhat, můžete oba nainstalovat spuštěním následujícího příkazu pro linux:
# yum install unbound bind-utils
Základní nevázaná konfigurace
Nyní provedeme základní konfiguraci serveru Unbound DNS caching-only. To se provede úpravou konfiguračního souboru Unbound /etc/unbound/unbound.conf
buď pomocí textového editoru nebo pomocí níže uvedeného sed
příkazy. Nejprve pomocí preferovaného textového editoru vyhledejte řádek # interface: 0.0.0.0
a odkomentujte jej odstraněním úvodního #
podepsat. Případně použijte níže uvedený sed
příkaz:
# sed -i '/interface: 0.0.0.0$/s/#//' /etc/unbound/unbound.conf
Výše uvedená konfigurace nařídí serveru Unbound DNS, aby naslouchal na všech rozhraních místní sítě. Dále povolte svým klientům LAN dotazovat se na mezipaměť Unbound. Najděte příslušný řádek a změňte výchozí adresu IP zpětné smyčky 127.0.0.0/8
na síťovou adresu vaší LAN, např. 10.0.0.0/24
:
FROM: access-control: 127.0.0.0/8 allow TO access-control: 10.0.0.0/24 allow
Výše uvedené může také provést sed
příkaz:
# sed -i 's/127.0.0.0\/8 allow/10.0.0.0\/24 allow/' /etc/unbound/unbound.conf
Nastavení podpory DNSSEC
Dále instruujeme Unbound DNS server, aby vygeneroval RSA klíče za účelem poskytnutí podpory DNSSEC:
# unbound-control-setup setup in directory /etc/unbound generating unbound_server.key Generating RSA private key, 1536 bit long modulus .................++++ .........++++ e is 65537 (0x10001) generating unbound_control.key Generating RSA private key, 1536 bit long modulus .........++++ ..................................++++ e is 65537 (0x10001) create unbound_server.pem (self signed certificate) create unbound_control.pem (signed client certificate) Signature ok subject=/CN=unbound-control Getting CA Private Key Setup success. Certificates created. Enable in unbound.conf file to use
Zbývá pouze zkontrolovat konfiguraci Unbound:
# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf
Povolte a spusťte nevázaný server
V této fázi povolíme spuštění serveru Unbound DNS v době spouštění:
# systemctl enable unbound Created symlink from /etc/systemd/system/multi-user.target.wants/unbound.service to /usr/lib/systemd/system/unbound.service.
a spusťte skutečnou službu:
# service unbound start Redirecting to /bin/systemctl start unbound.service
Ujistěte se, že je spuštěn Unbound DNS server kontrolou jeho stavu:
[root@localhost unbound]# service unbound status Redirecting to /bin/systemctl status unbound.service ● unbound.service - Unbound recursive Domain Name Server Loaded: loaded (/usr/lib/systemd/system/unbound.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2016-12-07 10:32:58 AEDT; 6s ago Process: 2355 ExecStartPre=/usr/sbin/unbound-anchor -a /var/lib/unbound/root.key -c /etc/unbound/icannbundle.pem (code=exited, status=0/SUCCESS) Process: 2353 ExecStartPre=/usr/sbin/unbound-checkconf (code=exited, status=0/SUCCESS) Main PID: 2357 (unbound) CGroup: /system.slice/unbound.service └─2357 /usr/sbin/unbound -d Dec 07 10:32:57 localhost.localdomain systemd[1]: Starting Unbound recursive Domain Name Server... Dec 07 10:32:57 localhost.localdomain unbound-checkconf[2353]: unbound-checkconf: no errors in /etc/unbound/unbound.conf Dec 07 10:32:58 localhost.localdomain systemd[1]: Started Unbound recursive Domain Name Server. Dec 07 10:32:58 localhost.localdomain unbound[2357]: Dec 07 10:32:58 unbound[2357:0] warning: increased limit(open files) from 1024 to 8266 Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 0: validator Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 1: iterator Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] info: start of service (unbound 1.4.20).
Otevřete port brány firewall DNS
Chcete-li umožnit svým klientům místní sítě LAN připojit se k vašemu novému serveru DNS Unbound cache-only, budete muset otevřít port DNS:
# firewall-cmd --permanent --add-service dns success # firewall-cmd --reload success
Vše hotovo, nyní jsme připraveni k testování.
Testování
Konečně jsme se dostali do bodu, kdy můžeme provést základní testování našeho nového serveru Unbound DNS cache-only. K tomu používáme dig
příkaz, který je součástí dříve nainstalovaného bind-utils
balíček pro provádění některých DNS dotazů. Nejprve proveďte DNS dotaz na skutečném DNS serveru:
# dig @localhost example.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53485 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 93.184.216.34 ;; Query time: 817 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Dec 07 10:40:46 AEDT 2016 ;; MSG SIZE rcvd: 56
Všimněte si, že doba dotazu je více než 817 ms. Protože jsme nakonfigurovali server DNS pouze s mezipamětí, tento dotaz je nyní ukládán do mezipaměti, takže jakékoli následné překlady dotazů DNS se stejným názvem domény jsme spíše okamžité:
# dig @localhost example.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34443 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86272 IN A 93.184.216.34 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Dec 07 10:42:54 AEDT 2016 ;; MSG SIZE rcvd: 56
Nakonec můžete nyní otestovat konfiguraci serveru Ubound DNS z vašich místních klientů LAN tak, že je nasměrujete na IP adresu Unbound, např. 10.1.1.45:
$ dig @10.1.1.45 example.com ; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> @10.1.1.45 example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 50494 ;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; Query time: 0 msec ;; SERVER: 10.1.1.45#53(10.1.1.45) ;; WHEN: Wed Dec 07 10:45:43 AEDT 2016 ;; MSG SIZE rcvd: 12