Il Domain Name System (DNS) è un sistema di denominazione distribuito gerarchico per computer, servizi o qualsiasi risorsa connessa a Internet o a una rete privata. Associa varie informazioni ai nomi di dominio assegnati a ciascuna delle entità partecipanti.
Soprattutto, traduce i nomi di dominio significativi per l'uomo negli identificatori numerici associati alle apparecchiature di rete allo scopo di localizzare e indirizzare questi dispositivi in tutto il mondo.
Questa guida ti aiuterà a configurare il server DNS su CentOS 8 / RHEL 8.
Ipotesi
Nome host: ns1.itzgeek.local
Indirizzo IP: 192.168.0.10
Installa il server DNS
BIND sta per Berkeley Internet Name Domain, un software che offre la possibilità di eseguire la conversione da nome a IP.
yum -y install bind bind-utils
Configura server DNS
Il file di configurazione principale di BIND è /etc/named.conf. Useremo questo file per configurare il server DNS e definire la zona DNS.
Per impostazione predefinita, BIND è in ascolto su localhost. Pertanto, configureremo i server DNS per l'ascolto su tutte le interfacce di rete o su un'interfaccia particolare.
Modifica il file /etc/named.conf.
vi /etc/named.conf
Commenta la riga seguente. Ciò consentirà a BIND di ascoltare le interfacce di rete del sistema diverse da localhost.
Ascolta su tutti gli indirizzi IP:
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Ascolta su un indirizzo IP particolare:
listen-on port 53 { 127.0.0.1; 192.168.0.10; };
Aggiungi la tua rete nella riga seguente. Ho aggiunto 192.168.0.0/24 per consentire ai client della rete 192.168.0.0/24 di interrogare il server DNS per la traduzione da nome a IP.
allow-query { localhost;192.168.0.0/24; };
Crea zone
Modifica il file /etc/named.conf.
vi /etc/named.conf
Zona di andata
Quella che segue è la voce della zona di inoltro nel file named.conf, scritta per il dominio itzgeek.local.
zone "itzgeek.local" IN { // Domain Name type master; // Master DNS Server file "itzgeek.local.db"; // Zone File (/var/named/) allow-update { none; }; // Since master DNS, it is none };
itzgeek.local – Nome di dominio
maestro – DNS primario
itzgeek.local.db – File di ricerca in avanti
consenti aggiornamento – Dato che questo è il DNS principale, non dovrebbe essercene nessuno
Zona inversa
Quella che segue è la voce della zona inversa nel file named.conf.
zone "0.168.192.in-addr.arpa" IN { // Reverse Zone Name, should match with network in reverse order type master; // Master DNS Server file "192.168.0.db"; // Zone File (/var/named/) allow-update { none; }; // Since master DNS, it is none };
0.168.192.in-addr.arpa – Nome ricerca inversa
maestro – DNS primario
192.168.0.db – File di ricerca inversa
consenti aggiornamento – Dato che questo è il DNS principale, non dovrebbe essercene nessuno
Crea file di zona
Ora è il momento di creare un file di ricerca per una zona creata. Per impostazione predefinita, i file di ricerca della zona vengono inseriti nella directory /var/named. Crea un file di zona chiamato itzgeek.local.db per la ricerca diretta nella directory /var/named.
Tutti i nomi di dominio devono terminare con un punto (.).
Zona di andata
Esistono alcune parole chiave speciali per i file di zona
Crea un file.
vi /var/named/itzgeek.local.db
A – Un record
NS – Server dei nomi
MX – Posta per Exchange
CNAME – Nome canonico
$TTL 86400 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;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.
Ogni volta che aggiorni i file di zona per l'aggiornamento del record DNS, non dimenticare di incrementare il seriale.
Zona inversa
Crea un file di zona chiamato 192.168.0.db per la zona inversa nella directory /var/named, crea un puntatore inverso alle voci della zona diretta sopra.
vi /var/named/192.168.0.db
PTR – Puntatore
SOA – Inizio dell'autorità
$TTL 86400 @ IN SOA ns1.itzgeek.local. root.itzgeek.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;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.
Ogni volta che aggiorni i file di zona per l'aggiornamento del record DNS, non dimenticare di incrementare il seriale.
Convalida della configurazione del server DNS
Usa il comando named-checkconf per convalidare il file di configurazione.
named-checkconf /etc/named.conf
Se non vedi alcun errore, allora sei a posto.
Convalida il file della zona di inoltro che hai creato con il comando seguente.
named-checkzone itzgeek.local /var/named/itzgeek.local.db
itzgeek.local – Nome di dominio
/var/named/itzgeek.local.db – Percorso di un file di zona
Risultato:
zone itzgeek.local/IN: loaded serial 3 OKIl numero di serie menzionato nell'output deve corrispondere al numero di serie nei file di zona.
Fai lo stesso anche per la zona inversa.
named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.db
Risultato:
zone 0.168.192.in-addr.arpa/IN: loaded serial 3 OK
Avvia servizio DNS
Dopo aver convalidato le configurazioni DNS, riavvia il servizio di collegamento.
systemctl restart named
Abilitalo all'avvio del sistema.
systemctl enable named
Aggiornamento record DNS
Ogni volta che modifichi un record DNS, non dimenticare di modificare il numero di serie nel file di zona e ricaricare la zona.
Modifica itzgeek.local e 0.168.192.in-addr.arpa con i nomi delle tue zone.
### Forward Zone ### rndc reload itzgeek.local ### Reverse Zone ### rndc reload 0.168.192.in-addr.arpa
Firewall
Aggiungi una regola firewall per consentire le query DNS dai computer client.
firewall-cmd --permanent --add-port=53/udp firewall-cmd --reload
Verifica server DNS
Visita qualsiasi macchina client e aggiungi l'indirizzo IP di un server DNS in /etc/resolv.conf se Network Manager non gestisce la rete.
nameserver 192.168.0.10
Se Network Manager gestisce la rete, inserisci la seguente voce nel file /etc/sysconfig/network-scripts/ifcfg-eXX.
DNS1=192.168.0.10
Riavvia il servizio di rete.
service network restart OR systemctl restart NetworkManager
Utilizzare il comando seguente per verificare la ricerca in avanti, in cui il server DNS fornisce 192.168.0.100 come IP per www.itzgeek.local .
dig www.itzgeek.local
Risultato:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> 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: 42679 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 99d94df91828bc8e957709ec5e13f9cd0c242970a9488a91 (good) ;; QUESTION SECTION: ;www.itzgeek.local. IN A ;; ANSWER SECTION: www.itzgeek.local. 86400 IN A 192.168.0.100 ;; AUTHORITY SECTION: itzgeek.local. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Tue Jan 07 08:53:56 IST 2020 ;; MSG SIZE rcvd: 124Installa il pacchetto bind-utils per ottenere il comando nslookup o dig.
Conferma la ricerca inversa, in cui il server DNS fornisce www.itzgeek.local come nome per 192.168.0.100 . È ora confermato che le ricerche sia in avanti che inverse funzionano correttamente.
dig -x 192.168.0.100
Risultato:
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> -x 192.168.0.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43305 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: d36aa24edb88f8951b3fbf8c5e13fa2cbf0e3ed754a00eee (good) ;; QUESTION SECTION: ;100.0.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.0.168.192.in-addr.arpa. 86400 IN PTR www.itzgeek.local. ;; AUTHORITY SECTION: 0.168.192.in-addr.arpa. 86400 IN NS ns1.itzgeek.local. ;; ADDITIONAL SECTION: ns1.itzgeek.local. 86400 IN A 192.168.0.10 ;; Query time: 0 msec ;; SERVER: 192.168.0.10#53(192.168.0.10) ;; WHEN: Tue Jan 07 08:55:30 IST 2020 ;; MSG SIZE rcvd: 148
Conclusione
È tutto. Hai installato correttamente BIND su CentOS 8 / RHEL 8 come server master. Nel prossimo articolo vedremo come configurare un server DNS slave su CentOS 8 / RHEL 8.