SwordArMor

Du DNSSEC sur ses reverses

Parce que bon, soyons franc, c’est inutile donc indispensable (presque autant que le module puzzle de VLC).

Je ne vous rappelle pas comment jouer avec DNSSEC, je l’ai déjà fait pour knot et nsd. Dites vous juste qu’une zone reverse est exactement la même chose que tout autre domaine, on met juste des PTR à la place des A/AAAA.

Je vais donc simplement me contenter d’expliquer comment publier votre enregistrement chez votre RIR. Je vais prendre l’exemple du RIPE, car les IPs que je gère dépendent du RIPE.
Pour commencer, il faut se rendre sur https://apps.db.ripe.net/search/query.html et vous connecter. Une fois ceci fait, recherchez le nom de domaine qui correspond à votre range IP, comme par exemple 1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa (créez le s’il n’existe pas, mais j’ose espérer que vous savez déjà gérer des reverses si vous lisez cet article) et cliquez sur le bouton « update ». Ensuite, ajoutez un champs « ds-rdata » en cliquant sur l’un des plus à droite des champs déjà existant. Dans ce champs vous devez rentrer votre DS sous la forme ${Keytag} ${Algorithm} ${Digest type} ${Digest}, exactement dans le même ordre qu’un DS dans une zone DNS. Par exemple, si j’obtiens cette sortie :

ns ~ # ods-ksmutil key export --zone 1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa --ds

;active KSK DS record (SHA1):
1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa.	3600	IN	DS	14966 8 1 f700670f65c039315fff4a18d72f69a89755f4b4

;active KSK DS record (SHA256):
1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa.	3600	IN	DS	14966 8 2 adacef8b735f8399e3bf03950baec04e87ed5a5753d28cabc4525b6212cc2e2e
je vais mettre 14966 8 2 adacef8b735f8399e3bf03950baec04e87ed5a5753d28cabc4525b6212cc2e2e dans ce champs. SHA1 étant déprécié, ce n’est pas la peine de publier ce DS.
Vous devez alors avoir quelque chose qui ressemble à ça :

Une fois le formulaire validé, vous devriez avoir le drapeau ad pour authenticate data, ce qui indique que la validation DNSSEC est bonne sur une requête de reverse DNS, comme sur les deux requêtes suivante (voir la ligne flags:) :

alarig@pikachu ~ % dig -x 185.1.89.10

; <<>> DiG 9.11.0-P3 <<>> -x 185.1.89.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25966
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;10.89.1.185.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
10.89.1.185.in-addr.arpa. 3600	IN	PTR	grifon-nominoe.breizh-ix.net.

;; AUTHORITY SECTION:
89.1.185.in-addr.arpa.	3600	IN	NS	ns.breizh-ix.net.
89.1.185.in-addr.arpa.	3600	IN	NS	pokedex.swordarmor.fr.

;; Query time: 851 msec
;; SERVER: 89.234.186.4#53(89.234.186.4)
;; WHEN: Thu Mar 16 20:37:50 CET 2017
;; MSG SIZE  rcvd: 147

alarig@pikachu ~ % dig -x 2001:7f8:b1::a

; <<>> DiG 9.11.0-P3 <<>> -x 2001:7f8:b1::a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63930
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa. IN PTR

;; ANSWER SECTION:
a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa. 3600 IN PTR grifon-nominoe.breizh-ix.net.

;; AUTHORITY SECTION:
1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa. 3600 IN NS	ns.breizh-ix.net.
1.b.0.0.8.f.7.0.1.0.0.2.ip6.arpa. 3600 IN NS	pokedex.swordarmor.fr.

;; Query time: 270 msec
;; SERVER: 2a00:5884::7#53(2a00:5884::7)
;; WHEN: Thu Mar 16 20:38:00 CET 2017
;; MSG SIZE  rcvd: 195