vodkone.estri.net

  • Increase font size
  • Default font size
  • Decrease font size
Home DNS Server ReteFaiX3 - Aggiornare il DNS dinamico da DHCP (Tutorial)

ReteFaiX3 - Aggiornare il DNS dinamico da DHCP (Tutorial)

Print
 
Titolo:ReteFaiX3 - Aggiornare dinamicamente il DNS server da DHCP
Sistema:Ubuntu 9.04 server edition
Pacchetti:bind9, dhcp3-server
Contenuto:Brevi cenni teorici
 Configurazione avanzata dei servizi DNS DHCP

Teoria

Allo stato attuale (vedasi i tutorial precedenti della ReteFaiX3) abbiamo implementato un servizio per assegnare automaticamente la configurazione di rete ai dispositivi collegati alla stessa. Abbiamo inoltre realizzato un servizio che consente di tenere traccia di suddetta configurazione semplicemente facendo riferimento ad un nome anziche' ad una serie di quattro byte.
Il sistema, pero', e' ancora scomodo da usare, cosi' come e' siamo costretti ad aggiornare a mano ogni singola variazione di indirizzo.
Ad esempio: un portatile, impostato per richiedere un indirizzo dinamico, viene connesso alla rete; il nostro DHCP server negozia ed assegna un indirizzo al nostro portatile; a queso punto, per poter far riferimento al portatile mediante il suo nome, e non tramite l'indirizzo IP, dovremmo cambiare la configurazione all'interno del database di zona del DNS e riavviare il servizio.
Onde evitare tutto questo sbattimento, e' possibile configurare il servizio DHCP in modo che si occupi di aggiornare il DNS subito dopo aver assegnato un indirizzo ad un client.
Anzitutto si deve impostare il servizio DHCP in modo che invii i riferimenti del DNS server ai client che richiedono un indirizzo di rete.
Vediamo come procedere. Dal nostro terminale digitiamo:

sudo vi /etc/dhcp3/dhcpd.conf

oppure

sudo nano /etc/dhcp3/dhcpd.conf

Cerchiamo la riga che comincia con:

ddns-update-style

e modifichiamola in modo tale che risulti essere:

ddns-update-style interim;

Subito sotto alla riga modificata, aggiungiamo le seguenti righe:

ddns-domainname "mioDominio.";
ddns-rev-domainname "in-addr.arpa.";

Dove mioDominio. e' il nome che avete assegnato al vostro dominio DNS. Cerchiamo ora la riga che comincia con:

option domain-name-servers

e modifichiamola in modo che diventi:

option domain-name-servers serverUno.mioDominio;

Dopo aver salvato il file, riavviamo il servizio dhcp digitando:

sudo /etc/init.d/dhcp3-server restart

Proviamo la configurazione inserita accendendo un client connesso alla rete.

Non appena collegati digitiamo:

ifconfig

e subito dopo:

cat /etc/resolv.conf

adesso possiamo controllare che l'ip assegnato sia corretto e, quindi, che il nostro client abbia ricevuto i parametri di configurazione inerenti il DNS (informazioni immagazzinate nel file resolv.conf sotto alla directory etc, come da immagine qui sotto).

Ora, andando a controllare i log sul server, troveremo la segnalazione di un errore.
Controlliamo le ultime righe del file di log dei servizi digitando sul terminale del server:

tail /var/log/daemon.log

in fondo al file troviamo un messaggio di errore che specifica che il server DHCP ha provato a fare un update al DNS ma non aveva i diritti per farlo (update "mioDominio/IN" denied).

Per questioni di sicurezza, infatti, il DNS non permette a chicchessia di passargli informazioni, bensi' le accetta esclusivamente da fonti fidate.
Andiamo quindi ora a creare una relazione di fiducia (trust) tra i due servizi. Per farlo andremo a generare una chiave segreta sul server DNS e configureremo i servizi DNS e DHCP in modo che condividano questa chiave.
Accediamo al terminale del server DNS e digitiamo:

sudo dnssec-keygen -r /dev/urandom -a HMAC-MD5 -b 128 -n HOST serverUno.mioDominio.

dove HMAC-MD5 e' l'algoritmo di cifratura, 128 bit e' la lunghezza della chiave ed il parametro HOST indica che assegneremo questa chiave all'host serverUno.
Se tutto e' andato liscio, sono stati creati due file uno con estensione .key e l'altro con estensione .private
Ora procediamo inserendo il valore della chiave privata all'interno del file di configurazione del server DNS; digitiamo:

sudo cat K*.private|grep Key

prendiamo nota della chiave (i caratteri che seguono "Key:")
procediamo con la configurazione lato DNS digitando

sudo vi /etc/bind/named.conf.local

oppure

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

aggiungiamo prima della configurazione della zona di dominio, ovvero in testa al file, le seguenti righe:

key serverUno.mioDominio. {
algorithm hmac-md5;
secret "ChiaveSegreta precedentemente copiata";
};

sostituento la frase fra virgolette con la chiave (sempre indicata fra virgolette).
Procediamo quindi ad inserire all'interno di entrambe le zone, sia quella di dominio che quella di reverse, la seguente riga di configurazione:

allow-update { key serverUno.mioDominio.; };

Alla fine il vostro file dovrebbe essere a grandi linee come in figura:

Procediamo inserendo la stessa chiave all'interno del DHCP editando il file di configurazione:

