DNS Server - SuppaMan

Da Wiki-itsos.

Per la maggior parte di questa guida useremo macchine virtuali con sistema operativo Ubuntu Server 14. Per eseguire questa guida con macchine reali alcuni passaggio potrebbero essere eseguiti diversamente o non eseguiti.

IMPORTANTE: Se l'esperienza è eseguita su macchine virtuali ricordarsi di modificare l'impostazione della scheda di rete come "scheda bridge".

SUGGERIMENTO: Se durante l'esperienza si dovessero trovare problemi di vario tipo, come il mancato funzionamento del server DNS, potrebbe essere necessario riavviare il servizio e/o la scheda di rete.


Installazione e configurazione di base del server DNS

Preparare le macchine

Per prima cosa prepareremo la macchina che fungerà da server, impostando un indirizzo IP statico ad essa:


SuppaMan56.png


Sulla macchina client imposterò come IP del server DNS l'IP sopracitato:


SuppaMan57.png


Installare il server DNS

Useremo il server DNS chiamato "Bind". Per installarlo useremo il comando:

apt-get install bind9 bind9-host dnsutils


SuppaMan58.png


Ora controlleremo se il servizio è attivo con il comando:

netstat -tap


SuppaMan59.png


Abilitare il server DNS

Per "agganciare" il nostro server DNS al nameserver bisogna modificare la configurazioe del server Bind. Per far ciò possiamo usare il comando:

nano /etc/bind/named.conf.options

Una volta entrati nel file di configurazione inseriremo l'indirizzo IP del nostro server nella sezione "forwarders", eliminando gli eventuali //:


SuppaMan60.png


Ora dobbiamo aggiungere l'indirizzo del nostro server nel file di configurazione dei DNS, in questo modo il server verrà contattato ogniqualvolta si richiederà il servizio DNS. Per far ciò useremo il comando:
(file di cache degli host gia risolti)

nano /etc/resolv.conf

e inseriremo l'indirizzo del nostro server DNS


SuppaMan61.png


Ora è consigliabile riavviare la scheda di rete, per rendere effettive le modifiche, con il comando:

sudo ifdown <nome_scheda_di_rete>


SuppaMan62.png


Test del server DNS

Ora, con il comando

nslookup <nomesito>

potremo verificare, sia sulla macchina server che sulla macchina client, che ad ogni richiesta del servizio DNS, passeremo dal nostro server:


SuppaMan63.png


Configurazione di zone

Creazione di zone nel nostro server DNS

Per creare delle zone sul nostro server DNS dobbiamo creare i file corrispondenti ad ognuna di esse. Per far ciò useremo il comando:

sudo touch /etc/bind/<nome_zona>


SuppaMan64.png


In questo caso abbiamo creato un file di zona diretta e una di zona inversa e abbiamo verificato il tutto con il comando

ls


SuppaMan65.png


Ora, con il comando

sudo nano /etc/bind/<nome_zona>

li modificheremo, inserendo nel file i nomi e gli indirizzi IP degli host corrispondenti di: - un nameserver (nome e indirizzo che il server prenderà) - un record mx (un mail server autorizzato ad accettare messaggi mail per conto del dominio di destinazione) - un nome di host (indirizzo di un host all'interno della zona)


SuppaMan66.png

SuppaMan67.png


Dichiarazione e attivazione di zone nel nostro server DNS

Ora dobbiamo dichiarare la zona in modo che venga "attivata". Per far ciò dovremo inserire le informazioni di essa nel file "named.conf", con il comando:

sudo nano /etc/bind/named.conf


SuppaMan68.png


Per verificare il corretto inserimento dei dati possiamo utilizzare il comando:

named-checkconf

e, se non verranno restituiti errori, potremo ritenerci soddisfatti:


SuppaMan69.png


Per rendere effettive le modifiche al server occorre riavviarlo. Per far ciò useremo il comando:

sudo /etc/init.d/bind9 restart


SuppaMan70.png


Possiamo verificare la corretta configurazione delle nostre zone con il comando:

named-checkzone <nome_zona> <percorso_zona>


SuppaMan71.png


Test delle zone dall'interno

Ora possiamo testare la nostra zona diretta (per esempio dal client), con il comando:

nslookup <nome_zona>


SuppaMan72.png


Vedremo che verranno risolti gli indirizzi IP degli ogni host nella nostra zona.

Inserimento di alcune zone create nel forwarder superiore

Per completare la nostra esperienza, possiamo provare a inserire le zone create dai diversi compagni di classe nel forwarder superiore, in modo da risolvere gli indirizzi IP delle altre zone dal nostro client e viceversa. Per farlo, accediamo tramite SSH al forwarder superiore:


SuppaMan73.png


Ora modifichiamo la configurazione delle zone del forwarder con il comando:

sudo nano /etc/bind/named.conf.options


SuppaMan74.png

SuppaMan75.png


Ora è consigliabile riavviare la scheda di rete del forwarder, con i comandi:

sudo ifdown eth0


SuppaMan76.png


ATTENZIONE: Il forwarder superiore dovrà essere riavviato manualmente!

Test delle zone inserite nel forwarder superiore

Per verificare il successo delle operazioni precedenti, possiamo eseguire i test di:


- risoluzione di altre zone dal nostro client:


SuppaMan77.png


- risoluzione del nostro IP da altre zone:


SuppaMan78.png


In questo caso possiamo ritenerci soddisfatti, in quanto siamo risolviamo IP di altre zone e veniamo risolti da altre zone.