## page was renamed from Bind9 Appunti vari su Bind9. Ah, il misterioso mondo dei DNS... ci vorrebbe un corso di un mese solo su questo argomento. ---- === Update delle zone mediante nsupdate === ==== Configurazione ==== '''Per gestire le zone del proprio dns locale''' mediante nsupdate, la soluzione semplice e` consentire l'update da localhost senza protezione. Occorre configurare Bind per le zone che accettano updates da locale, mettendo dentro ad ogni zona che deve accettare updates una riga cosi`: {{{ allow-update { localhost; }; }}} '''Per gestire le zone da remoto''', garantendo una sicurezza adeguata, occorre generare delle chiavi da usare con nsupdate lato client e dentro Bind lato server. * Generare le chiavi pubblica e privata cosi`: {{{ dnssec-keygen -a HMAC-MD5 -b 128 -n zone chmod 0600 K* }}} Questa operazione produce due files di nome K.*. Quello che finisce in "private" e` la chiave privata, quello che finisce in "key" e` la pubblica. E` importante che siano chmod 600 altrimenti non va. * Leggere il contenuto della chiave pubblica, e copiarsi l'ultma parte, che e` la chiave vera e propria, e andra` inserita in named.conf sul server. * Editare named.conf del server e inserire una sezione (fuori da tutto, non nelle zone) cosi`: {{{ key { algorithm HMAC-MD5; secret ; }; }}} * Inoltre, sempre in named.conf, inserire in ogni zona che si vuole gestire con quella chiave una riga che dice {{{ allow-update { key ; }; }}} E` possibile anche mescolare le cose, cosi`: {{{ allow-update { key ; localhost; }; }}} ---- ==== Uso di nsupdate ==== * In locale, senza usare chiavi, basta lanciare nsupdate e si entra nella shell da cui si fanno le modifiche alla zona. Alternativamente, si puo` dire a nsupdate di leggere un file di comandi con l'opzione "-v ". * In remoto, si lancia nsupdate dicendogli dove trovare la chiave privata, con l'opzione "-k * Da dentro la shell di nsupdate, oppure nel file di comando, si possono dare comandi per aggiungere e togliere host. Occhio perche` la risoluzione diretta e inversa vanno gestite una per una. Per aggiungere un host (risoluzione diretta e inversa), si puo` fare cosi`: {{{ > server localhost (oppure il nome del server remoto a cui ci si collega) > update add A (esempio: update add vongola.kurgan.org. 43600 A 10.1.42.11) > update add .in-addr.arpa PTR (esempio: update add 11.42.1.10.in-addr.arpa 43600 PTR vongola.kurgan.org.) > send }}} Se non si ricevono errori, l'host e` aggiunto. Per cancellare un host (risoluzione diretta): {{{ > server localhost (oppure il nome del server remoto a cui ci si collega) > update delete hostname.domain.tld. A (esempio: update delete asterix.kurgan.org. A) > send }}}