BIND také známý jako „Berkeley Internet Name Domain“ je dnes jedním z nejpopulárnějších systémů doménových jmen (DNS). Jedná se o open-source a poskytuje služby DNS na operačních systémech Linux. Obecně vám pomůže přeložit plně kvalifikovaný název domény na adresu IP nebo adresu IP na název domény. Může být použit jako autoritativní jmenný server a poskytuje několik funkcí, jako je vyrovnávání zátěže, dynamická aktualizace, rozdělené DNS atd.
V tomto tutoriálu vám ukážeme, jak nastavit soukromý server DNS s BIND na CentOS 8. V související poznámce se podívejte na náš tutoriál o instalaci a konfiguraci jednoduchého serveru DNS (BIND) v Debianu 9.
Předpoklady
- CentOS 8 VPS (budeme používat náš plán SSD 2 VPS)
- Přístup k uživatelskému účtu root (nebo přístup k účtu správce s oprávněními root)
Pro účely tohoto tutoriálu použijeme následující nastavení:
Název hostitele: ns1.rosehosting.local
IP adresa: 192.168.1.100
Místní síť: 192.168.1.0/24
Krok 1:Přihlaste se k serveru a aktualizujte balíčky operačního systému serveru
Nejprve se přihlaste ke svému serveru CentOS 8 přes SSH jako uživatel root:
ssh root@IP_Address -p Port_number
Budete muset nahradit „IP_Address“ a „Port_number“ příslušnou IP adresou vašeho serveru a číslem portu SSH. V případě potřeby navíc nahraďte „root“ uživatelským jménem účtu správce.
Před spuštěním se musíte ujistit, že všechny balíčky CentOS nainstalované na serveru jsou aktuální. Můžete to provést spuštěním následujících příkazů:
dnf update -y
Krok 2:Instalace serveru DNS BIND
Ve výchozím nastavení je balíček vazby dostupný ve standardním úložišti CentOS 8. Můžete jej nainstalovat spuštěním následujícího příkazu:
dnf install bind bind-utils -y
Jakmile je BIND nainstalován, spusťte službu BIND a povolte její spuštění při restartu systému:
systemctl start named systemctl enable named
Krok 3:Konfigurace serveru DNS BIND
Ve výchozím nastavení naslouchá server BIND pouze na localhost. Budete jej tedy muset nakonfigurovat tak, aby naslouchal na všech síťových rozhraních. Můžete jej nakonfigurovat úpravou souboru /etc/named.conf:
nano /etc/named.conf
Zakomentujte následující řádky:
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Změňte následující řádek, abyste povolili dotaz pro vaši místní síť:
allow-query { localhost;192.168.1.0/24; };
Po dokončení uložte a zavřete soubor.
Krok 4:Vytvoření dopředné a zpětné zóny DNS
Dopředná zóna se používá k překladu názvu hostitele na IP adresu, zatímco Reverzní zóna se používá k překladu IP adresy na název hostitele. Obecně platí, že všechny normální dotazy DNS jsou dotazy dopředného vyhledávání. Zóny dopředného a zpětného vyhledávání můžete definovat v souboru /etc/named.conf.
Upravte soubor /etc/named.conf pomocí následujícího příkazu:
nano /etc/named.conf
Přidejte následující řádky na konec souboru
//Forward Zone zone "rosehosting.local" IN { type master; file "rosehosting.local.db"; allow-update { none; }; }; //Reverse Zone zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.db"; allow-update { none; }; };
Po dokončení uložte a zavřete soubor.
Krok 5:Vytvoření dopředných a zpětných souborů zóny
Dále budete muset vytvořit soubory dopředné a zpětné zóny definované v předchozím kroku. Ve výchozím nastavení jsou všechny soubory vyhledávání zóny umístěny v adresáři /var/named.
Nejprve vytvořte soubor dopředné zóny pomocí následujícího příkazu:
nano /var/named/rosehosting.local.db
Přidejte následující řádky:
$TTL 86400 @ IN SOA ns1.rosehosting.local. root.rosehosting.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.rosehosting.local. ;IP address of Name Server ns1 IN A 192.168.1.100 ;A - Record HostName To Ip Address www IN A 192.168.1.101 ;CNAME record ftp IN CNAME www.rosehosting.local.
Uložte a zavřete soubor a poté vytvořte soubor reverzní zóny pomocí následujícího příkazu:
nano /var/named/192.168.1.db
Přidejte následující řádky:
$TTL 86400 @ IN SOA ns1.rosehosting.local. root.rosehosting.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.rosehosting.local. ;Reverse lookup for Name Server 100 IN PTR ns1.rosehosting.local. ;PTR Record IP address to HostName 101 IN PTR www.rosehosting.local.
Po dokončení uložte a zavřete soubor.
Krok 6:Ověřte konfiguraci DNS
Po konfiguraci všech souborů zóny budete muset ověřit konfigurační soubory.
Nejprve ověřte hlavní konfigurační soubor pomocí následujícího příkazu:
named-checkconf /etc/named.conf
Pokud je vše v pořádku, neuvidíte žádné chyby.
Dále ověřte soubor dopředné zóny pomocí následujícího příkazu:
named-checkzone rosehosting.local /var/named/rosehosting.local.db
Měli byste získat následující výstup:
zone rosehosting.local/IN: loaded serial 3 OK
Dále ověřte soubor reverzní zóny pomocí následujícího příkazu:
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db
Yu by měl dostat následující výstup:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3 OK
Nakonec restartujte službu BIND a použijte změny:
systemctl restart named
Krok 7:Konfigurace brány firewall
Dále budete muset vytvořit pravidlo brány firewall pro port 53, které umožní dotazy DNS z klientských počítačů. Můžete jej vytvořit pomocí následujícího příkazu:
firewall-cmd --permanent --add-port=53/udp
Poté znovu načtěte službu brány firewall, aby se změny projevily:
firewall-cmd --reload
Krok 8:Ověřte server DNS
V tomto okamžiku je server BIND DNS nainstalován a nakonfigurován. Je čas zkontrolovat, zda to funguje nebo ne.
Nejprve upravte svůj soubor /etc/resolv.conf a přidejte IP adresu DNS serveru:
nano /etc/resolv.conf
Na začátek souboru přidejte následující řádek:
nameserver 192.168.1.100
Uložte a zavřete soubor a poté ověřte dopředné vyhledávání pomocí příkazu dig:
dig www.rosehosting.local
Nebo
dig ns1.rosehosting.local
Pokud je vše v pořádku, měli byste obdržet následující odpověď:
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> www.rosehosting.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52518 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: cd9d365f1f02621aa9c8753c5fd47154db8cae737b9ca09f (good) ;; QUESTION SECTION: ;www.rosehosting.local. IN A ;; ANSWER SECTION: www.rosehosting.local. 86400 IN A 192.168.1.101 ;; AUTHORITY SECTION: rosehosting.local. 86400 IN NS ns1.rosehosting.local. ;; ADDITIONAL SECTION: ns1.rosehosting.local. 86400 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 192.168.1.100#53(192.168.1.100) ;; WHEN: Sat Dec 12 02:29:24 EST 2020 ;; MSG SIZE rcvd: 128
Dále ověřte zpětné vyhledávání pomocí následujícího příkazu:
dig -x 192.168.1.100
Měli byste obdržet následující odpověď:
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> -x 192.168.1.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30878 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 18a66bab478cf57219e6c17c5fd471671887a1dd983fef57 (good) ;; QUESTION SECTION: ;100.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.1.168.192.in-addr.arpa. 86400 IN PTR ns1.rosehosting.local. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 86400 IN NS ns1.rosehosting.local. ;; ADDITIONAL SECTION: ns1.rosehosting.local. 86400 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 192.168.1.100#53(192.168.1.100) ;; WHEN: Sat Dec 12 02:29:43 EST 2020 ;; MSG SIZE rcvd: 148
Gratulujeme! úspěšně jste nastavili soukromý server DNS s BIND na CentOS 8.
Samozřejmě nemusíte nic z toho dělat, pokud používáte některou z našich hostingových služeb Linux VPS, v takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby to za vás nastavili. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.
PS . Pokud se vám tento příspěvek líbil, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.