Iniziare con il server DNS BIND

Il Domain Name Server (DNS) è un componente critico dell’infrastruttura internet e la creazione del proprio server DNS può essere impegnativa. Beh, non con BIND, dove puoi creare il tuo server DNS BIND in poco tempo. BIND ha un’ottima reputazione tra gli amministratori per la sua flessibilità e il supporto ad alta disponibilità.

In questo articolo, imparerai come installare e configurare un server DNS BIND sicuro e verificare che i sotto-domini vengano risolti all’indirizzo IP corretto.

Continua a leggere e crea il tuo server DNS senza sforzo!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Per seguirlo, assicurati di avere quanto segue.

  • A Linux server – This example uses the Ubuntu 20.04 server.
  • A non-root user with root privileges or root/administrator user.
  • A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.

Installazione dei pacchetti BIND

Il repository predefinito di Ubuntu fornisce pacchetti BIND ma non vengono installati con il tuo sistema. Puoi installare BIND come server DNS principale o solo autoritativo. BIND ti offre potenti funzionalità, come il supporto all’installazione master-slave, il supporto DNSSEC e liste di controllo degli accessi (ACL) integrate.

Per iniziare con BIND DNS, prima dovrai installare i pacchetti BIND sulla tua macchina con il gestore di pacchetti apt.

1. Apri il terminale e accedi al tuo server.

2. Successivamente, esegui il comando apt update qui sotto per aggiornare e aggiornare l’indice dei pacchetti del repository. Questo comando assicura che tu stia installando la versione più recente dei pacchetti.

sudo apt update
Refreshing Package Index

3. Una volta aggiornato, esegui il seguente comando apt install qui sotto per installare i pacchetti BIND per il server Ubuntu.

I pacchetti bind9-utils e bind9-dnsutils forniscono strumenti aggiuntivi a riga di comando per BIND. Questi pacchetti sono utili per testare e gestire il server DNS BIND.

sudo apt install bind9 bind9-utils bind9-dnsutils -y
Installing BIND Packages

4. Infine, esegui il comando systemctl qui sotto per verificare il servizio BIND.

Il pacchetto BIND include il servizio named e viene avviato ed abilitato automaticamente durante l’installazione del pacchetto BIND.

# Verifica se il servizio named è abilitato
sudo systemctl is-enabled named

# Verifica lo stato del servizio named
sudo systemctl status named

Ora dovresti vedere che il servizio BIND named è abilitato con lo stato attivo (in esecuzione). A questo punto, il servizio BIND verrà eseguito automaticamente all’avvio del sistema.

Checking BIND named service

Configurazione del Server DNS BIND

Hai ora installato i pacchetti BIND sul server Ubuntu, quindi è il momento di configurare l’installazione di BIND sul tuo server Ubuntu. Come? Modificando le configurazioni di BIND e del servizio named.

Tutte le configurazioni per BIND sono disponibili nella directory /etc/bind/, e le configurazioni per il servizio named sono in /etc/default/named.

1. Modifica la configurazione di /etc/default/named utilizzando il tuo editor preferito e aggiungi l’opzione -4 sulla linea OPTIONS, come mostrato di seguito. Questa opzione farà funzionare il servizio named solo su IPv4.

OPTIONS="-4 -u bind"

Salva le modifiche apportate e chiudi il file.

Configuring BIND to Run on IPv4 Only

2. Successivamente, modifica il file /etc/bind/named.conf.options e inserisci la seguente configurazione sotto la linea directory "/var/cache/bind";.

Questa configurazione imposta il servizio BIND per funzionare sulla porta UDP predefinita 53 sia sull’localhost del server che sul suo indirizzo IP pubblico (172.16.1.10). Allo stesso tempo, consente query da qualsiasi host al server DNS BIND utilizzando il forwarder Cloudflare DNS 1.1.1.1.

    // listen port and address
    listen-on port 53 { localhost; 172.16.1.10; };

    // for public DNS server - allow from any
    allow-query { any; };

    // define the forwarder for DNS queries
    forwarders { 1.1.1.1; };

    // enable recursion that provides recursive query
    recursion yes;

In fondo, commenta la linea listen-on-v6 { any; };, come mostrato di seguito, per disabilitare il servizio named dall’esecuzione su IPv6.

Editing the BIND Configuration Options

3. Infine, esegui il seguente comando per verificare la configurazione di BIND.

sudo named-checkconf

Se non c’è output, le configurazioni BIND sono corrette senza errori.

Verifying BIND Configurations

Configurazione delle Zone DNS

A questo punto, hai configurato la configurazione di base del server DNS BIND. Sei pronto a creare un server DNS con il tuo dominio e ad aggiungere altri sottodomini per le tue applicazioni. Dovrai definire e creare una nuova configurazione delle zone DNS per farlo.

