Einführung

Setzt man DNSSEC ein, muss man bei jeder Änderung der Zone oder wenn die Signatur abgelaufen ist die Zone neu signieren. Setzt man dynamisches DNS ein (wie in diesem Blogpost beschrieben: Eigener Dynamischen DNS (DDNS) Service betreiben (Eigenes DynDNS), ist es am einfachsten wenn der Nameserver die Zone nach einem Update selber neu signiert.

Das Problem

Es gibt den Host monpi.example.org, welcher seinen DNS-Eintrag regelmässig anpasst. Bei dieser Zone wurde neu DNSSEC aktiviert:

$ [ m m . o o d . n n i . p p g ] i i . . m e e o x x n a a p m m i p p . l l e e e x . . a o o m r r p g g l . . e . o r g @ n s 1 . e 6 6 x 0 0 a m I I 2 J T [ K n p N N 0 6 h . u Y l 1 F F . b N e A R 4 N m . M j . R 1 U F ] h V o 8 S 0 r B c S r 0 I 0 6 s 3 P g . G 5 L g s s 2 1 6 1 c F + 1 A 4 K 8 4 I d 8 1 6 m Q U n . 1 7 I f F t s 2 0 1 3 t z z s 0 3 Z O N u e 1 3 y a k P c . 2 r D 8 E 2 6 0 8 M 3 e + 5 0 1 g z D 3 m 0 4 F R i l ( 0 C 9 A E + 9 k G g x n 0 y e x 9 o 5 1 v E c a 1 8 k b = d 3 P 3 D d 1 Z b 6 ) i 7 L S s t 1 W r M i 3 7 s K o k X n 4 S n a 0 7 I p l 7 1 h S 9 S M t + 5 G B f n 0 4 Z o e F 1 L a x 0 4 B u a K l + t m D A X h p U v q o l Y / E r e i + U i . S y / t o y r g .

Jetzt will der Client ein Update in der DNS Zone durchführen:

$ s z u u s u q e o p p e p u n r n d d n d i s v e a a d a t u e t t t p r e e e e d x a n a d a f t s m e d a e 1 p l d i . l e l - e e t m e k x . e o d a o n : k m r m p m p g o i S o l n . E n e p e R p . i x V i o . a F . r e m A e g x p I x a l L a m e m p . p l o l e r e . g . o o r 6 r g 0 g 0 . p A r i 1 v 0 a . t 2 e 3 . 5 . 4 2

Schindexeinbar gibt es da ein Problem. Anstatt so die gesamte Zone zu invalidieren, verbietet der Nameserver das aktuallisieren des Records. Dies ist auch im Logfile zu sehen:

S S S S S S e e e e e e p p p p p p 5 5 5 5 5 5 1 1 1 1 1 1 6 6 6 6 6 6 : : : : : : 1 1 1 1 1 1 2 2 2 2 2 2 : : : : : : 5 5 5 5 5 5 4 4 4 4 4 4 m m m m m m o o o o o o t t t t t t d d d d d d n n n n n n a a a a a a m m m m m m e e e e e e d d d d d d [ [ [ [ [ [ 9 9 9 9 9 9 3 3 3 3 3 3 7 7 7 7 7 7 3 3 3 3 3 3 ] ] ] ] ] ] : : : : : : c c d d c c l l n n l l i i s s i i e e _ _ e e n n d d n n t t n n t t s s 8 8 s s 8 8 0 0 e e 0 0 . . c c . . 2 2 _ _ 2 2 1 1 f f 1 1 8 8 i i 8 8 . . n n . . 2 2 d d 2 2 0 0 z z 0 0 1 1 o o 1 1 . . n n . . 1 1 e e 1 1 4 4 k k 4 4 9 9 e e 9 9 # # y y # # 3 3 s s 3 3 9 9 2 2 9 9 1 1 : : 1 1 4 4 4 4 1 1 e e 1 1 : : r r : : r r u u o o u u p p r r p p d d d d a a r r a a t t e e t t i i a a i i n n d d n n g g i i g g n n z z g g z z o o o o n n p p n n e e r r e e i i ' ' v v ' ' e e a a e e x x t t x x a a e e a a m m m m p p k k p p l l e e l l e e y y e e . . . . o o f f o o r r i i r r g g l l g g / / e e / / I I I I N N e e N N ' ' x x ' ' : : a a : : m m d a p p f R e d l l o R l d e e u S e i . . n I t n o o d G e g r r / g g n N a a / / o S l n R R E l S S a C R A A c / r R S S t N r H H i S s a A A v E e t 5 5 e C t 1 1 3 s ' 2 2 p m / r u f 4 5 i p r n 0 7 v d o p 7 7 a a m i 9 4 t t . 5 : e e n e : a x f k f m a f i e a e m i l y i p l e s l ' l e , e m e n d o . n o u : n o o t n p r t a n i g f b o . ' f o l t e o u e x A u n f a n d t o m d o u p n l g d e e . n o e r r g a ' t e a n y s i g n a t u r e s

Der Nameserver merkt, dass die Zone DNSSEC signiert ist und möchte einen Private Key finden. Da dieser nirgends gefunden wird, wird das Update verweigert.

Die Lösung

Bind kann man sagen, er solle die DNSSEC signierten Zonen automatisch bei einer Änderung neu signieren. Dafür braucht es die Option a) key-directory und b) auto-dnssec maintain Diese Konfiguration sieht so aus:

