Díky, skvělý návod.
Řešil někdo jak automaticky přidat CDNSKEY záznam? Bind 9.9.5 to asi neumí. Napadá někoho nějaká finta? Nebo budu muset zkompilovat 9.11 , ta zatím v balících debianu není. Nebo jak jinak rozumně předat registrátorovi klíč?
A pak také netuším proč mi validátory hlásí "Algorithm number 13 is unassigned", je to nepodporované šifrování, nebo to jen nepodporuje validátor?
Co se týče otázky CDNSKEY záznamu, tam by neměl problém vložit ho do zóny ručně. Je to obyčený záznam, není kolem žádná magie. Nová verze BINDu ho jen umí genetovat automaticky.
Které validátory hlásí problém s algorimem 13? DNSviz s tím rozhodně mít problém nebude. Nejspíš půjde o nějaké zastaralé, co se zasekly u RSA.
Můžete mi tedy prosím dát návod jak ten CDNSKEY vytvořit nebo dát příklad? Nebo je to prostě jen záznam pro kořen dané domény? Takže pro doménu mojedomena.cz bude záznam vypadat:
mojedomena.cz IN A IP.AD.RE.SA
mojedomena.cz IN CDNSKEY --a-radek-v-souboru-s-verejnym-klicem-- ?
a ostatní záznamy
www IN IP.AD.RE.SA
již bez CDNSKEY záznamu
A to stačí přidat do nepodepsaného souboru zóny a dál si s tím bind 9.9.5 poradí?
A k těm validátorům, zkoušel jsem jak https://dnscheck.labs.nic.cz/ tak i http://dnscheck.pingdom.com
ale oba hlásí pro algoritmus chybu, nebo to špatně chápu
-Algorithm number 13 is unassigned.
-DNSSEC signature RRSIG(skvelynet.cz/IN/DNSKEY/9418) fails to validate the RR set: key 1:Algoritm 13 has not yet been implemented
Ano, vložte do zónového souboru obsah soubor s veřejným klíčem a jen zaměňte typ záznamu DNSKEY za CDNSKEY.
Tester DNSCheck je zastaralý a instalace od CZ.NIC má v hlavičcce velký červený text:
ECDSA algoritmy nejsou v tuto chvíli podporovány, chyby vztahující se na alg 13 a 14 jsou způsobeny na straně testovacího serveru.
Tester u pingdom je jen jinak naskinovaný DNSCheck, má tedy zřejmě stejné problémy. Použijte raději Zonemaster, což je následník DNSChecku: https://zonemaster.ripe.net https://zonemaster.iis.se https://www.zonemaster.fr
Tester - zonemaster - díky.
Co se týká CDNSKEY tak mám další problém, bind 9.9.5 (debian jessie) nezná typ záznamu CDNSKEY
Zkouším to obejít přes zápis
mojedomena.cz IN TYPE60 zápis a pak hodnoty 257 3 13 VEREJNYKLIC..
jenže nedaří se mi to zapsat ve tvaru pochopitelném bindem..
Dívám se i na rfc3597 a zkouším příjít na správný zápis, ale zatím nic ani nefunguje
mojedomena.cz CLASS1 TYPE60 ...
Budu ještě pátrat jak to vnutit té mé verzi binda a nebo zkompiluji novější.
Tak už to mám, byl to boj...
Záznam
skvelynet.cz. IN CDNSKEY 257 3 13 0tV4xYibabQuOLi+705xOJiNaruWCbQmg6lof1MZshazZRRn8YuFP01I RjYJjumRmV7S/bdHwhUMIwY8AsKcbg==
se zapíše
skvelynet.cz. IN TYPE60 \# 92 (01 01 03 0D 30 74 56 34 78 59 69 62 61 62 51 75 4f 4c 69 2b 37 30 35 78 4f 4a 69 4e 61 72 75 57 43 62 51 6d 67 36 6c 6f 66 31 4d 5a 73 68 61 7a 5a 52 52 6e 38 59 75 46 50 30 31 49 52 6a 59 4a 6a 75 6d 52 6d 56 37 53 2f 62 64 48 77 68 55 4d 49 77 59 38 41 73 4b 63 62 67 3d 3d )
Type60 = CDNSKEY
\# = bude následovat hexa vstup
92 = délka řetězce v bytech
0101 = je v hexa 257
03 = 3
0D = 13
a pak klíč bez mezer převedený do hexa (u mě má délku 88 znaků)
Tak až teď to mám - zápis jak přinutit BIND 9.9.5 akceptovat záznam s CDNSKEY
(vznik ověřován na porovnání odpovědí zachycených tcpdumpem a analýzou wiresharkem)
záznam
#dig TYPE48 skvelynet.cz
;; ANSWER SECTION:
skvelynet.cz. 3600 IN DNSKEY 257 3 13 0tV4xYibabQuOLi+705xOJiNaruWCbQmg6lof1MZshazZRRn8YuFP01I RjYJjumRmV7S/bdHwhUMIwY8AsKcbg==
se přepíše do root.zone souboru bindu následovně - pro CDNSKEY
skvelynet.cz. IN TYPE60 \# 68 ( 01 01 03 0D d2 d5 78 c5 88 9b 69 b4 2e 38 b8 be ef 4e 71 38 98 8d 6a bb 96 09 b4 26 83 a9 68 7f 53 19 b2 16 b3 65 14 67 f1 8b 85 3f 4d 48 46 36 09 8e e9 91 99 5e d2 fd b7 47 c2 15 0c 23 06 3c 02 c2 9c 6e )
kde délka je fixní = 68 byte
0101 = 257
03 = 3
0D = 13
d2d5..... to je již 64B klíč.. Klíč je však uložen v BASE64, je nutné převést do hexa http://www.asciitohex.com/
-- v podstatě stačí vzít ten řetězec 0tV4....== a copy+paste
následně stačí reloadovat bind..
a dig vrátí pro dotaz na type60
#dig TYPE60 skvelynet.cz
;; ANSWER SECTION:
skvelynet.cz. 3600 IN TYPE60 \# 68 0101030DD2D578C5889B69B42E38B8BEEF4E7138988D6ABB9609B426 83A9687F5319B216B3651467F18B853F4D484636098EE991995ED2FD B747C2150C23063C02C29C6E
jestli jsem vše udělal dobře, tak stačí teď počkat 7 dní a díky skenování ze strany cz.nic by mělo dojít k zanesení klíče do nadřazeného dns.. viz: https://www.root.cz/clanky/druha-faze-automatizovane-spravy-dnssec-klicu/
Dám pak vědět..
Skript pro generování CDNSKEY záznamů do bindu který "CDNSKEY" ještě nezná.
Skript je tupej a předpokládá inteligentní vstup - vygenerovanou veřejnou část klíeč dle postupu v tomto článku. Řádek se pak přidá do souboru se záznamy zóny.
====
#!/bin/bash
#
# Vygeneruje CDNSKEY ZAZNAM pro bind 9.9.5 ktery jej nezna
# Vstup je soubor s verejnym klicem - algorithm number 13/(ECDSA Curve P-256 with SHA-256)
#
if [ -z $1 ] ; then
echo "Pouziti: $0 <soubor-s-verejnym-klicem>"
exit 1;
fi
domain=`grep DNSKEY $1 | cut -f 1 -d" "`
grep "DNSKEY 257 3 13" $1 | cut -f 7- -d" " | while read radek ; do
echo -n "$domain IN TYPE60 \# 68 ( 01 01 03 0D "
echo $radek | base64 -d -i | hexdump -v -e '/1 "%02x " '
echo ")"
done
Zdravím,
využil jsem vašich poznatků jak přesvědčit bind 9.9.5, který je v debianu a snažím se to replikovat na redhat, který má dokonce bind 9.9.4.
Co tedy všechno musí být v zónovém souboru za záznamy když využívám ECDSA šifru a inline-signing?
Mám tam DNSKEY, z něj udělanej "CDNSKEY" přes TYPE60 a HEXa zápis podle vás, pak taky DS, ale ten se mi z venku nepřekládá jako vám na skvelynet.cz, je to tím že ještě nemám řetězec důvěry? Ten CDNSKEY jsem tam zadal teprve včera cca v 18:00, tak nevím jestli mi přijde email o nálezu nebo mám něco špatně :D Za jak dlouho vám přišel?
Zajímavé je taky co se děje s Serial číslem, v zónovém souboru mám např.:2018030113, ale log napíše:
named[10032]: zone dns-sec.cz/IN (signed): sending notifies (serial 2018030116)
named[10032]: zone dns-sec.cz/IN (signed): reconfiguring zone keys
Musím tedy hlídat až do jakého čísla se povýšil podepsaný Serial abych neměl nižší číslo než aktuální?
zone dns-sec.cz/IN (signed): reconfiguring zone keys
Po změně serialu a rndc reload log píše toto:
named[10032]: zone dns-sec.cz/IN (unsigned): loaded serial 2018030201
named[10032]: zone dns-sec.cz/IN (signed): next key event: 02-Mar-2018 10:12:25.089
named[10032]: zone dns-sec.cz/IN (signed): serial 2018030201 (unsigned 2018030201)
Asi nechápu co to všechno znamená.
První řádek - že má nepodepsanou zónu?
Druhý řádek - že ji podepíše až v 10:12?
Třetí řádek - zóna s tímto serialem podepsaná a potom v závorce že je nepodepsaná?
Moc děkuji za všechny poznatky a odpovědi na možná stupidní otázky...
Pokud uz klic existuje, tak muzeme sync jednoduse pridat bez nutnosti vymeny klice pomoci
dnssec-settime -P sync now
(neplest jen s -P now
, coz je jen publikace zaznamu, nikoliv publikace sync CDNSKEY!):
napr.:
dnssec-settime -P sync now Kexample.com.+ALG+NUMBER.key
v adresari s klici