Domain Name System (in breve, DNS) è un servizio Internet utilizzato per risolvere il nome di dominio in un indirizzo IP e viceversa.
BIND (Berkeley Internet Name Domain) fornisce la funzionalità di conversione da nome a IP.
Questo post ti aiuterà a configurare il server DNS su Debian 10 / Debian 9.
Ambiente
Nome di dominio:itzgeek.local | ||
---|---|---|
ns1.itzgeek.local | 192.168.0.10 | Server DNS principale |
Prerequisiti
Aggiorna l'indice del repository.
sudo apt-get update
Assicurati che il server DNS abbia un indirizzo IP statico.
LEGGI :Come configurare l'indirizzo IP statico in Debian
Installa il server DNS
Il nome del pacchetto del server DNS in Debian è bind9 ed è disponibile nel repository di base. Puoi usare il comando apt per installare il pacchetto bind9.
sudo apt-get install -y bind9 bind9utils bind9-doc dnsutils
Configura server DNS
/etc/bind/ è la directory di configurazione di bind9, contiene i file di configurazione ei file di ricerca della zona. Il file di configurazione globale è /etc/bind/named.conf.
Crea zone
Iniziamo creando una zona di inoltro per il tuo dominio.
Non dovresti usare il file di configurazione globale per la zona DNS locale, piuttosto puoi usare il file /etc/bind/named.conf.local.
sudo nano /etc/bind/named.conf.local
Zona di andata
Quella che segue è la voce della zona di inoltro per il dominio itzgeek.local nel file named.conf.local.
zone "itzgeek.local" IN { //Domain name type master; //Primary DNS file "/etc/bind/forward.itzgeek.local.db"; //Forward lookup file allow-update { none; }; // Since this is the primary DNS, it should be none. };
Zona inversa
Quanto segue è per la zona inversa nel file named.conf.local.
zone "0.168.192.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order type master; // Primary DNS file "/etc/bind/reverse.itzgeek.local.db"; //Reverse lookup file allow-update { none; }; //Since this is the primary DNS, it should be none. };
Crea file di ricerca zona
Una volta create le zone, puoi procedere e creare file di dati di zona per la zona in avanti e la zona inversa.
Zona di andata
Copia le voci di esempio nel file di zona denominato forward.itzgeek.local.db per la zona di inoltro nella directory /etc/bind.
Tipi di record nel file di zona,
SOA – Inizio dell'autorità
NS – Server dei nomi
A – Un record
MX – Mail for Exchange
CN – Canonical Nome
I nomi di dominio devono terminare con un punto (.).
sudo cp /etc/bind/db.local /etc/bind/forward.itzgeek.local.db
Modifica la zona.
sudo nano /etc/bind/forward.itzgeek.local.db
Aggiorna il contenuto come mostrato di seguito.
Ogni volta che modifichi un record nel file di ricerca, assicurati di aggiornare il numero di serie con un numero casuale, superiore a quello attuale.; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below three lines ;@ IN NS localhost. ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 ;Name Server Information @ IN NS ns1.itzgeek.local. ;IP address of Name Server ns1 IN A 192.168.0.10 ;Mail Exchanger itzgeek.local. IN MX 10 mail.itzgeek.local. ;A – Record HostName To Ip Address www IN A 192.168.0.100 mail IN A 192.168.0.150 ;CNAME record ftp IN CNAME www.itgeek.local.
Zona inversa
Copia le voci di esempio nel file di zona denominato reverse.itzgeek.local.db per la zona inversa nella directory /etc/bind e crea puntatori inversi per i record della zona in avanti sopra.
PTR – Puntatore
SOA – Inizio dell'autorità
sudo cp /etc/bind/db.127 /etc/bind/reverse.itzgeek.local.db
Modifica il file della zona inversa.
sudo nano /etc/bind/reverse.itzgeek.local.db
Aggiorna il contenuto come mostrato di seguito.
Ogni volta che modifichi un record nel file di ricerca, assicurati di aggiornare il numero di serie con un numero casuale, superiore a quello attuale.; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA itzgeek.local. root.itzgeek.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; ; Commentout below two lines ;@ IN NS localhost. ;1.0.0 IN PTR localhost. ;Name Server Information @ IN NS ns1.itzgeek.local. ;Reverse lookup for Name Server 10 IN PTR ns1.itzgeek.local. ;PTR Record IP address to HostName 100 IN PTR www.itzgeek.local. 150 IN PTR mail.itzgeek.local.
Controlla la sintassi della configurazione di BIND
Usa il comando named-checkconf per controllare la sintassi dei file named.conf* per eventuali errori.
sudo named-checkconf
Il comando tornerà alla shell se non ci sono errori.
Inoltre, puoi utilizzare named-checkzone per controllare gli errori di sintassi nei file di zona.
Zona di andata
sudo named-checkzone itzgeek.local /etc/bind/forward.itzgeek.local.db
Risultato:
zone itzgeek.local/IN: loaded serial 2 OK
Zona inversa
sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/reverse.itzgeek.local.db
Risultato:
zone 0.168.192.in-addr.arpa/IN: loaded serial 2 OK
Riavvia il servizio di associazione.
sudo systemctl restart bind9
Controlla lo stato del servizio bind9.
sudo systemctl status bind9
Verifica DNS
Vai su qualsiasi macchina client e aggiungi il nostro nuovo indirizzo IP del server DNS nel file /etc/resolv.conf.
sudo nano /etc/resolv.conf
Inserisci una voce come di seguito.
nameserver 192.168.0.10
O
Leggi il tutorial seguente per impostare l'IP del server DNS in Linux.
LEGGI: Come impostare l'indirizzo IP DNS in CentOS / Fedora
LEGGI: Come impostare l'indirizzo IP DNS in Ubuntu / Debian – ifupdown
LEGGI: Come impostare l'indirizzo IP DNS in Ubuntu 18.04 – Netplan
Puoi utilizzare il comando nslookup o dig per verificare il server DNS.
Usa il comando dig per verificare la ricerca in avanti.
dig www.itzgeek.local
Se il comando non è stato trovato, installa bind-utils sui derivati di Red Hat o dnsutils sul pacchetto dei derivati Debian.
Risultato:
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> www.itzgeek.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: 41979 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: c51856f159ddf40dadc13b835e1024a996e2a306d7888afe (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 604800 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 1 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:37:45 UTC 2020 ;; MSG SIZE rcvd: 124
La risposta del server DNS per la ricerca in avanti www.itzgeek.local è 192.168.0.100.
Conferma la ricerca inversa con il comando dig.
dig -x 192.168.0.100
Risultato:
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33889 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 9806a5ee8f6645c178aa65b25e102530e49ae9a15456fbe1 (good) ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 604800 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 604800 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 604800 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Sat Jan 04 05:40:00 UTC 2020 ;; MSG SIZE rcvd: 148
La risposta del server DNS per la ricerca inversa 192.168.0.100 è www.itzgeek.local.
Questo risultato conferma che le ricerche della zona in avanti e inversa funzionano correttamente.
Conclusione
È tutto. Hai installato correttamente il server DNS su Debian 10 / Debian 9. Nel nostro prossimo articolo, configureremo il server DNS slave su Debian 10 / Debian 9.