z } o ; n t f k a n u } a e y i e l o p ; u p l y l t d g g t " e e - o i a r r o e d w f t a a - x m " i - y e n n d a a / r t - t t n m s e e r y p s p t t c a e o m t s l e c t n s l o u e e r / o s ; i n p c . ; b r f c p a o i y e y i i m r n r . l a g d " { e . i " / / { x e n d e a x t { b t " m a a . c s p m i e / l l p n x b a e l ; a i v . e m n e o . p d s r o l / " g r e k ; g b . e n ) o y } a n r s ; m a g " e m . ; e Z s m o i o t n g n u e n p p e a i a a d ) . i u " e l t ; x . o a e m V m x a e p a t r l m i z e p s e . l c i o e h c r . h g o n n r e i A g u s A A S f A i ü A A g r A A n ; A i d A e e ; r n e n P r i v a t e K e y

Eventuell muss man noch den Besitzer der Keys anpassen, damit bind die Private Keys lesen kann. Beim manuellen genügte es, wenn root die Private Keys lesen konnte.

# c h o w n b i n d / e t c / b i n d / k e y s / K * . p r i v a t e

Jetzt noch den Nameserver neustarten und schon ist man fertig:

# s e r v i c e b i n d 9 r e s t a r t

Nun können die DDNS Clients wie gewohnt ihre Updates machen.

S S S S S S S e e e e e e e p p p p p p p 5 5 5 5 5 5 5 1 1 1 1 1 1 1 6 6 6 6 6 6 6 : : : : : : : 4 4 4 4 4 4 4 8 8 8 8 8 8 8 : : : : : : : 0 0 0 0 0 0 0 6 6 6 6 6 6 6 m m m m m m m o o o o o o o t t t t t t t d d d d d d d n n n n n n n a a a a a a a m m m m m m m e e e e e e e d d d d d d d [ [ [ [ [ [ [ 9 9 9 9 9 9 9 7 7 7 7 7 7 7 2 2 2 2 2 2 2 8 8 8 8 8 8 8 ] ] ] ] ] ] ] : : : : : : : c c z c c c c l l o l l l l i i n i i i i e e e e e e e n n n n n n t t e t t t t x 8 8 a 7 7 2 7 0 0 m 8 8 a 8 . . p . . 0 . 2 2 l 4 4 1 4 1 1 e 7 7 : 7 8 8 . . . 4 . . . o 1 1 f 1 2 2 r 5 5 8 5 0 0 g 4 4 : 4 1 1 . . 1 . . . I 3 3 4 3 1 1 N 9 9 0 9 4 4 : # # : # 9 9 3 3 9 3 # # s 4 4 2 8 5 5 e 7 7 4 7 3 3 n 0 0 4 5 1 1 d 0 0 : 8 6 6 i : : : : 0 0 n d : : g t t 3 r r r 9 e u u n a a c c p p o n n : e d d t s s d i a a i f f c v t t f e e d e i i i r r 5 d n n e # g g s o o 3 n f f 7 o z z ( 8 t o o s ' ' 1 i n n e e e 9 f e e r x x : y i a a ' ' a m m r f e e l p p e o x x l l c r a a 2 e e e m m 0 . . i z p p 1 o o v o l l 4 r r e n e e 0 g g d e . . 9 / / o o 0 I I n ' r r 5 N N o e g g 1 ' ' t x / / 0 : : i a I I ) f m N N I I y p ' ' X X l : : F F f e R R o . d a r o e d s e r l d t n z g e i a d o ' t n r e n e g t d e e a a d ' l n e l x R a r R m r p s a l e t e t . s ' o m r f o g r n ' o p m i . n e a x m a e m p ' l m e o . n o p r i g . ' e x A a m p l e . o r g '

Hier der Beweis, dass die Signatur geändert hat:

e $ [ m m [ m . o o . a d . n n . n i . p p . u g ] i i ] e . . l m e e @ o x x e n a a r p m m i i p p s . l l : e e e ~ x . . a o o m r r p g g l . . e . o r g @ n s 1 . e 6 6 x 0 0 a m I I 2 p [ j h p N N 0 F . + r l 1 X . 6 A e A R 4 d . a F . R 1 p ] B H o 1 S 0 F r k r . I 0 6 9 F g 2 G 5 F c i . 1 6 M 5 + 3 A 4 C + f d . 4 d n z n 4 1 8 c u J s 0 0 u / 6 s 6 O 6 2 e 3 n T A c 2 P P O 6 0 2 u y + 0 1 p X 8 m 4 7 o 3 ( 0 a Z / + 9 D j p n 0 g S J o 5 L o Q a 1 J o = d 3 H O d 4 2 Y ) i 8 O z t 0 p w i 6 l M o 6 h n 4 / j a 0 U O l 7 Y o 9 3 e + 5 K i n r v o e I I a x u n u a e 3 t m y j h p b 8 o l N Y r e i 5 i . z j t o y r g .

Die Signatur wurde aktuallisiert.