:::: MENU ::::

bind9 DNSSEC na Debianie

środowisko: ESXi/OpenVZ Debian bind

DNSSEC (Domain Name System Security Extensions) stanowi rozwiązanie zwiększające bezpieczeństwo DNS. DNSSEC wprowadza do DNS kryptograficzny mechanizm kluczy asymetrycznych, które dają możliwość uwierzytelnienia danych otrzymanych w procesie rozwiązywania nazw domen internetowych na adresy IP.

warto zadbać aby pakiety systemu były w najnowszej wersji

apt-get update && apt-get dist-upgrade

doinstalować pakiet bind`a

apt-get -y install bind9
oby skrócić czas generowania kluczy opcjonalnie doinstalować pakiet haveged

apt-get -y install haveged
następnie dokonać edycji sekcji options { }

vi /etc/bind/named.conf.options
dodać / zmienić opcje

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

przejść do katalogu z plikami stref (różny w zależności od używanej dystrybucji)

cd /var/cache/bind
wygenerować klucz ZSK (Zone Signing Key) dla strefy

dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE mojadomena.pl
Generating key pair................+++ .................+++
Kmojadomena.pl.+007+41462

następnie wygenerować klucz KSK (Key Signing Key) dla strefy

dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE mojadomena.pl
Generating key pair...........................................++ ............................................................................................................................................................................++
Kmojadomena.pl.+007+62374

w tym momencie katalog zawiera dwie pary prywatnego/publicznego klucza ZSK i KSK

edytujemy plik strefy

vi ./mojadomena.pl.zone
dołączamy publiczne klucze zawierające rekordy DNSKEY do pliku strefy

$INCLUDE Kmojadomena.pl.+007+41462.key
$INCLUDE Kmojadomena.pl.+007+62374.key

lub korzystając z pętli for

for key in `ls Kmojadomena.pl*.key`
do
echo "\$INCLUDE $key">> mojadomena.pl.zone
done

podpis strefy wykonywany jest poleceniem dnssec-signzone

dnssec-signzone -3 -A -N INCREMENT -o -t
salt jest 16 znakowym ciągiem znaków, można go wygenerować np poleceniem

head -c 1000 /dev/random | sha1sum | cut -b 1-16
dokonać podpisu strefy

dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o mojadomena.pl -t mojadomena.pl.zone
Verifying the zone using the following algorithms: NSEC3RSASHA1.
Zone signing complete:
Algorithm: NSEC3RSASHA1:
KSKs: 1 active, 0 stand-by, 0 revoked
ZSKs: 1 active, 0 stand-by, 0 revoked
mojadomena.pl.zone.signed
Signatures generated: 12
Signatures retained: 0
Signatures dropped: 0
Signatures successfully verified: 0
Signatures unsuccessfully verified: 0
Signing time in seconds: 0.046
Signatures per second: 298.310
Runtime in seconds: 0.056

utworzony został mowy plik mojadomena.pl.zone.signed, zawierający rekordy RRSIG dla każdego z istniejących rekordów DNS

utworzony został także plik dsset-mojadomena.pl. zawierający rekordy DS, które należy umieścić w strefie autorytatywnej dla naszej domeny
brak wpisów w strefie autorytatywnej skutkuje nieciągłościa sprawdzania kluczy i negatywną odpowiedzią przy walidacji domeny przez DNSSEC

cat dsset-mojadomena.pl.
mojadomena.pl. IN DS 41462 7 1 D407ED1AE2E1DF93C26DE050F6EFF052BA35DE36
mojadomena.pl. IN DS 41462 7 2 93554EFA829B43F1E4E5751CEE5C138E37B4251C9277CEAE9F3CA140 1A05A271

jeżeli registar udostępnia obsługę DNSSEC można tego na ogół dokonać w panelu administracyjnym domeny

teraz wystarczy podpiąć domenę do bind`a (w zależności od dystrybucji skopiować plik mojadomena.pl.zone.signded do odpowiedniego katalogu) w tym celu dokonać dodania / edycji sekcji zone { }

vi /etc/bind/named.conf.local
dodając / edytując (konfiguracja dla serwera master uwzględnia trasfer strefy do serwera slave o adresie IPv4 XXX.XXX.XXX.XXX)

zone "mojadomena.pl" IN {
type master;
file "mojadomena.pl.zone.signed";
allow-transfer { XXX.XXX.XXX.XXX; };
allow-update { none; };
};

następnie wykonać przeładować konfigurację bind`a poleceniem

service bind9 reload
lub

/etc/init.d/bind9 reload

gotowe

sprawdzanie rekordów DNSKEY oraz RRSIG poleceniem dig

dig DNSKEY mojadomena.pl. @IP_SERWERA +multiline
dig A mojadomena.pl. @IP_SERWERA +noadditional +dnssec +multiline

polecam także debugger Verisign`u dostępny pod adresem

http://dnssec-debugger.verisignlabs.com/
oraz narzędzie do wizualizacji dostępne pod adresem

http://dnsviz.net/