Rev 1076 | Rev 1106 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1076 | jmengual | 1 | AUTEUR : Lars Bamberger <Lars.Bamberger at gmx dot de> |
2 | |||
1079 | jmengual | 3 | TRADUCTEUR : Emmanuel Trillaud <etrillaud at gmail point com> |
1076 | jmengual | 4 | |
1079 | jmengual | 5 | DATE : 20-11-2009 |
1076 | jmengual | 6 | |
7 | LICENCE : GNU Free Documentation License Version 1.2 |
||
8 | |||
1079 | jmengual | 9 | SYNOPSIS : Comment chiffrer un système de fichiers y compris celui de la racine. |
1076 | jmengual | 10 | |
11 | DESCRIPTION : |
||
1079 | jmengual | 12 | Ce document décrit un des moyens de chiffrer votre disque dur, y compris le système |
13 | de fichiers racine. Il est destiné aux utilisateurs expérimentés et tente |
||
14 | d'affronter les difficultés du chiffrement du système de fichiers racine de façon |
||
15 | directe. |
||
1076 | jmengual | 16 | |
17 | |||
1079 | jmengual | 18 | PRÉREQUIS : |
19 | Cette astuce nécessite une connaissance suffisante de BeyongLinuxFromScratch |
||
20 | ainsi que des logiciels suffisamment à jour. Vous devez être à l'aise pour |
||
1076 | jmengual | 21 | construire un logiciel, trouver, lire et comprendre toute autre documentation |
22 | pertinente. Vous devez savoir comment configurer un initramfs. (Voir |
||
1079 | jmengual | 23 | 'filesystems/ramfs-rootfs-initramfs.txt' dans la documentation du noyau). |
24 | Vous devez connaître la raison pour laquelle vous voulez un système de fichiers |
||
25 | chiffré et vous devez comprendre les menaces contre lesquelles vous essayez de |
||
26 | vous protéger. Vous devez aussi comprendre les insuffisances et les problèmes |
||
27 | de sécurité si vous suivez les instructions contenues dans cette astuce. |
||
1076 | jmengual | 28 | |
1079 | jmengual | 29 | Vous devez avoir une sauvegarde complète de votre système dans un endroit sûr ! Ceci |
30 | implique un périphérique de démarrage alternatif. |
||
1076 | jmengual | 31 | |
32 | Vous DEVEZ ABSOLUMENT LIRE ET COMPRENDRE CETTE ASTUCE AVANT DE MODIFIER VOTRE |
||
1079 | jmengual | 33 | SYSTÈME ! |
1076 | jmengual | 34 | |
35 | |||
36 | ASTUCE : |
||
37 | |||
1079 | jmengual | 38 | 1. C'est à quel sujet ? |
1076 | jmengual | 39 | =========== |
40 | |||
41 | Cette astuce parle du chiffrement de toutes les partitions de votre disque dur |
||
1079 | jmengual | 42 | sauf une en utilisant LUKS pour dm-crypt. Nous démarrerons à partir d'une |
43 | petite partition non chiffrée en utilisant initramfs pour déchiffrer |
||
44 | le système de fichiers racine. Cette astuce suppose la présence d'une petite |
||
45 | partition disponible pour démarrer (10 Mio devraient être suffisants). |
||
1076 | jmengual | 46 | |
47 | |||
1079 | jmengual | 48 | 2. Logiciels nécessaires et dépendances |
1076 | jmengual | 49 | ======================================= |
50 | |||
1079 | jmengual | 51 | 2.1 Logiciels présents dans le livre BLFS |
1076 | jmengual | 52 | |
1079 | jmengual | 53 | Vous avez besoin d'installer 'Popt', car 'cryptsetup' en dépend. Vous aurez également besoin de 'uuencode' pour créer les fichiers contenant les clés. |
54 | 'uuencode' est inclus dans 'GMime' qui a d'autres dépendances listées dans le |
||
1076 | jmengual | 55 | livre BLFS. |
56 | |||
57 | 2.2 Logiciels absents du livre BLFS |
||
58 | |||
59 | 2.2.1 devmapper |
||
60 | |||
1079 | jmengual | 61 | Récupérez-le sur http://packages.debian.org/stable/source/devmapper |
62 | Compilez et installez-le. Nécessaire à 'cryptsetup'. |
||
1076 | jmengual | 63 | |
64 | |||
65 | 2.2.2 cryptsetup avec l'extension LUKS |
||
66 | |||
1079 | jmengual | 67 | Récupérez-le sur http://code.google.com/p/cryptsetup/ |
68 | Compilez et installez-le. Nécessaire pour gérer les partitions chiffrées. |
||
1076 | jmengual | 69 | |
70 | |||
71 | 2.2.3 busybox |
||
72 | |||
1079 | jmengual | 73 | Récupérez-le sur http://www.busybox.net/ |
1076 | jmengual | 74 | La configuration minimum requise comprend : |
75 | * cp |
||
76 | * hush (shell interactif non requis) |
||
77 | * mount (avec le support pour de nombreux drapeaux -o ) et |
||
78 | * switch_root. |
||
79 | |||
1079 | jmengual | 80 | Compilez-le, mais NE L'INSTALLEZ PAS. Conservez l'exécutable et nommez-le |
1076 | jmengual | 81 | "busybox-minimum". Ensuite, Re-configurez busybox pour un environnement de |
82 | bureau complet. Vous aurez besoin de tous les outils et utilitaires standards |
||
83 | pour le chiffrement initial de votre partition racine et pour cibler les |
||
1079 | jmengual | 84 | problèmes éventuels. Nommez cet exécutable "busybox-large" ou quelque chose |
85 | d'approchant. De même, il n'est pas nécessaire de l'installer. |
||
1076 | jmengual | 86 | |
87 | |||
1079 | jmengual | 88 | 3. Recompiler le noyau |
1076 | jmengual | 89 | ====================== |
90 | |||
91 | Choisissez l'algorithme que vous voudriez utiliser pour chiffrer votre disque |
||
1079 | jmengual | 92 | dur. Notez que c'est une décision cruciale et vous devriez vous renseigner |
93 | plus avant. (Voir la section REMERCIEMENTS). Les modules appropriés doivent |
||
94 | être compilés (en dur, pas comme modules) dans le noyau. Par exemple, vous |
||
95 | pouvez utiliser la méthode "twofish-cbc-essiv:sha256". |
||
1076 | jmengual | 96 | |
1079 | jmengual | 97 | Également, sélectionnez l'option 'Device mapper support' du menu 'Multiple |
1076 | jmengual | 98 | devices driver support' dans la configuration du noyau, ainsi que l'option |
99 | 'crypto target'. |
||
100 | |||
1079 | jmengual | 101 | Sélectionnez 'Initial RAM filesystem and RAM disk' sous la section 'general |
1076 | jmengual | 102 | setup' et 'RAM block device support' sous 'Block devices'. |
103 | |||
1079 | jmengual | 104 | NOTE : vous devez démarrer ce nouveau noyau avant d'aller plus loin. |
1076 | jmengual | 105 | |
106 | |||
1079 | jmengual | 107 | 4. Chiffrer les partitions autres que le système de fichiers racine et autre que celle d'échange |
1076 | jmengual | 108 | ============================================================== |
109 | |||
1079 | jmengual | 110 | Vous devez modifier votre système pour qu'il puisse gérer les partitions |
111 | chiffrées. Dans un premier temps, nous modifions le système pour qu'il puisse |
||
112 | gérer les partitions AUTRES que le système de fichiers racine. Il est fortement recommandé que |
||
1076 | jmengual | 113 | vous conserviez une sauvegarde de tous les fichiers que vous modifierez par la |
114 | suite. |
||
115 | |||
116 | 4.1 Chiffrer les partitions |
||
117 | |||
1079 | jmengual | 118 | NOTE : Ce document décrit comment chiffrer chaque partition séparément. Si |
119 | vous avez plus d'un disque dur dans votre système, vous pourriez |
||
120 | vouloir chiffrer tout le périphérique, y compris la table de |
||
121 | partitions. Utiliser la méthode décrite dans ce document laisse la |
||
122 | table des partitions en clair, vous exposant à une attaque. Considérez |
||
123 | ceci comme un risque potentiel pour votre sécurité. |
||
1076 | jmengual | 124 | |
1079 | jmengual | 125 | *** PIÈGES *** |
126 | Si /usr est une partition séparée, cryptsetup et toutes les bibliothèques |
||
127 | nécessaires à son exécution doivent être placés sur la partition racine. |
||
128 | Utilisez 'ldd cryptsetup' pour les trouver. Il peut être nécessaire de passer |
||
129 | au niveau d'exécution 1 pour pouvoir démonter /usr. Assurez-vous également |
||
130 | que le shell de root n'utilise pas de bibliothèques sur cette partition. Si |
||
131 | nécessaire, compilez un shell statique à l'usage de root. |
||
1076 | jmengual | 132 | |
1079 | jmengual | 133 | La procédure pour chaque partition est la suivante : |
1076 | jmengual | 134 | |
1079 | jmengual | 135 | 1) Créez autant de clés que vous voulez pour la partition, par exemple : |
1076 | jmengual | 136 | head -c 2880 /dev/urandom | uuencode -m - | head -n-1 | tail -n+2 > keyfile |
1079 | jmengual | 137 | ou utilisez une phrase de passe facile à retenir. |
1076 | jmengual | 138 | |
1079 | jmengual | 139 | 2) Faites une sauvegarde sécurisée de vos clés et sécurisez le fichier de |
140 | clés par 'chmod 0400' ou autre. Vos clés de sauvegarde doivent absolument être |
||
141 | sécurisées (i.e. pas sur votre ordinateur). Souvenez-vous, si vous perdez |
||
142 | votre clé, vous ne serez définitivement PLUS capable d'accéder à vos |
||
143 | données ! |
||
1076 | jmengual | 144 | |
1079 | jmengual | 145 | 3) Faites une sauvegarde des données présentes sur la partition. |
1076 | jmengual | 146 | |
1079 | jmengual | 147 | 4) Démontez la partition. |
1076 | jmengual | 148 | |
1079 | jmengual | 149 | 5) Créez une partition chiffrée (Toutes les données présentes sur cette |
1076 | jmengual | 150 | partition seront perdues). Lancez |
1079 | jmengual | 151 | cryptsetup -c $algorithme-chiffrement luksFormat /dev/sd?? $fichier_de_clés |
152 | Remplacez '$algorithme-chiffrement', '/dev/sd??' and '$fichier_de_clés' avec les |
||
153 | valeurs correspondantes. |
||
1076 | jmengual | 154 | |
1079 | jmengual | 155 | 6) Éventuellement, ajoutez d'autres clés à la partition. Lancez |
156 | cryptsetup -y -d $fichier_de_clés luksAddKey /dev/sd?? |
||
157 | Remplacez '$fichier_de_clés' de la même façon que plus haut et '/dev/sd??' par la |
||
1076 | jmengual | 158 | partition correspondante. |
159 | |||
1079 | jmengual | 160 | 7) Ouvrez la partition chiffrée. Lancez |
161 | cryptsetup -d $fichier_de_clés luksOpen /dev/sd?? sd?? |
||
162 | Remplacez '$fichier_de_clés' et '/dev/sd??' par les valeurs correspondantes. |
||
163 | Remplacez 'sd??' par un nom ayant du sens. Si tout s'est bien passé, la |
||
164 | partition apparaîtra comme '/dev/mapper/sd??' où 'sd??' est le nom que vous |
||
1076 | jmengual | 165 | avez choisi. |
166 | |||
1079 | jmengual | 167 | 8) Créez un système de fichiers sur les partitions. Lancez |
168 | mkefs.$QUELQUECHOSE /dev/mapper/sd?? |
||
169 | Remplacez '$QUELQUECHOSE' par le type de système de fichiers que vous voulez |
||
170 | utiliser (par exemple ext2) et '/dev/mapper/sd??' par la partition correspondante. |
||
1076 | jmengual | 171 | |
1079 | jmengual | 172 | 9) Modifiez /etc/fstab |
173 | Puisque les points de montage des partitions chiffrées a changé, vous devez |
||
174 | dire au système de fichiers où les trouver. Modifiez les points de montage en |
||
175 | insérant "mapper/" dans le champ du périphérique. |
||
1076 | jmengual | 176 | |
177 | Exemple : |
||
178 | /dev/sda4 /home ext2 defaults 1 2 |
||
179 | devient |
||
180 | /dev/mapper/sda4 /home ext2 defaults 1 2 |
||
181 | |||
1079 | jmengual | 182 | 10) Montez le système de fichiers avec 'mount /dev/mapper/sd??' |
1076 | jmengual | 183 | |
1079 | jmengual | 184 | 11) Copiez les données sur la partition. |
1076 | jmengual | 185 | |
186 | |||
1079 | jmengual | 187 | 4.2 Configurer le système pour qu'il monte et déchiffre automatiquement le(s) |
1076 | jmengual | 188 | partition(s) |
189 | |||
1079 | jmengual | 190 | Créez un script de démarrage qui déchiffrera vos partitions |
191 | chiffrées. On suppose que les phrases des passe sont stockées dans /etc/crypt |
||
192 | par exemple. Notez que conserver des phrases de passe sur le disque peut |
||
193 | poser des problèmes de sécurité ! Utilisez le modèle pour les scripts de démarrage fournis dans BLFS et faites les exécuter : |
||
1076 | jmengual | 194 | |
195 | /sbin/cryptsetup -d /etc/crypt/$PARTITION.key luksOpen \ |
||
196 | /dev/$PARTITION $PARTITION |
||
197 | |||
1079 | jmengual | 198 | pour chaque partition chiffrée autre que la partition racine et le(s) |
199 | partition(s) d'échange. |
||
1076 | jmengual | 200 | |
201 | Exemple : |
||
202 | |||
203 | #!/bin/sh |
||
204 | ######################################################################## |
||
1079 | jmengual | 205 | # Début de $rc_base/init.d/cryptsetup |
1076 | jmengual | 206 | # |
1079 | jmengual | 207 | # Description : Rend disponible les systèmes de fichiers chiffrés pour être |
208 | # montés et nettoyés après |
||
1076 | jmengual | 209 | # |
210 | # Auteur : Lars Bamberger |
||
211 | # |
||
212 | # Version : 00.01 |
||
213 | # |
||
1079 | jmengual | 214 | # Notes : Il ne devrait pas être exécuté automatiquement avec un autre |
215 | # argument que "start". Durant l'arrêt et le redémarrage, il |
||
216 | # suffit de démonter les systèmes de fichiers. /dev/mapper/* |
||
217 | # disparaîtra quand le noyau s'arrête ou redémarre. |
||
1076 | jmengual | 218 | # |
219 | ######################################################################## |
||
220 | |||
221 | . /etc/sysconfig/rc |
||
222 | . ${rc_functions} |
||
223 | PROC=/sbin/cryptsetup |
||
224 | |||
225 | case "${1}" in |
||
226 | start) |
||
227 | boot_mesg "luksOpen Home..." |
||
228 | $PROC -d /etc/crypt/home.key luksOpen /dev/sda4 sda4 |
||
229 | evaluate_retval |
||
230 | stop) |
||
231 | boot_mesg "luksClose Home..." |
||
232 | $PROC luksClose sda4 |
||
233 | evaluate_retval |
||
234 | ;; |
||
235 | reload) |
||
236 | boot_mesg "Reloading home..." |
||
237 | $PROC reload sda4 |
||
238 | evaluate_retval |
||
239 | ;; |
||
240 | restart) |
||
241 | ${0} stop |
||
242 | sleep 1 |
||
243 | ${0} start |
||
244 | ;; |
||
245 | status) |
||
246 | $PROC status sda4 |
||
247 | ;; |
||
248 | *) |
||
249 | echo "Usage: ${0} {start|stop|reload|restart|status}" |
||
250 | exit 1 |
||
251 | ;; |
||
252 | esac |
||
1079 | jmengual | 253 | # Fin de $rc_base/init.d/cryptsetup |
1076 | jmengual | 254 | |
1079 | jmengual | 255 | Maintenant, avant de continuer, assurez-vous que tout ce qui a été fait |
256 | jusqu'à présent fonctionne comme prévu. Familiarisez-vous avec cette manière |
||
1076 | jmengual | 257 | de chiffrer vos partitions. |
1079 | jmengual | 258 | Créez un lien symbolique pour que le script soit lancé au démarrage : |
1076 | jmengual | 259 | |
260 | # cd /etc/rc.d/rcsysinit.d |
||
261 | # ln -s ../init.d/cryptsetup S19cryptsetup |
||
262 | |||
1079 | jmengual | 263 | Vérifiez une nouvelle fois que le démarrage, le redémarrage, l'arrêt etc |
264 | fonctionnent comme prévu. |
||
1076 | jmengual | 265 | |
266 | |||
1079 | jmengual | 267 | 5. Un mot sur le chiffrement de(s) partition(s) d'échange |
1076 | jmengual | 268 | ======================================================= |
269 | |||
1079 | jmengual | 270 | N'oubliez pas de chiffrer vos partitions d'échange. Beaucoup de données |
271 | intéressantes se trouvent sur les espaces d'échange. Ne considérez pas que vos |
||
272 | données sont en sûreté si vous n'utilisez pas des espaces d'échange chiffrés. |
||
1076 | jmengual | 273 | |
1079 | jmengual | 274 | En théorie, les données présentes sur le(s) partition(s) d'échange n'ont pas |
275 | besoin d'être cohérentes entre les redémarrages. Cela signifie que nous |
||
276 | pourrions créer un nouvel espace de d'échange au démarrage en utilisant une clé |
||
277 | de chiffrement aléatoire (donc différente) à chaque démarrage. De cette façon |
||
278 | vous n'avez pas à vous soucier de la gestion des clés de chiffrement pour |
||
279 | l'espace d'échange et vous n'aurez pas à les stocker (sauf en mémoire). On pourrait |
||
280 | considérer cela comme une sécurité supplémentaire. |
||
281 | Néanmoins, si vous suspendez votre système (en RAM ou sur disque), les |
||
282 | données de l'espace d'échange doivent rester cohérentes. Vous devrez donc traiter |
||
283 | la/les partition(s) d'échange comme si c'étaient des partitions standards, ce qui |
||
284 | signifie que vous devrez les chiffrer comme expliqué plus haut. |
||
1076 | jmengual | 285 | |
286 | |||
1079 | jmengual | 287 | 6. Chiffrer le système de fichiers racine |
1076 | jmengual | 288 | ================== |
289 | |||
1079 | jmengual | 290 | Il n'est pas possible de chiffrer le système de fichiers racine comme les autres partitions, car le |
291 | système s'exécute dessus. L'idée est de créer un initramfs contenant tous |
||
292 | le nécessaire pour chiffrer (et déchiffrer) le système de fichiers racine (Voir la documentation du |
||
293 | noyau pour les détails : 'filesystems/ramfs-rootfs-initramfs.txt'). |
||
1076 | jmengual | 294 | |
1079 | jmengual | 295 | Vous aurez besoin de tous les répertoires standards (bin, sbin, |
1076 | jmengual | 296 | usr/{bin,sbin}, proc, sys, dev, lib). Dans bin, nous mettons busybox-large |
1079 | jmengual | 297 | (renommé en busybox), ainsi qu'un lien symbolique vers busybox appelé hush. |
298 | Copiez cryptsetup vers sbin. Placez quelques périphérique utiles dans dev : |
||
299 | console, null, sd??, ainsi qu'un répertoire 'mapper' contenant 'control'. Puis |
||
1076 | jmengual | 300 | faites une copie de dev : |
301 | cp -a dev init-dev |
||
1079 | jmengual | 302 | Dans lib (et dev) placez tout ce qui est nécessaire à l'exécution de busybox |
1076 | jmengual | 303 | et cryptsetup. |
304 | |||
305 | Le script d'initialisation est le suivant : |
||
306 | #!/bin/hush |
||
307 | /bin/busybox mount -t proc proc /proc |
||
308 | /bin/busybox mount -t sysfs sysfs /sys |
||
309 | /bin/busybox mount -t tmpfs tmpfs /dev |
||
310 | /bin/busybox cp -a /init-dev/* /dev |
||
311 | /bin/busybox --install -s |
||
312 | exec /bin/busybox hush |
||
313 | |||
1079 | jmengual | 314 | Placez tout cela dans un répertoire (init y sera et non pas dans sbin), puis |
315 | créez l'image en utilisant : |
||
1076 | jmengual | 316 | find . | cpio --quiet -H newc -o | gzip -9 -n > /boot/imagefile.img |
1079 | jmengual | 317 | Transmettez l'argument initrd approprié au noyau lors du démarrage et vous |
318 | atterrirez dans un shell hush après le démarrage du système. |
||
1076 | jmengual | 319 | |
1079 | jmengual | 320 | *** PIÈGES *** |
321 | cryptsetup a besoin que proc et sys soient montés. Il requiert aussi le |
||
322 | répertoire dev. Puisque nous voulons sauvegarder dev quand nous lancerons |
||
323 | switch_root plus tard, nous le monterons comme tmpfs. Cela signifie que les |
||
324 | périphériques de dev seront absents, il faut qu'on les copie dans dev. Notez |
||
325 | bien que vous avez besoin que 'null' et 'console' soient présents dans dev |
||
326 | avant de monter tmpfs dans dev. |
||
1076 | jmengual | 327 | |
1079 | jmengual | 328 | Une fois dans le shell, chiffrez votre système de fichiers racine comme n'importe quel |
329 | autre partition comme décrit plus haut. N'oubliez pas la sauvegarde ! |
||
330 | Assurez-vous ABSOLUMENT d'être capable À COUP SÛR de monter et d'accéder à |
||
331 | la sauvegarde non chiffrée du syptème de fichiers racine depuis le shell hush ! |
||
1076 | jmengual | 332 | |
1079 | jmengual | 333 | Ensuite, créez la partition racine chiffrée. Notez que la phrase de passe ne |
334 | sera stockée nul part sur le disque, donc lancez : |
||
1076 | jmengual | 335 | |
1079 | jmengual | 336 | cryptsetup -y -c $algorithme_de_chiffrement luksFormat /dev/sd?? |
1076 | jmengual | 337 | |
1079 | jmengual | 338 | pour créer le système de fichiers racine chiffré. Remplacez '$algorithme_de_chiffrement' et '/dev/sd??' par |
339 | leurs valeurs respectives. Ensuite, ouvrez la partition, formatez là, et |
||
1076 | jmengual | 340 | restaurez la sauvegarde : |
341 | |||
342 | cryptsetup luksOpen /dev/sd?? sd?? |
||
343 | $BAKUROOTFS/mkefs.$TYPE /dev/mapper/sd?? |
||
344 | mkdir /new-root |
||
345 | mount -t $FSTYPE /dev/mapper/sd?? /new-root |
||
346 | cp -a $BACKUPROOTFS /new-root |
||
347 | |||
1079 | jmengual | 348 | PIÈGES : Puique votre ancien système de fichiers racine n'est pas monté, vous ne devriez pas être capable |
349 | d'exécuter mkefs à cause de bibliothèques manquantes. Soit copiez ce qui est |
||
350 | nécessaire à un emplacement accessible à l'éditeur de liens, soit utilisez la |
||
351 | version de mkfs fournie avec busybox. Assurez vous que busybox est configuré en |
||
352 | conséquence. |
||
1076 | jmengual | 353 | |
1079 | jmengual | 354 | Ensuite, modifiez /etc/fstab (sur /new-root) pour prendre en compte le nouveau |
355 | périphérique de système de fichiers racine. Modifiez aussi le script cryptsetup comme décrit plus |
||
356 | bas (7. PIÈGE). |
||
1076 | jmengual | 357 | |
358 | |||
1079 | jmengual | 359 | 7. Déchiffrer la partition racine lors des démarrages suivants |
1076 | jmengual | 360 | ================================================= |
361 | |||
1079 | jmengual | 362 | Comme au 6., créez un initramfs. La différence est que nous utilisons à présent |
363 | l'exécutable "busybox-minimum" et que vous aurez besoin d'un répertoire |
||
364 | supplémentaire new-root. N'oubliez pas le lien symbolique 'hush'. |
||
365 | L'initialisation est comme suit : (remplacez 'sd??' par le périphérique racine |
||
366 | et ajustez le type de système de fichiers). |
||
1076 | jmengual | 367 | |
368 | #!/bin/hush |
||
369 | /bin/busybox mount -t proc proc /proc |
||
370 | /bin/busybox mount -t sysfs sysfs /sys |
||
371 | /bin/busybox mount -t tmpfs tmpfs /dev |
||
372 | /bin/busybox cp -a /init-dev/* /dev |
||
373 | /sbin/cryptsetup luksOpen /dev/sd?? sd?? |
||
374 | /bin/busybox mount -r -t ext2 /dev/mapper/sd?? /new-root |
||
375 | /bin/busybox mount --move /proc /new-root/proc |
||
376 | /bin/busybox mount --move /sys /new-root/sys |
||
377 | /bin/busybox mount --move /dev /new-root/dev |
||
378 | exec /bin/busybox switch_root /new-root /sbin/init $@ |
||
379 | |||
1079 | jmengual | 380 | PIÈGEs : Vous voulez conserver /proc /sys et /dev après switch_root car cryptsetup les |
381 | utilise. D'où la commande 'mount --move'. Notez que /dev/mapper/sd?? (le |
||
382 | périphérique racine) ne sera plus là quand vous aurez monté la vraie partition |
||
383 | racine, exécuté switch_root et quand le système de fichiers racine aura démarré udev. C'est pour cela |
||
384 | que ce périphérique doit être recréé. Modifiez donc le script d'initialisation |
||
1076 | jmengual | 385 | cryptsetup en ajoutant : |
386 | |||
387 | if [[ ! -b /dev/mapper/sd?? ]]; |
||
388 | then |
||
389 | boot_mesg "Making device for rootfs..." |
||
390 | /bin/mknod -m 0600 /dev/mapper/sd?? b 254 0 |
||
391 | evaluate_retval; |
||
392 | fi |
||
393 | |||
1079 | jmengual | 394 | à la section 'start' du script |
1076 | jmengual | 395 | |
396 | |||
1079 | jmengual | 397 | 8. S'assurer que la sécurité n'est pas compromise |
1076 | jmengual | 398 | ================================================= |
399 | |||
400 | Une fois que tout marche comme il le devrait, supprimez la sauvegarde non |
||
1079 | jmengual | 401 | chiffrée de votre système de fichiers racine. Protégez votre chargeur de démarrage (et si possible le BIOS) |
402 | par un mot de passe pour supprimer la possibilité de modifier les paramètres de démarrage |
||
1076 | jmengual | 403 | sans autorisation. |
1079 | jmengual | 404 | Créez un script de démarrage (checkbootfs) qui s'assure que la partition non |
405 | chiffrée utilisée pour démarrer n'est pas compromise. Utilisez quelque-chose |
||
1076 | jmengual | 406 | comme : |
407 | |||
408 | boot_mesg "Checking integrity of boot FS..." |
||
409 | if |
||
410 | [[ $(/bin/md5sum -b /dev/sd??) == \ |
||
411 | "$whatevermd5sum */dev/sd??" ]] \ |
||
412 | && \ |
||
413 | [[ $(/bin/sha1sum -b /dev/sd??) == \ |
||
414 | "$whatevensha1sum */dev/sd??" ]]; |
||
415 | then |
||
416 | echo_ok; |
||
417 | else |
||
418 | echo_failure |
||
419 | boot_mesg -n "FAILURE:\n\nThe boot file system seems to have been |
||
420 | altered!\n\n" ${FAILURE} |
||
421 | boot_mesg -n " DO NOT TRUST THIS SYSTEM!\n\n" |
||
422 | boot_mesg_flush |
||
423 | |||
1079 | jmengual | 424 | PIÈGES : Assurez-vous que c'est la dernière chose que vous implémenterez, car les |
425 | sommes de contrôle changeront lors de la mise en ½uvre. Les sommes de |
||
426 | contrôle changeront aussi si vous exécutez fsck sur la partition de démarrage. |
||
1076 | jmengual | 427 | |
428 | |||
429 | REMERCIEMENTS : |
||
1079 | jmengual | 430 | * Various pour les pages de wiki sur |
1076 | jmengual | 431 | http://de.gentoo-wiki.com/Cryptsetup-luks_initramfs |
1079 | jmengual | 432 | (plus en ligne) et |
1076 | jmengual | 433 | http://en.gentoo-wiki.com/wiki/SECURITY_System_Encryption_DM-Crypt_with_LUKS |
434 | * Clemens Fruhwirth (http://clemens.endorphin.org/) |
||
1079 | jmengual | 435 | pour LUKS pour dm-crypt: http://luks.endorphin.org/dm-crypt |
1076 | jmengual | 436 | |
437 | HISTORIQUE DES CHANGEMENTS : |
||
438 | [2009-11-23] |
||
1079 | jmengual | 439 | * listage les dépendances du livre BLFS |
440 | [20-11-2009] |
||
1076 | jmengual | 441 | * cryptsetup a besoin de /dev/urandom |
1079 | jmengual | 442 | * mkefs pourrait ne pas fonctionner à partir de initramfs |
443 | * mise à jour de certaines URLs |
||
1076 | jmengual | 444 | * changements mineurs |
1079 | jmengual | 445 | [15-02-2009] |
446 | * Réécriture basique. |
||
447 | [17-02-2008] |
||
1076 | jmengual | 448 | * Astuce initiale. |
449 | |||
450 | HISTORIQUE DE LA TRADUCTION : |
||
1079 | jmengual | 451 | [16-12-2009] |
1076 | jmengual | 452 | * traduction de la version du [2009-11-23] |
1079 | jmengual | 453 | |
454 | [18-12-2009] |
||
455 | * première relecture par appzer0 |
||
456 | |||
457 | [30-12-2009] |
||
458 | * Relecture par JPM et publication |
||
459 |