Configurazione server DNS Bind9 per l'uso con un server primario (Fedora 21, hostname fedprim, IP 192.168.1.10) e uno secondario (Debian 8.0 Jessie, hostname debsec, IP 192.168.1.1).
Lo scambio dei file di zona tra i due server avviene attraverso un canale criptato e previa autenticazione tramite meccanismo TSIG (Transaction SIGnature).
Questo meccanismo è altra cosa rispetto al DNSSEC:
TSIG e DNSSEC sono aspetti diversi e indipendenti del funzionamento di un server DNS. Per evitare ogni fraintendimento, dubbio o confusione, nel seguito è omesso ogni riferimento al DNSSEC sia quando sono riportati i contenuti dei file di configurazione che nell'esposizione.
I due server DNS gestiscono entrambi la zona lumen.drbl.invalid.
Il file di configurazione del server primario conterrà sia la definizione della zona che l'indicazione della chiave che dovrà essere usata ogni volta che un server DNS secondario chieda un trasferimento di zona per sincronizzare la sua copia con l'originale del primario. Questo si fa con due sezioni:
server 192.168.1.10 { keys { lumen.drbl.invalid-debsec-fedprim. ;}; }; key lumen.drbl.invalid-debsec-fedprim. { algorithm hmac-sha512; secret "dvfLJlnOr7kSXim2Ggg1j9tNYJUt8kYmARtAXk1tqUs0VWZeJcCLKMUnlSWGM65shfqdvjvWJZcgamdnbh8rMQ=="; }; zone "lumen.drbl.invalid" { type slave; file "/etc/bind/db.lumen.drbl.invalid"; masters { 192.168.1.10; }; }; |
acl localifs {
127.0.0.0/8; 172.16.0.0/12; 192.168.1.0/24; }; options { directory "/var/cache/bind"; forwarders { 192.168.1.254; }; listen-on { localifs; }; allow-query { localifs; }; auth-nxdomain no; # conform to RFC1035 }; |
acl mynets {
127.0.0.1/8; 192.168.1.0/24; }; options { listen-on port 53 { mynets; }; allow-query { mynets; }; notify yes; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; |
[alessandro@debsec ~]$ dnssec-keygen
-a hmac-sha512 -b 512 -n HOST
lumen.drbl.invalid-debsec-fedprim Klumen.drbl.invalid-debsec-fedprim.+165+57529 [alessandro@debsec ~]$ loh -tr Klumen.drbl.invalid-debsec-fedprim* -rw-r--r-- 1 root 140 dic 8 18:44 Klumen.drbl.invalid-debsec-fedprim.+165+57529.key -rw------- 1 root 232 dic 8 18:44 Klumen.drbl.invalid-debsec-fedprim.+165+57529.private [alessandro@debsec ~]$ file Klumen.drbl.invalid-debsec-fedprim.+165+57529.* Klumen.drbl.invalid-debsec-fedprim.+165+57529.key: ASCII text Klumen.drbl.invalid-debsec-fedprim.+165+57529.private: ASCII text [alessandro@debsec ~]$ cat Klumen.drbl.invalid-debsec-fedprim.+165+57529.key lumen.drbl.invalid-debsec-fedprim. IN KEY 512 3 165 dvfLJlnOr7kSXim2Ggg1j9tNYJUt8kYmARtAXk1tqUs0VWZeJcCLKMUnlSWGM65shfqdvjvWJZcgamdnbh8rMQ== [alessandro@debsec ~]$ cat Klumen.drbl.invalid-debsec-fedprim.+165+57529.private Private-key-format: v1.3 Algorithm: 165 (HMAC_SHA512) Key: dvfLJlnOr7kSXim2Ggg1j9tNYJUt8kYmARtAXk1tqUs0VWZeJcCLKMUnlSWGM65shfqdvjvWJZcgamdnbh8rMQ== Bits: AAA= Created: 20141208174455 Publish: 20141208174455 Activate: 20141208174455 [alessandro@debsec ~]$ |
[alessandro@debsec ~]$ dd if=/dev/urandom bs=1 count=64 |
base64 64+0 record dentro 64+0 record fuori 64 byte (64 B) copiati, 0,000274971 s, 233 kB/s 3dg/LrkRS3S1u0bV0ukQnGQCkwqi8PSi/XjXyz0sbf2FuJrli9Y9bwaJH3Z6Tgtria5pWwNXGk/nPMABveQFdw== [alessandro@debsec ~]$ |
server 192.168.1.1 { keys { lumen.drbl.invalid-debsec-fedprim.; }; provide-ixfr yes; }; key lumen.drbl.invalid-debsec-fedprim. { algorithm hmac-sha512; secret "dvfLJlnOr7kSXim2Ggg1j9tNYJUt8kYmARtAXk1tqUs0VWZeJcCLKMUnlSWGM65shfqdvjvWJZcgamdnbh8rMQ=="; }; zone "lumen.drbl.invalid" { type master; file "/var/named/db.lumen.drbl.invalid"; allow-update { key lumen.drbl.invalid-debsec-fedprim.; }; }; |
[alessandro@debsec ~]$ tail -6
/var/log/daemon.log Dic 8 16:49:09 debsec named[6546]: client 192.168.1.10#17745/key lumen.drbl.invalid-debsec-fedprim: received notify for zone 'lumen.drbl.invalid': TSIG 'lumen.drbl.invalid-debsec-fedprim' Dic 8 16:49:09 debsec named[6546]: zone lumen.drbl.invalid/IN: Transfer started. Dic 8 16:49:09 debsec named[6546]: transfer of 'lumen.drbl.invalid/IN' from 192.168.1.10#53: connected using 192.168.1.1#43944 Dic 8 16:49:09 debsec named[6546]: zone lumen.drbl.invalid/IN: transferred serial 2015042502: TSIG 'lumen.drbl.invalid-debsec-fedprim' Dic 8 16:49:09 debsec named[6546]: transfer of 'lumen.drbl.invalid/IN' from 192.168.1.10#53: Transfer completed: 1 messages, 267 records, 7380 bytes, 0.052 secs (141923 bytes/sec) Dic 8 16:49:09 debsec named[6546]: zone lumen.drbl.invalid/IN: sending notifies (serial 2015042502) [alessandro@debsec ~]$ |
[alessandro@debsec ~]$
tail
-2 /var/log/daemon.log Dic 8 21:09:10 debsec named[2505]: client 192.168.1.10#31664/key lumen.drbl.invalid-debsec-fedprim: received notify for zone 'lumen.drbl.invalid': TSIG 'lumen.drbl.invalid-debsec-fedprim' Dic 8 21:09:10 debsec named[2505]: zone lumen.drbl.invalid/IN: notify from 192.168.1.10#31664: zone is up to date [alessandro@debsec ~]$ |
Testo
coperto dalla licenza
Creative Commons versione 4.0 Attribuzione - Non commerciale -
Condivisibile alle stesse condizioni
http://creativecommons.org/licenses/by-nc-sa/4.0/