In questo tutorial, creerai un nuovo Name Server (ns1.atadomain.io) e sottodomini (www.atadomain.io, mail.atadomain.io, vault.atadomain.io).

1. Modifica il file /etc/bind/named.conf.local utilizzando il tuo editor preferito e aggiungi la seguente configurazione.

Questa configurazione definisce la zona forward (/etc/bind/zones/forward.atadomain.io) e la zona reverse (/etc/bind/zones/reverse.atadomain.io) per il nome di dominio atadomain.io.

zone "atadomain.io" {
    type master;
    file "/etc/bind/zones/forward.atadomain.io";
};

zone "1.16.172.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/reverse.atadomain.io";
};

Salva le modifiche e chiudi il file.

Defining Forward Zone and Reverse Zone BIND

2. Successivamente, esegui il comando sottostante per creare una nuova directory (/etc/bind/zones) per le configurazioni delle zone DNS stringhe.

mkdir -p /etc/bind/zones/

3. Esegui ciascun comando di seguito per copiare la configurazione predefinita delle zone forward e reverse nella directory /etc/bind/zones.

# Copia la zona forward predefinita
sudo cp /etc/bind/db.local /etc/bind/zones/forward.atadomain.io

# Copia la zona reverse predefinita
sudo cp /etc/bind/db.127 /etc/bind/zones/reverse.atadomain.io

# Elenca i contenuti della directory /etc/bind/zones/
ls /etc/bind/zones/
Copying Default Zones Configurations

4. Ora, modifica la configurazione della zona forward (/etc/bind/zones/forward.atadomain.io) utilizzando il tuo editor preferito e popola la configurazione seguente.

La configurazione della zona di avanti è dove si definisce il nome di dominio e l’indirizzo IP del server. Questa configurazione tradurrà il nome di dominio nel corretto indirizzo IP del server.

La configurazione qui sotto crea il seguente name server e sottodomini:

  • ns1.atadomain.io – Il principale Name Server per il tuo dominio con l’indirizzo IP 172.16.1.10.
  • Record MX per il dominio atadomain.io che è gestito da mail.atadomain.io. Il record MX è usato per il server di posta.
  • Sottodomini per le applicazioni: www.atadomain.io, mail.atadomain.io, e vault.atadomain.io.
