1 | AROC-EN Mali |
---|
2 | Exercice DNSSEC |
---|
3 | |
---|
4 | 1. Installer BIND9 |
---|
5 | |
---|
6 | # apt-get install bind9 |
---|
7 | |
---|
8 | Vérifier que BIND9 tourne |
---|
9 | |
---|
10 | # /etc/init.d/bind9 start |
---|
11 | # rndc status |
---|
12 | |
---|
13 | 2. Les fichiers de configuration de BIND9 se situent dans /etc/bind |
---|
14 | |
---|
15 | # cd /etc/bind |
---|
16 | |
---|
17 | Nous allons créer une zone, dnssec.aroc, et la signer. Comme nous devons |
---|
18 | créer et stocker des clés pour signer cette zone, nous devons créer un |
---|
19 | répertoire pour tout contenir: |
---|
20 | |
---|
21 | # mkdir db.dnssec.aroc |
---|
22 | # cd db.dnssec.aroc |
---|
23 | |
---|
24 | 3. Créer le fichier zone non-signé: |
---|
25 | |
---|
26 | # vi dnssec.aroc |
---|
27 | |
---|
28 | C'est une zone normale, sans informations DNSSEC dedans. |
---|
29 | |
---|
30 | Voici un exemple pour vous aider à démarrer. |
---|
31 | |
---|
32 | $TTL 3600 |
---|
33 | |
---|
34 | @ SOA tldXX.aroc. nsrc.nsrc.org. ( |
---|
35 | 0 ; serial |
---|
36 | 28800 ; refresh |
---|
37 | 3600 ; retry |
---|
38 | 604800 ; expire |
---|
39 | 3600 ) ; negative-cache TTL |
---|
40 | |
---|
41 | NS tldXX.aroc. |
---|
42 | |
---|
43 | test TXT "voici un TXT RRSet, que nous allons signer" |
---|
44 | TXT "voici un autre enregistrement dans le meme RRset" |
---|
45 | |
---|
46 | Vérifier que la zone que vous avez créé n'a pas d'erreurs dedans: |
---|
47 | |
---|
48 | # named-checkzone dnssec.aroc ./dnssec.aroc |
---|
49 | |
---|
50 | |
---|
51 | 4. Créér les KSK pour la zone DNSSEC.AROC |
---|
52 | |
---|
53 | # dnssec-keygen -a RSASHA1 -b 4096 -n ZONE -f KSK -r /dev/urandom dnssec.aroc |
---|
54 | |
---|
55 | Ceci est une clé 2048-bit RSA, et c'est une KSK. Cette clé sera stockée |
---|
56 | dans un fichier. Trouvez la en faisant ls (ou en regardant bien la sortie |
---|
57 | de la commande dnssec-keygen), et NOTEZ le nom de ce fichier. |
---|
58 | |
---|
59 | On utilise /dev/urandom pour générer des chiffres aléatoires, mais |
---|
60 | uniquement dans le contexte de cet exercice. Normalement on utiliserait |
---|
61 | /dev/random (sans 'u'), et nous obtiendrions des chiffres aléatoires de |
---|
62 | plus grande qualité, mais ceci prendrait plus longtemps. |
---|
63 | |
---|
64 | 5. Créer une ZSK pour la zone DNSSEC.AROC |
---|
65 | |
---|
66 | # dnssec-keygen -a RSASHA1 -b 1024 -n ZONE -r /dev/urandom dnssec.aroc |
---|
67 | |
---|
68 | Ceci est une clé1024-bit RSA, et elle sera utilisée comme ZSK. Encore |
---|
69 | une fois, elle sera stockée dans un fichier. |
---|
70 | |
---|
71 | Si vous devenez confus et ne savez plus quelle clé est ZSK et KSK, |
---|
72 | rappelez vous que la plus petite (taille fichier, ls -l) (qui servira |
---|
73 | Ã signer la zone, est la ZSK. |
---|
74 | |
---|
75 | Noter le nom du fichier. |
---|
76 | |
---|
77 | Voir l'étape 4) cf. le commentaire sur /dev/urandom |
---|
78 | |
---|
79 | |
---|
80 | 6. Inclure la KSK et la ZSK dans le fichier non-signé: |
---|
81 | |
---|
82 | Add the following lines to the dnssec.aroc zone file: |
---|
83 | |
---|
84 | $INCLUDE "/etc/bind/db.dnssec.aroc/nom_du_fichier_KSK.key" |
---|
85 | $INCLUDE "/etc/bind/db.dnssec.aroc/nom_du_fichier_ZSK.key" |
---|
86 | |
---|
87 | Revérifier que la zone est correcte et ne contient pas d'erreur |
---|
88 | aprÚs cette modification. |
---|
89 | |
---|
90 | # named-checkzone dnssec.aroc ./dnssec.aroc |
---|
91 | |
---|
92 | On pourrait également copier/coller le contenu des fichiers de |
---|
93 | clé ZSK et KSK directement dans la zone. Mais il faut être sûr |
---|
94 | de le faire correctement. Pas besoin de copier/coller avec |
---|
95 | l'utilisation de la directive $INCLUDE. |
---|
96 | |
---|
97 | 7. Signer la zone |
---|
98 | |
---|
99 | # dnssec-signzone -N unixtime dnssec.aroc |
---|
100 | |
---|
101 | En utilisant la commande "-N unixtime", on fait savoir à dnssec-signzone |
---|
102 | qu'il doit mettre à jour le numéro de série automatiquement. Ceci nous |
---|
103 | évite de devoir le faire à la main dans le fichier non-signé. |
---|
104 | |
---|
105 | Regarder le contenu de votre répertoire: |
---|
106 | |
---|
107 | # ls |
---|
108 | dnssec.aroc Kdnssec.aroc.+005+34222.private |
---|
109 | dnssec.aroc.signed Kdnssec.aroc.+005+34653.key |
---|
110 | dsset-dnssec.aroc. Kdnssec.aroc.+005+34653.private |
---|
111 | Kdnssec.aroc.+005+34222.key keyset-dnssec.aroc. |
---|
112 | # |
---|
113 | |
---|
114 | Explication: |
---|
115 | |
---|
116 | dnssec.aroc unsigned zone file |
---|
117 | dnssec.aroc.signed signed zone file |
---|
118 | dsset-dnssec.aroc. DS record you could send to your parent |
---|
119 | keyset-dnssec.aroc. the DNSKEY record that the DS record matches |
---|
120 | Kdnssec.aroc.*.key public keys we generated earlier |
---|
121 | Kdnssec.aroc.*.private private keys we generated earlier |
---|
122 | |
---|
123 | |
---|
124 | Vérifier que la zone que vous avez signée est correcte: |
---|
125 | |
---|
126 | # named-checkzone dnssec.aroc ./dnssec.aroc.signed |
---|
127 | |
---|
128 | |
---|
129 | 8. Servir la zone |
---|
130 | |
---|
131 | La zone signée est une zone comme toute autre -- elle contient simplement |
---|
132 | des enregistrements en plus. Pour indiquer à BIND9 qu'il doit servir |
---|
133 | cette zone, nous devons l'ajouter à named.conf. Le meilleur endroit pour |
---|
134 | effectuer ce changement sur Ubuntu est dans /etc/bind/named.conf.local |
---|
135 | |
---|
136 | # cd /etc/bind |
---|
137 | # vi named.conf.local |
---|
138 | |
---|
139 | ... et ajouter ceci à la fin du fichier: |
---|
140 | |
---|
141 | zone "dnssec.aroc" { |
---|
142 | type master; |
---|
143 | file "/etc/bind/db.dnssec.aroc/dnssec.aroc.signed"; |
---|
144 | }; |
---|
145 | |
---|
146 | Vérifier que vous n'avez pas fait de faute de frappe en vérifiant la |
---|
147 | configuration: |
---|
148 | |
---|
149 | # named-checkconf /etc/bind/named.conf |
---|
150 | |
---|
151 | Si il n'y a pas d'erreurs, vous ne verrez aucun message de la part de |
---|
152 | named-checkcconf. |
---|
153 | |
---|
154 | Dites à BIND9 de recharger sa configuration: |
---|
155 | |
---|
156 | # rndc reconfig |
---|
157 | |
---|
158 | Envoyez des requêtes à votre serveur de noms, et observez les |
---|
159 | réponses: |
---|
160 | |
---|
161 | # dig @127.0.0.1 dnssec.aroc SOA |
---|
162 | # dig @127.0.0.1 dnssec.aroc DNSKEY |
---|
163 | # dig @127.0.0.1 test.dnssec.aroc TXT |
---|
164 | |
---|
165 | Essayez maintenant d'ajouter l'option +dnssec, et vous verrez les |
---|
166 | signatures apparaître dans les réponses: |
---|
167 | |
---|
168 | # dig @127.0.0.1 dnssec.aroc SOA +dnssec |
---|
169 | # dig @127.0.0.1 dnssec.aroc DNSKEY +dnssec |
---|
170 | # dig @127.0.0.1 test.dnssec.aroc TXT +dnssec |
---|
171 | |
---|
172 | Quelles sont les dates d'inception et d'expiration sur les signatures ? |
---|
173 | |
---|
174 | |
---|
175 | 9. Rappel! |
---|
176 | |
---|
177 | En réalité, vous devrez re-signer réguliÚrement afin que vos signatures |
---|
178 | n'expirent pas. |
---|
179 | |
---|
180 | Quand vous rédigez la zone, pas besoin de modifier la version signée |
---|
181 | (qui sera plus grosse et compliquée à lire) - vous modifiez la |
---|
182 | version non-signée: |
---|
183 | |
---|
184 | # cd /etc/bind/db.dnssec.aroc |
---|
185 | # vi dnssec.aroc |
---|
186 | |
---|
187 | AprÃs tout changement, vous devez recréer de nouvelles signatures: |
---|
188 | |
---|
189 | # cd /etc/bind/db.dnssec.aroc |
---|
190 | # dnssec-signzone -N unixtime dnssec.aroc |
---|
191 | |
---|
192 | Encore une fois, en utilisant "-N unixtime", on fait savoir à dnssec-signzone |
---|
193 | qu'il doit mettre à jour le numéro de série dans le SOA. Pas besoin de le |
---|
194 | mettre à jour dans le fichier non-signé. |
---|
195 | |
---|