BIND noto anche come "Berkeley Internet Name Domain" è uno dei più popolari Domain Name System (DNS) oggi. È un open source e fornisce servizi DNS su sistemi operativi Linux. In genere, aiuta a risolvere un nome di dominio completo in un indirizzo IP o un indirizzo IP in un nome di dominio. Può essere utilizzato come server dei nomi autorevole e fornisce diverse funzionalità come bilanciamento del carico, aggiornamento dinamico, DNS diviso, ecc.
In questo tutorial, ti mostreremo come configurare un server DNS privato con BIND su CentOS 8. In una nota correlata, dai un'occhiata al nostro tutorial sull'installazione e la configurazione di un semplice server DNS (BIND) su Debian 9.
Prerequisiti
- Un CentOS 8 VPS (useremo il nostro piano SSD 2 VPS)
- Accesso all'account utente root (o accesso a un account amministratore con privilegi root)
Ai fini di questo tutorial, utilizzeremo la seguente configurazione:
Nome host : ns1.rosehosting.local
Indirizzo IP : 192.168.1.100
Rete locale : 192.168.1.0/24
Passaggio 1:accedi al server e aggiorna i pacchetti del sistema operativo del server
Innanzitutto, accedi al tuo server CentOS 8 tramite SSH come utente root:
ssh root@IP_Address -p Port_number
Dovrai sostituire "Indirizzo_IP" e "Numero_porta" con il rispettivo indirizzo IP e numero di porta SSH del tuo server. Inoltre, se necessario, sostituisci "root" con il nome utente dell'account amministratore.
Prima di iniziare, devi assicurarti che tutti i pacchetti CentOS installati sul server siano aggiornati. Puoi farlo eseguendo i seguenti comandi:
dnf update -y
Passaggio 2:installa il server DNS BIND
Per impostazione predefinita, il pacchetto bind è disponibile nel repository standard di CentOS 8. Puoi installarlo eseguendo il seguente comando:
dnf install bind bind-utils -y
Una volta installato BIND, avvia il servizio BIND e abilitalo all'avvio al riavvio del sistema:
systemctl start named systemctl enable named
Passaggio 3:configurare il server DNS BIND
Per impostazione predefinita, il server BIND è in ascolto solo su localhost. Quindi dovrai configurarlo per l'ascolto su tutte le interfacce di rete. Puoi configurarlo modificando il file /etc/named.conf:
nano /etc/named.conf
Commenta le seguenti righe:
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Modifica la riga seguente per consentire la query per la tua rete locale:
allow-query { localhost;192.168.1.0/24; };
Salva e chiudi il file quando hai finito.
Fase 4:crea una zona DNS diretta e inversa
Una zona diretta viene utilizzata per risolvere il nome host in indirizzo IP mentre una zona inversa viene utilizzata per risolvere l'indirizzo IP in nome host. In genere, tutte le normali query DNS sono query di ricerca diretta. Puoi definire le zone di ricerca diretta e inversa nel file /etc/named.conf.
Modifica il file /etc/named.conf con il seguente comando:
nano /etc/named.conf
Aggiungi le seguenti righe alla fine del file
//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; }; };
Salva e chiudi il file quando hai finito.
Fase 5:crea file di zona avanti e indietro
Successivamente, dovrai creare file di zona avanti e indietro definiti nel passaggio precedente. Per impostazione predefinita, tutti i file di ricerca delle zone si trovano all'interno della directory /var/named.
Innanzitutto, crea un file di zona di inoltro con il seguente comando:
nano /var/named/rosehosting.local.db
Aggiungi le seguenti righe:
$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.
Salva e chiudi il file, quindi crea un file di zona inversa con il seguente comando:
nano /var/named/192.168.1.db
Aggiungi le seguenti righe:
$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.
Salva e chiudi il file quando hai finito.
Fase 6:verifica della configurazione DNS
Dopo aver configurato tutti i file di zona, dovrai verificare i file di configurazione.
Per prima cosa, convalida il file di configurazione principale con il seguente comando:
named-checkconf /etc/named.conf
Se tutto va bene, non vedrai alcun errore.
Quindi, verifica il file della zona di inoltro con il seguente comando:
named-checkzone rosehosting.local /var/named/rosehosting.local.db
Dovresti ottenere il seguente output:
zone rosehosting.local/IN: loaded serial 3 OK
Quindi, verifica il file della zona inversa con il seguente comando:
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db
Yu dovrebbe ottenere il seguente output:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3 OK
Infine, riavvia il servizio BIND per applicare le modifiche:
systemctl restart named
Passaggio 7:configura il firewall
Successivamente, dovrai creare una regola firewall per la porta 53 per consentire le query DNS dai computer client. Puoi crearlo con il seguente comando:
firewall-cmd --permanent --add-port=53/udp
Quindi, ricarica il servizio firewall per applicare le modifiche:
firewall-cmd --reload
Fase 8:verifica del server DNS
A questo punto il server BIND DNS è installato e configurato. È ora di verificare se funziona o meno.
Per prima cosa, modifica il tuo file /etc/resolv.conf e aggiungi l'IP del tuo server DNS:
nano /etc/resolv.conf
Aggiungi la seguente riga all'inizio del file:
nameserver 192.168.1.100
Salva e chiudi il file, quindi verifica la ricerca in avanti usando il comando dig:
dig www.rosehosting.local
Oppure
dig ns1.rosehosting.local
Se tutto va bene, dovresti ricevere la seguente risposta:
; <<>> 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
Quindi, verifica la ricerca inversa con il seguente comando:
dig -x 192.168.1.100
Dovresti ottenere la seguente risposta:
; <<>> 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
Congratulazioni! hai impostato correttamente un server DNS privato con BIND su CentOS 8.
Ovviamente, non devi fare nulla di tutto ciò se utilizzi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di configurarlo per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS . Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.