Tento tutoriál vám pomůže nakonfigurovat DNSSEC na Bind9 (verze 9.8.2) na operačním systému CentOS. Postup však bude fungovat také na RedHat Enterprise Linux Server, Ubuntu a Debianu. Budu se zabývat tím, jak povolit DNSSEC na vašich autoritativních jmenných serverech, vytvářet klíče, podepisovat zóny, přidávat důvěryhodné kotvy pomocí ověřování a testování DNSSEC Lookaside.
Pokud s konfigurací Bind teprve začínáte, přečtěte si tuto příručku, kde se dozvíte o konfiguraci BIND. Navíc, pokud si nejste jisti, co je DNSSEC a proč byste jej měli povolit? pak klikněte sem.
Odmítnutí odpovědnosti: Sdílím postup, který jsem se naučil a vyzkoušel na svém testovacím zařízení, a neexistuje žádná záruka, že bude fungovat ve vašem prostředí. Můžete to však vyzkoušet na svém testovacím zařízení, než jej ihned nakonfigurujete na svých produkčních systémech.
Jdeme dál?
Připravte své prostředí DNS pomocí konfigurace Bind.
Protože tento tutoriál bude hovořit o DNSSEC na Bind, ujistěte se, že máte připravené pracovní prostředí Bind. Chcete-li nainstalovat a nakonfigurovat Bind, postupujte podle tohoto jednoduchého průvodce.
Předpoklady:
Krok 1: Stáhněte a nainstalujte balíček dnssec-tools. Tento balíček použijeme k podepsání vašich zón.
$wget http://www.dnssec-tools.org/download/dnssec-tools-2.0.tar.gz $tar xvzf dnssec-tools-2.0.tar.gz $cd dnssec-tools-2.0
Na debian a Ubuntu si jej můžete nainstalovat přes apt-get.
$apt-get install dnssec-tools
Krok 2: Povolit DNSSEC, Validation a Lookaside
$vi /etc/named.conf
Nicméně cesta k named.conf se může lišit podle vašeho prostředí. Najdete ho na /etc/named/named.conf nebo /var/named/named.conf .
Hledejte Možnosti direktiva ‘ v named.conf . Pokud to tam nenajdete, můžete to najít named.options soubor. Každopádně na tom není žádný rozdíl.
V rámci direktivy Options upravte níže uvedené atributy.
dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto;
OK! Takto vypadá moje direktiva Options,
options { listen-on port 53 { 10.180.1.115; }; listen-on-v6 port 53 { ::1; }; version "not currently available"; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion no; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic";};
bindkeys-file :Tento řádek je vyžadován pouze v případě, že jsou klíče vazby umístěny na jiném místě. Každopádně si o tom promluvíme později.
Automaticky dnssec-lookaside :Toto nastavení říká Bindu, aby četl klíč DLV (DNSSEC Lookaside validation) z bind.keys poprvé se to provede. Současný DLV je dlv.isc.org klíč.
Abyste tomu lépe porozuměli:Chcete-li vytvořit řetězec důvěry, měla by být podepsána celá cesta DNS od kořenové zóny až po vaši vlastní zónu. Zvažte například doménu techglimpse.com. Kořenová zóna pro techglimpse.com je .com který musí být podepsán a poté techglimpse.com, zóna by měla být podepsána. Ale ne všechny domény nejvyšší úrovně (TLD) jsou podepsané (v době psaní tohoto článku). Pokud nadřazený prvek není podepsán, je řetězec důvěryhodnosti přerušen a klíč kořenové zóny nemůžete použít jako ukotvení důvěryhodnosti v konfiguraci BIND.
To je důvod DNSSEC lookaside validation (DLV) byl představen. Je to vlastně alternativní úložiště pro důvěryhodné klíče, kam lze odeslat své klíče zóny, pokud neexistuje plně podepsaná cesta z kořenové zóny dolů do vaší vlastní zóny. Funkční registr DLV je dlv.isc.org. Ve výchozím nastavení jsou klíč kořenové zóny a klíč dlv.isc.org obsaženy v /etc/named.iscdlv.key a to jde jako hodnota dobindkeys-file atribut vMožnosti směrnice. Pokud to nenajdete automaticky v named.conf nebo named.options , aktualizujte svou vazbu (yum install bind9 ) a znovu zkontrolujte.
Learn more about DLV registry: DLV Solution by ISC : https://www.isc.org/solutions/dlv DLV Background : https://dlv.isc.org/about/background Status of TLDs signed: http://stats.research.icann.org/dns/tld_report/
Automatické ověření dnssec: Tato možnost je dostupná pouze od Bind 9.8, 9.9 a novější. Bind 9.7 nepodporuje auto možnost pro dnssec-validation, místo toho používáme dnssec-validation:yes což znamená, že klíč kořenové zóny není načten. K vyřešení problému můžeme použít bind.keys soubor.
$more bind.keys
managed-keys { # ISC DLV: See https://www.isc.org/solutions/dlv for details. # NOTE: This key is activated by setting "dnssec-lookaside auto;" # in named.conf. dlv.isc.org. initial-key 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2 brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+ 1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5 ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt TDN0YUuWrBNh"; # ROOT KEY: See https://data.iana.org/root-anchors/root-anchors.xml # for current trust anchor information. # NOTE: This key is activated by setting "dnssec-validation auto;" # in named.conf. . initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0="; };
Poté můžete zahrnout bind.keys v named.conf nebo named.options.
include "/etc/bind/bind.keys";
Poznámka:Zkontrolujte správnou cestu bind.keys
Po dokončení restartujte Bind.
$service named restart or $/etc/init.d/bind9 restart or $rndc reload
OK! Nyní jsme povolili DNSSEC na Bind. Dále uvidíme, jak podepsat zónu.
Jak podepsat zónu v DNSSEC?
K podepsání zóny použijeme nástroje dnsssec-tools, které jsme nainstalovali na začátku tohoto tutoriálu. dnssec-tools jsou dodávány s příkazy zone signer, což je obal přes dnssec-keygen a dnssec-signzone.
Další informace naleznete na manuálové stránce aplikace Zonesigner.
$man zonesigner
Umístění konfiguračního souboru dnssec-tools: /usr/local/etc/dnssec-tools/dnssec-tools.conf . Cesta se však může ve vašem systému lišit.
Chcete-li podepsat zónu, příkaz vypadá takto:
zonesigner -genkeys -usensec3 -zone <domain-name> <zone-file>
$zonesigner -genkeys -usensec3 -zone techglimpse.com db.techglimpse.com
if zonesigner appears hung, strike keys until the program completes (see the "Entropy" section in the man page for details)
Generating key pair......................................++++++ ..............++++++ Generating key pair......++++++ ..++++++ Generating key pair...................................+++ ..................................+++ Verifying the zone using the following algorithms: NSEC3RSASHA1. Zone signing complete: Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked ZSKs: 1 active, 1 stand-by, 0 revoked
zone signed successfully
techglimpse.com: KSK (cur) 47781 2048 11/14/13 (techglimpse.com-signset-00003) ZSK (cur) 06809 1024 11/14/13 (techglimpse.com-signset-00001) ZSK (pub) 26330 1024 11/14/13 (techglimpse.com-signset-00002)
zone will expire in 30 days DO NOT delete the keys until this time has passed.
Prohlédněte si adresář a ověřte soubory klíčů.
$ ls -lrt -rw-r--r--. 1 root root 571 Oct 14 14:09 db.10.180.4 -rw-------. 1 root root 1015 Nov 14 11:45 Ktecglimpse.com.+007+06809.private -rw-r--r--. 1 root root 436 Nov 14 11:45 Ktechglimpse.com.+007+06809.key -rw-------. 1 root root 1015 Nov 14 11:45 Ktechglimpse.com.+007+26330.private -rw-r--r--. 1 root root 437 Nov 14 11:45 Ktechglimpse.com.+007+26330.key -rw-------. 1 root root 1779 Nov 14 11:45 Ktechglimpse.com.+007+47781.private -rw-r--r--. 1 root root 611 Nov 14 11:45 Ktechglimpse.com.+007+47781.key -rw-r--r--. 1 root root 777 Nov 14 11:45 db.techglimpse.com -rw-r--r--. 1 root root 173 Nov 14 11:45 dsset-techglimpse.com. -rw-r--r--. 1 root root 7183 Nov 14 11:45 db.techglimpse.com.signed -rw-r--r--. 1 root root 2172 Nov 14 11:45 techglimpse.com.krf
Při podepisování ověřte, zda vše proběhlo v pořádku.
$ donuts --level 8 -v db.techglimpse.com.signed techglimpse.com --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/check_nameserve rs.txt rules: MEMORIZE_NS_ADDRS DNS_SERVERS_MATCH_DATA --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dns.errors.txt rules: DNS_SOA_REQUIRED MEMORIZE_NS_CNAME_RECORDS DNS_NS_NO_CNAME --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dnssec.rules.tx t rules: DNSSEC_RRSIG_TTL_MATCH_ORGTTL DNSSEC_MEMORIZE_NS_RECORDS DNSSEC_CHECK _IF_NSEC3 DNSSEC_MISSING_NSEC_RECORD1 DNSSEC_MISSING_RRSIG_RECORD1 DNSSEC_RRSIG_ NOT_SIGNING_RRSIG DNSSEC_RRSIG_FOR_NS_GLUE_RECORD DNSSEC_NSEC_FOR_NS_GLUE_RECORD DNSSEC_RRSIG_SIGEXP DNSSEC_NSEC_TTL DNSSEC_NSEC3_TTL DNSSEC_DNSKEY_MUST_HAVE_SA ME_NAME DNSSEC_DNSKEY_PROTOCOL_MUST_BE_3 DNSSEC_BOGUS_NS_MEMORIZE DNSSEC_MISSING _RRSIG_RECORD2 DNSSEC_RRSIG_TTL_MUST_MATCH_RECORD DNSSEC_MISSING_NSEC_RECORD2 DN SSEC_RRSIG_SIGNER_NAME_MATCHES DNSSEC_NSEC_RRSEC_MUST_NOT_BE_ALONE DNSSEC_MEMORI ZE_KEYS DNSSEC_RRSIGS_VERIFY DNSSEC_TWO_ZSKS DNSSEC_OPENSSL_KEY_ISSUES --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/nsec_check.rule s.txt rules: DNSSEC_NSEC_MEMORIZE DNSSEC_NSEC3_MEMORIZE DNSSEC_NSEC3_CHECK DNSSEC_ NSEC_CHECK --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/parent_child.ru les.txt rules: DNS_MULTIPLE_NS DNSSEC_SUB_NOT_SECURE DNSSEC_DNSKEY_PARENT_HAS_VALID_ DS DNSSEC_DS_CHILD_HAS_MATCHING_DNSKEY --- loading rule file /usr/local/share/dnssec-tools/donuts/rules/recommendations .rules.txt rules: DNS_REASONABLE_TTLS DNS_NO_DOMAIN_MX_RECORDS --- Analyzing individual records in db.techglimpse.com.signed --- Analyzing records for each name in db.techglimpse.com.signed techglimpse.com: Rule Name: DNS_MULTIPLE_NS Level: 6 Warning: Only 1 NS record(s) for techglimpse.com found, but at least 2 are suggested/required Details: Tests to see if at least two NS records exist for a delegated zone.
results on testing techglimpse.com: rules considered: 38 rules tested: 30 records analyzed: 33 names analyzed: 10 errors found: 0
Nyní nahraďte podepsanou zónu (techglimpse.com) v named.conf
zone "techglimpse.com" { type master; file "/var/named/zones/master/db.techglimpse.com.signed"; };
Restartujte Bind, jak je uvedeno níže,
$service named restart or $/etc/init.d/bind9 restart
Otestujte nastavení DNSSEC pomocí dig
Formát příkazu dig vypadá takto.
$dig @<dns_server> +dnssec <domain_name>
Ve výstupu vyhledejte „reklama ‘ ve vlajkách.
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1
REKLAMA znamená příznak Authenticated Data, který bude nastaven pouze v případě, že resolver ověřil odpověď, kterou obdržel od autoritativního jmenného serveru.
A je to! Pokud vše proběhlo v pořádku, pak jste úspěšně nastavili základní DNSSEC na Bind 9.8.2.
ČTĚTE:Průvodce DNSSEC pro začátečníky
ČTĚTE:Jak zjistit, zda je doména podepsána DNSSEC nebo ne?