;
; BIND data file for the local loopback interface
;
$TTL    604800
@       IN      SOA     atadomain.io. root.atadomain.io. (
                            2         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL

; Define the default name server to ns1.atadomain.io
@       IN      NS      ns1.atadomain.io.

; Resolve ns1 to server IP address
; A record for the main DNS
ns1     IN      A       172.16.1.10


; Define MX record for mail
atadomain.io. IN   MX   10   mail.atadomain.io.


; Other domains for atadomain.io
; Create subdomain www - mail - vault
www     IN      A       172.16.1.10
mail    IN      A       172.16.1.20
vault   IN      A       172.16.1.50

Salva le modifiche e chiudi il file.

Configuring Forward Zone BIND

5. Come per la zona di avanti, modifica il file di configurazione della zona inversa (/etc/bind/zones/reverse.atadomain.io) e popola la seguente configurazione.

La zona inversa traduce l’indirizzo IP del server nel nome di dominio. La zona inversa o il record PTR sono essenziali per servizi come il server di posta, il quale influisce sulla reputazione del server di posta.

Il record PTR utilizza l’ultimo blocco dell’indirizzo IP, come il record PTR con il numero 10 per l’indirizzo IP del server 172.16.1.10.

Questa configurazione crea la zona inversa o il record PTR per i seguenti domini:

  • Name server ns1.atadomain.io con la zona inversa o il record PTR 172.16.1.10.
  • Record PTR per il dominio mail.atadomain.io all’indirizzo IP del server 172.16.1.20.
;
; BIND reverse data file for the local loopback interface
;
$TTL    604800
@       IN      SOA     atadomain.io. root.atadomain.io. (
                            1         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL

; Name Server Info for ns1.atadomain.io
@       IN      NS      ns1.atadomain.io.


; Reverse DNS or PTR Record for ns1.atadomain.io
; Using the last number of DNS Server IP address: 172.16.1.10
10      IN      PTR     ns1.atadomain.io.


; Reverse DNS or PTR Record for mail.atadomain.io
; Using the last block IP address: 172.16.1.20
20      IN      PTR     mail.atadomain.io.

Salva le modifiche e chiudi il file.

Configuring Reverse Zone BIND

6. Ora, esegui i seguenti comandi per controllare e verificare le configurazioni di BIND.

# Verifica la configurazione principale per BIND
sudo named-checkconf

# Verifica la zona di forwarding forward.atadomain.io
sudo named-checkzone atadomain.io /etc/bind/zones/forward.atadomain.io

# Verifica la zona di reverse reverse.atadomain.io
sudo named-checkzone atadomain.io /etc/bind/zones/reverse.atadomain.io

Quando la tua configurazione è corretta, vedrai un output simile a quello di seguito.

Checking and Verifying BIND configurations

7. Infine, esegui il comando systemctl qui sotto per riavviare e verificare il servizio named. In questo modo si applicano le nuove modifiche al servizio named.

# Riavvia il servizio named
sudo systemctl restart named

# Verifica il servizio named
sudo systemctl status named

Di seguito, puoi vedere che lo stato del servizio named è attivo (in esecuzione).

Restarting Named Service and Verifying Named Service Status

Apertura della porta DNS con il firewall UFW

A questo punto, hai completato l’installazione del server DNS BIND. Tuttavia, devi ancora proteggere il tuo server DNS. Configurerai il firewall UFW e aprirai la porta DNS per qualsiasi query al server. In questo modo, consenti ai client di effettuare una query al server DNS BIND.

Per motivi di sicurezza, è consigliabile eseguire e abilitare il firewall UFW sul tuo server Ubuntu.

1. Esegui il comando ufw qui sotto per verificare le applicazioni disponibili sul firewall UFW.

sudo ufw app list

Dovresti vedere il Bind9 nella lista delle applicazioni di UFW qui sotto.

Listing Available Applications on the UFW Firewall

2. Ora esegui il comando seguente per consentire al Bind9 nel firewall UFW.

sudo ufw allow Bind9
Adding UW Rule

3. Infine, esegui il seguente comando per controllare le regole abilitate nel firewall UFW.

sudo ufw status

Dovresti vedere l’applicazione Bind9 nella lista come nello screenshot qui sotto.

Verifying List of Rules

Verifica dell’installazione del server DNS BIND

Hai completato l’installazione del server DNS BIND e configurato il firewall UFW. Ma come verificare l’installazione del tuo server DNS? Il comando dig farà il trucco.

Dig è un’utilità da riga di comando per risolvere i problemi di installazione del server DNS. Il comando dig esegue una ricerca DNS per il nome di dominio dato e visualizza risposte dettagliate per il target del nome di dominio. Nel sistema Ubuntu, dig fa parte del pacchetto bind9-dnsutil.

Per verificare l’installazione del tuo server DNS BIND:

1. Esegui ogni comando dig qui sotto per verificare i sottodomini www.atadomain.iomail.atadomain.io, e vault.atadomain.io.

Se l’installazione del tuo server DNS è riuscita, ogni sottodominio verrà risolto all’indirizzo IP corretto in base alla configurazione forward.atadomain.io.

# Verifica dei nomi di dominio
dig @172.16.1.10 www.atadomain.io
dig @172.16.1.10 mail.atadomain.io
dig @172.16.1.10 vault.atadomain.io

Di seguito è riportato l’output del sottodominio www.atadomain.io risolto all’indirizzo IP del server 172.16.1.10.

Checking sub-domain www.atadomain.io

Ecco il sottodominio mail.atadomain.io risolto all’indirizzo IP del server 172.16.1.20.

Checking sub-domain mail.atadomain.io

E di seguito il sottodominio vault.atadomain.io risolto all’indirizzo IP del server 172.16.1.50.

Checking sub-domain vault.atadomain.io

2. Successivamente, esegui il comando dig di seguito per verificare il record MX per il dominio atadomain.io.

dig @172.16.1.10 atadomain.io MX

Dovresti vedere che il dominio atadomain.io ha il record MX mail.atadomain.io.

Checking MX record for atadomain.io

3. Infine, esegui i seguenti comandi per verificare il record PTR o la zona inversa per gli indirizzi IP del server 172.16.1.10 e 172.16.1.20.

Se l’installazione di BIND è riuscita, ogni indirizzo IP verrà risolto al nome di dominio definito nella configurazione reverse.atadomain.io.

# Verifica del record PTR o del DNS inverso
dig @172.16.1.10 -x 172.16.1.10
dig @172.16.1.10 -x 172.16.1.20

Come puoi vedere di seguito, l’indirizzo IP del server 172.16.1.10 è risolto al nome di dominio ns1.atadomain.io.

Checking PTR record for IP address 172.16.1.10

Come puoi vedere di seguito, l’indirizzo IP del server 172.16.1.20 è risolto al nome di dominio mail.atadomain.io.

Checking PTR record for IP address 172.16.1.20

Conclusione

In tutto questo tutorial, hai imparato come creare e configurare un server DNS BIND sicuro sul tuo server Ubuntu. Hai anche creato la zona forward e reverse per aggiungere il tuo dominio e verificato i server DNS eseguendo comandi dig.

Ora, come puoi implementare un server DNS BIND nel tuo ambiente? Forse implementare BIND come un server autoritativo? O configurare l’alta disponibilità con un’installazione BIND master-slave?

Source:
https://adamtheautomator.com/bind-dns-server/