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