Qui si troveranno molti modi di condividere la propria macchina con il resto del mondo o con la propria rete locale. Prima di installare qualunque pacchetto in questo capitolo bisogna essere sicuri di capire cosa il pacchetto fa e come settarlo correttamente. Può anche essere di aiuto studiare le conseguenze di un setup non appropriato così da poterne analizzare i rischi.
Il pacchetto BIND fornisce utilità per server e client DNS. Se si è interessati solo alle utilità fare riferimento a BIND Utilities-9.3.0p1.
Download (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/bind9/9.3.0/bind-9.3.0.tar.gz
Download (FTP): ftp://ftp.isc.org/isc/bind9/9.3.0/bind-9.3.0.tar.gz
Download MD5 sum: fdb42fff7e345372ac52a4493b77b694
Dimensione del download: 4.6 MB
Stima dello spazio su disco richiesto: 87 MB
Stima del tempo di costruzione: 1.87 SBU (additional 4.14 SBU to run the complete test suite)
Net-tools-1.60 (per ifconfig) e Perl modules: Net-DNS
Installare BIND eseguendo i seguenti comandi:
patch -Np1 -i ../9.3.0-patch1 &&
sed -i -e "s/dsssl-stylesheets/&-1.78/g" configure &&
./configure --prefix=/usr --sysconfdir=/etc \
--enable-threads --with-libtool &&
make
Ora, come utente root:
make install &&
chmod 755 \
/usr/lib/{lib{bind9,isc{,cc,cfg},lwres}.so.?.?.?,libdns.so.20.0.0} &&
mv /usr/share/man/man8/named.conf.5 /usr/share/man/man5 &&
cd doc &&
install -d -m755 /usr/share/doc/bind-9.3.0/{arm,draft,misc,rfc} &&
install -m644 arm/*.html \
/usr/share/doc/bind-9.3.0/arm &&
install -m644 draft/*.txt \
/usr/share/doc/bind-9.3.0/draft &&
install -m644 rfc/* \
/usr/share/doc/bind-9.3.0/rfc &&
install -m644 \
misc/{dnssec,ipv6,migrat*,options,rfc-compliance,roadmap,sdb} \
/usr/share/doc/bind-9.3.0/misc
Per poter eseguire la test suite completa prima di installare il pacchetto è necessario settare alcune interfacce dummy (richiede ifconfig). Digitare i seguenti comandi per eseguire la test suite completa (bisognerà essere l'utente root per digitare il comando ifconfig):
bin/tests/system/ifconfig.sh up &&
make check >check.log 2>&1 &&
bin/tests/system/ifconfig.sh down
Se lo si desidera digitare il seguente comando per assicurare che tutti i 145 test girino con successo:
grep "R:PASS" check.log | wc -l
patch -Np1 -i ../9.3.0-patch1: c'è una vulnerabilità nel codice DNSSEC. Vedere http://www.kb.cert.org/vuls/id/938617. La patch corregge il bug.
sed -i -e ... configure: questo comando obbliga configure a cercare i fogli di stile DSSSL nella locazione standard di BLFS.
--sysconfdir=/etc: questo parametro obbliga BIND a cercare i file di configurazione in /etc invece che in /usr/etc.
--enable-threads: questo parametro abilita la capacità multi-threading.
--with-libtool: questo parametro forza la costruzione delle librerie dinamiche e collega i binari installati a queste librerie.
cd doc; install ...: questo comando installa la documentazione addizionale del pacchetto. Opzionalmente omettere alcuni o tutti questi comandi.
BIND verrà configurato per girare in una gabbia chroot come utente senza privilegi (named). Questa configurazione è più sicura, in quanto una compromissione del DNS avrebbe un impatto solo su pochi file nella directory HOME dell'utente named.
Creare l'utente e il gruppo senza privilegi named:
groupadd named &&
useradd -m -c "BIND Owner" -g named -s /bin/false named
Settare alcuni file, directory e dispositivi di cui BIND ha bisogno:
cd /home/named &&
mkdir -p dev etc/namedb/slave var/run &&
mknod /home/named/dev/null c 1 3 &&
mknod /home/named/dev/random c 1 8 &&
chmod 666 /home/named/dev/{null,random} &&
mkdir /home/named/etc/namedb/pz &&
cp /etc/localtime /home/named/etc
Quindi generare una chiave per l'uso nei file named.conf e rdnc.conf usando il comando rndc-confgen:
rndc-confgen -b 512 | grep -m 1 "secret" | cut -d '"' -f 2
Creare il file named.conf da cui named leggerà la locazione di file di zona, root name server e chiavi DNS sicure:
cat > /home/named/etc/named.conf << "EOF" options { directory "/etc/namedb"; pid-file "/var/run/named.pid"; statistics-file "/var/run/named.stats"; }; controls { inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; }; key "rndc_key" { algorithm hmac-md5; secret "[Insert secret from rndc-confgen's output here]"; }; zone "." { type hint; file "root.hints"; }; zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; }; // Bind 9 now logs by default through syslog (except debug). // These are the default logging rules. logging { category default { default_syslog; default_debug; }; category unmatched { null; }; channel default_syslog { syslog daemon; // send to syslog's daemon // facility severity info; // only send priority info // and higher }; channel default_debug { file "named.run"; // write to named.run in // the working directory // Note: stderr is used instead // of "named.run" // if the server is started // with the '-f' option. severity dynamic; // log at the server's // current debug level }; channel default_stderr { stderr; // writes to stderr severity info; // only send priority info // and higher }; channel null { null; // toss anything sent to // this channel }; }; EOF
Creare il file rndc.conf con i seguenti comandi:
cat > /etc/rndc.conf << "EOF" key rndc_key { algorithm "hmac-md5"; secret "[Insert secret from rndc-confgen's output here]"; }; options { default-server localhost; default-key rndc_key; }; EOF
Il file rndc.conf contiene informazioni per controllare le operazioni di named con l'utilità rndc.
Creare un file zona con i seguenti contenuti:
cat > /home/named/etc/namedb/pz/127.0.0 << "EOF" $TTL 3D @ IN SOA ns.local.domain. hostmaster.local.domain. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL NS ns.local.domain. 1 PTR localhost. EOF
Creare il file root.hints con i seguenti comandi:
Fare attenzione ad assicurare che non ci siano spazi aggiuntivi in questo file.
cat > /home/named/etc/namedb/root.hints << "EOF" . 6D IN NS A.ROOT-SERVERS.NET. . 6D IN NS B.ROOT-SERVERS.NET. . 6D IN NS C.ROOT-SERVERS.NET. . 6D IN NS D.ROOT-SERVERS.NET. . 6D IN NS E.ROOT-SERVERS.NET. . 6D IN NS F.ROOT-SERVERS.NET. . 6D IN NS G.ROOT-SERVERS.NET. . 6D IN NS H.ROOT-SERVERS.NET. . 6D IN NS I.ROOT-SERVERS.NET. . 6D IN NS J.ROOT-SERVERS.NET. . 6D IN NS K.ROOT-SERVERS.NET. . 6D IN NS L.ROOT-SERVERS.NET. . 6D IN NS M.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 6D IN A 198.41.0.4 B.ROOT-SERVERS.NET. 6D IN A 192.228.79.201 C.ROOT-SERVERS.NET. 6D IN A 192.33.4.12 D.ROOT-SERVERS.NET. 6D IN A 128.8.10.90 E.ROOT-SERVERS.NET. 6D IN A 192.203.230.10 F.ROOT-SERVERS.NET. 6D IN A 192.5.5.241 G.ROOT-SERVERS.NET. 6D IN A 192.112.36.4 H.ROOT-SERVERS.NET. 6D IN A 128.63.2.53 I.ROOT-SERVERS.NET. 6D IN A 192.36.148.17 J.ROOT-SERVERS.NET. 6D IN A 192.58.128.30 K.ROOT-SERVERS.NET. 6D IN A 193.0.14.129 L.ROOT-SERVERS.NET. 6D IN A 198.32.64.12 M.ROOT-SERVERS.NET. 6D IN A 202.12.27.33 EOF
Il file root.hints è un elenco di root name server. Questo file deve venire aggiornato periodicamente con l'utilità dig. Una copia corrente di root.hints può essere ottenuta da ftp://rs.internic.net/domain/named.root. Consultare il BIND 9 Administrator Reference Manual per i dettagli.
Creare o modificare resolv.conf per usare il nuovo name server con i seguenti comandi:
Sostituire [tuodominio.com] con il proprio nome di dominio valido.
cp /etc/resolv.conf /etc/resolv.conf.bak && cat > /etc/resolv.conf << "EOF" search [tuodominio.com] nameserver 127.0.0.1 EOF
Impostare i permessi nella gabbia chroot con i seguenti comandi:
chown -R named.named /home/named
Per avviare il server DNS all'accensione, installare l'init script /etc/rc.d/init.d/bind incluso nel pacchetto blfs-bootscripts-6.0.
make install-bind
Ora avviare BIND con il nuovo boot script:
/etc/rc.d/init.d/bind start
Eseguire il test della nuova installazione di BIND 9. Prima fare una query dell'indirizzo locale dell'host con dig:
dig -x 127.0.0.1
Ora provare una ricerca di un nome esterno, prendendo nota della differenza di velocità nelle ricerche ripetute dovuta al caching. Eseguire il comando dig due volte sullo stesso indirizzo:
dig www.linuxfromscratch.org &&
dig www.linuxfromscratch.org
Si possono notare risultati praticamente istantanei con la caching delle ricerche di named. Consultare il BIND Administrator Reference Manual che si trova presso doc/arm/Bv9ARM.html nell'albero sorgente del pacchetto per per ulteriori opzioni di configurazione.
interroga i server DNS.
è un generatore di chiavi per DNS sicuro.
genera versioni firmate dei file di zona.
è un'utilità per le ricerche del DNS.
è un server di nomi solo per caching per l'uso da parte dei processi locali.
è il demone del server dei nomi.
verifica la sintassi dei file named.conf.
verifica la validità del file zona.
è un programma usato per interrogare i server dei nomi di dominio di Internet.
è usato per sottomettere richieste di aggiornamento del DNS.
controlla l'operatività di BIND.
genera file rndc.conf.