sudo vi /etc/dhcp3/dhcpd.conf

oppure

sudo nano /etc/dhcp3/dhcpd.conf

ci posizioniamo dopo la riga

authoritative;

ed inseriamo

key serverUno.mioDominio. {
algorithm hmac-md5;
secret "ChiaveSegreta precedentemente copiata";
};

zone mioDominio. {
primary 127.0.0.1;
key serverUno.mioDominio.;
}

zone 1.168.192.in-addr.arpa. {
primary 127.0.0.1;
key serverUno.mioDominio.;
}

Dove gli indirizzi 127.0.0.1 fanno riferimento al localhost, chiaramente questa configurazione e' valida solamente quando, come nel mio caso, i servizi DHCP e DNS convivono sullo stesso server; altrimenti si dovra' specificare l'indirizzo ip del server DNS al posto di 127.0.0.1; mentre al posto di mioDominio e 1.168.192.in-addr.arpa. dovrete inserire i nomi delle vostre zone DNs se diverse da quelle da me scelte.
Salviamo e riavviamo l servizio DNS e DHCP scrivendo:

sudo /etc/init.d/bind9 restart

e poi:

sudo /etc/init.d/dhcp3-server restart

Procediamo con le verifiche del caso collegandoci al client ed eseguendo da terminale:

sudo dhclient

che forza il client a richiedere nuovamente l'indirizzo di rete. Rieseguita la negoziazione con il server DHCP, andiamo a verificare sul server che sia andato tutto a dovere digitando:

sudo tail /var/log/daemon.log

Dovremmo trovare una serie di righe in cui ci viene indicato che non esistono i file di journaling e che pertanto verranno creati, nonche' i dati relativi all'indirizzo appena assegnato.

Ultima verifica, perche' ci piace essere certi, digitiamo il comando:

nslookup

seguito da nomeclient e invio.
Se tutto e' andato liscio, dovremmo avere come risposta il nome seguito dal dominio e l'ip assegnatogli.

A questo punto cominciamo a mettere a punto un po' di sana sicurezza digitando:

sudo chmod o-r /etc/bind/named.conf.local

e poi:

sudo chmod o-r /etc/dhcp3/dhcpd.conf

che tolgono a chiunque non sia proprietario o del gruppo proprietario, i permessi di lettura dai file di configurazione, e poi:

sudo chown root:dhcpd /etc/dhcp3/dhcpd.conf

che imposta il gruppo proprietario del file a DHCPD e quindi permette i diritti in lettura al servizio. Inoltre:

sudo rm K*.key

e poi:

sudo rm K*.private

che eliminano i file creati dal comando per generare la chiave segreta.


Anche questa e' andata!



blog comments powered by Disqus
Last Updated on Saturday, 19 September 2009 22:32  


Banner top aggregator

Notizie dal mondo linux

lffl linux freedom
news dal mondo linux - ubuntu
  • Ufficiale: Meizu e Canonical annunciano il Meizu PRO 5 Ubuntu Edition

    Il produttore cinese Meizu in partnership con Canonical, celebre casa sviluppatrice della distro Linux Ubuntu, ha annunciato ufficialmente il Meizu PRO 5 Ubuntu Edition, come anticipatovi nei giorni scorsi.

    Il dispositivo rappresenta uno degli attuali top di gamma del mercato con un comparto hardware di altissimo profilo ed un design premium caratterizzato da una scocca in metallo.

    Continua a leggere...
  • Windows 10: tracce di Linux nell'ultima build?
    Secondo quanto riportato da alcuni utenti in rete, l'ultima build di Windows 10, il sistema operativo sviluppato da Microsoft, conterrebbe "tracce" di Linux.

    Nello specifico nei file di sistema della build 14251 di Windows 10 sono presenti LXCore.sys e LXss.sys.

    Continua a leggere...
  • MaruOS: Android si fonde con Debian in questa nuova "Convergence"
    Abbiamo parlato spesso della Convergence o Convergenza se vogliamo italianazzarlo, ovvero di quella funzionalità su cui sta puntando Canonical per rendere perfettamente adattabile e scalabile Ubuntu in base al dispositivo utilizzato che sia uno smartphone, un tablet o un PC.

    Di recente ha fatto la sua comparsa un nuovo competitor in questo settore. Stiamo parlando di MaruOS, un progetto che ambisce ad offrire un'alternativa a Convergence di Canonical e Continuum di Microsoft.

    Continua a leggere...
  • Aquaris M10 Tablet: finalmente arriva la Convergence di Ubuntu?
    Uno delle funzionalità più attese dagli utenti Ubuntu è sicuramente Convergence, profilo software che consente di passare dalla modalità "mobile" di un tablet o uno smartphone alla modalità Desktop semplicemente collegando il dispositivo stesso ad un monitor.

    Il nuovo tablet di Ubuntu, l'Aquaris M10, dovrebbe essere finalmente in grado di offrire tale funzionalità in maniera stabile e pienamente operativa.


    Continua a leggere...
  • Linus Torvalds annuncia la seconda RC di Linux Kernel 4.5
    Linus Torvalds ha annunciato la seconda release candidate del Linux Kernel 4.5 che apporta molteplici migliorie risultando, come dichiarato, un upgrade sicuramente maggiore rispetto alla prima release candidate.


    Continua a leggere...