DNS Setup · 5 min read · Oct 03, 2025
[Debian Sarge] Installazione di un sistema DNS Master/Slave Bind9
[Debian Sarge] Installazione di un sistema DNS Master/Slave Bind9
Versione: 1.0 - 23 ago 2006
Benvenuto
In questo howto installeremo 2 server dns bind, uno come master e l’altro come server slave. Per motivi di sicurezza chrooteremo bind9 nella sua prigione.
Utilizzare due server per un dominio è una configurazione comunemente usata e per ospitare il proprio dominio è necessario avere almeno 2 server di dominio. Se uno si guasta, l’altro può continuare a servire il tuo dominio.
La nostra configurazione utilizzerà Debian Sarge 3.1 (stable) come base. Un’installazione semplice, pulita e aggiornata sarà sufficiente poiché installeremo i pacchetti richiesti con questo howto.
In questo howto utilizzerò il dominio fittizio “linux.lan”. I nameserver utilizzeranno 192.168.254.1 e 192.168.254.2 come loro IP.
Alcune ultime parole prima di iniziare: ho letto il howto di Joe (anche su questo sito) e alcuni altri tutorial, ma nessuno di essi ha funzionato senza alcune modifiche. Pertanto, ho creato il mio howto. E DOVREBBE funzionare subito :)
Installazione del Software
Per prima cosa, avrai bisogno di un’installazione pulita di Debian Sarge. Assicurati che sia aggiornata!
apt-get update; apt-get upgradeAbbiamo anche bisogno di alcuni strumenti di costruzione Debian poiché dobbiamo scaricare pacchetti sorgente:
apt-get install devscriptsSuccessivamente installeremo il software necessario per Bind. Per utilizzare la crittografia per il trasferimento del file di zona tra master e slave abbiamo bisogno di una versione più aggiornata di Bind9 (versione >=9.3) rispetto a quella trovata nel repository di Sarge. Utilizzeremo il sorgente dal ramo -testing. Quindi, assicurati di avere una riga come questa nel tuo
/etc/apt/sources.list :
deb-src http://---your.debian.mirror---/debian testing main contrib non-freeBind9 da testing dipende da lsb-base da testing. Prendiamolo:
(Sintassi spiegata: il -y dice ad apt di rispondere sì a tutte le domande, build-dep installa tutti i pacchetti richiesti per -testing_packageX- dal repository di sarge e con -b il sorgente viene costruito immediatamente.)
cd ~/a/dir/for/lsb-base/
apt-get -y build-dep lsb-base
apt-get source lsb-base -b
dpkg-i lsb-base*.deb
Il prossimo è Bind9:
cd ~/a/dir/for/bind9
apt-get -y build-dep bind9
apt-get source bind9 -b
dpkg -i *.deb
Ora tutto il nostro software è installato e pronto per essere configurato.
Configurare il Master
Per prima cosa dobbiamo fermare bind9:
/etc/init.d/bind9 stopPer chrootare bind dobbiamo impostare un’opzione in
/etc/default/bind9 :
Da:
OPTIONS="-u bind"A:
OPTIONS="-u bind -t /var/lib/named"Ora verrà eseguito come utente ‘bind’ chrootato in ‘/var/lib/named’.
Successivamente modifichiamo la riga dei forwarders in
/etc/bind/named.conf.options per corrispondere ai dns del nostro ISP:
forwarders { 194.109.6.66; };Questi passaggi sono necessari per la prigione chroot:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
mv /etc/bind /var/lib/named/etc
ln -s /var/lib/named/etc/bind /etc/bind
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/
chown -R bind:bind /var/lib/named/var/
chown -R bind:bind /var/lib/named/etc/bind
Bind ora ha la sua directory con spazio per i file .pid e i file di configurazione. Per mantenere le cose chiare abbiamo creato un symlink di ritorno a /etc/.
Ora modifica /etc/init.d/sysklogd per consentire la registrazione dell’attività di bind:
Da:
SYSLOGD=""A:
SYSLOGD="-a /var/lib/named/dev/log"L’ultimo passo è aggiungere l’IP di questo nuovo server DNS installato (il localhost) al tuo
/etc/resolv.conf per utilizzarlo: echo “search linux.lan” > /etc/resolv.conf
echo “nameserver 127.0.0.1” >> /etc/resolv.conf
Ora riavvia sysklogd e bind9:
/etc/init.d/sysklogd restart
/etc/init.d/bind9 start
E testa !
ping www.google.comSe ricevi una risposta, allora il tuo server DNS master sta funzionando ed è pronto per essere utilizzato. Ora riempiremo e utilizzeremo il dominio linux.lan con il nostro nuovo server master.
Configurazione del dominio linux.lan
Il server DNS master sta attualmente solo inoltrando richieste al server del tuo ISP. Quindi, installeremo e configureremo il nostro dominio e lasceremo che il nostro nuovo server gestisca tutte le richieste relative a quel dominio.
Iniziamo creando la directory in cui memorizzeremo il file di zona. Questo file contiene tutte le informazioni sul dominio.
mkdir /etc/bind/zones/Successivamente creeremo il file delle zone,
/etc/bind/zones/master_linux.lan :
$TTL 3D
@ IN SOA ns1.linux.lan. hostmaster.linux.lan. (
199802151 ; serial, data odierna + numero di serie odierno
8H ; refresh, secondi
2H ; retry, secondi
4W ; expire, secondi
1D ) ; minimum, secondi
;
TXT "Linux.LAN, servendo IL TUO dominio :)"
NS ns1 ; Indirizzo Inet del nameserver
NS ns2
MX 10 mail ; Mail Exchanger Primario
localhost A 127.0.0.1
ns1 A 192.168.254.1
ns2 A 192.168.254.2
www CNAME ns1Qui abbiamo creato un semplice file di zona con entrambi i nameserver e un alias www per ns1. Giusto nel caso in cui abbiamo un apache in esecuzione su ns1 ;)
Ora modifica /etc/bind/named.conf.local e aggiungi:
zone "linux.lan" {
type master;
file "/etc/bind/zones/master_linux.lan";
};Questo è tutto, ora possiamo riavviare bind e controllare se funziona:
/etc/init.d/bind9 restart
ping ns1.linux.lan
A questo punto dovresti avere un server DNS funzionante e utilizzabile :)
Se dice che non può trovare il dominio, forse dhclient ha cambiato la tua voce nameserver… Quindi uccidilo.
Installazione dello Slave
Fondamentalmente, lo slave utilizza lo stesso sistema di base che abbiamo costruito nella prima parte (subito prima di aggiungere il file di zona). Aggiungeremo alcune piccole modifiche sia al master che allo slave per farli funzionare insieme. Il file delle zone verrà trasferito attraverso la rete utilizzando la crittografia.
A meno che non sia diversamente specificato, questi comandi sono solo per lo slave.
Crea la directory delle zone:
mkdir /etc/bind/zonesPer sia il master CHE lo slave modifica
/etc/bind/named.conf.options ed aggiungi:
dnssec-enable yes;Ora abbiamo bisogno di una chiave sicura. Questo genererà un file .private e un file .key. La riga ‘key=’ nel file .private rappresenta la chiave hash.
dnssec-keygen -a hmac-md5 -b 128 -n host linux.lanAggiungi questo nel tuo
/etc/bind/named.conf sul master E sullo slave:
key "TRANSFER" {
algorithm hmac-md5;
secret "---HASHKEY---";
};Sul master aggiungiamo l’IP dello slave a
/etc/bind/named.conf :
server 192.168.254.2 {
keys {
TRANSFER;
};
};E sullo slave aggiungiamo l’IP del master a
/etc/bind/named.conf :
server 192.168.254.1 {
keys {
TRANSFER;
};
};Aggiungi a
/etc/bind/named.conf.local :
zone "linux.lan" {
type slave;
file "/etc/bind/zones/slave_linux.lan";
masters { 192.168.254.1; };
allow-notify { 192.168.254.1; };
};L’ultima cosa necessaria su ENTRAMBI gli host è aggiungere questo a
/etc/bind/named.conf :
include "/etc/bind/rndc.key";Per avere un trasferimento di zona riuscito, entrambi i sistemi devono avere un orologio sincronizzato, quindi:
apt-get -y install ntpdate
Riavvia bind su entrambe le macchine e nota il nuovo file di zona sullo slave :)
Se ti stai chiedendo perché gli aggiornamenti al file di zona sul tuo master sembrano fallire, controlla le impostazioni di scadenza ecc. all’interno del file di zona.
Buona fortuna con la tua nuova configurazione DNS master/slave !
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.