| # Chiffrer son dossier personnel après l'installation sous OpenBSD
Si pour une quelconque raison votre installation n'est pas chiffrée entièrement, comme c'est expliqué dans la FAQ, on peut quand même chiffrer le ''/home'' après coup. Ce dernier contient tous vos mots de passes et préférences configurés dans les applications que vous utilisez (messagerie, ssh...)...
|
|
Tout d'abord, sauvegardez entièrement votre dossier /home, puisque nous allons devoir l'effacer.
Voici un exemple de découpage d'une installation existante :
```
# disklabel sd0
[...]
16 partitions:
# size offset fstype [fsize bsize cpg]
a: 8401920 64 4.2BSD 2048 16384 12958 # /
b: 8402006 8401984 swap # none
c: 488397168 0 unused
d: 8401984 16804000 4.2BSD 2048 16384 12958 # /tmp
e: 25173856 25205984 4.2BSD 2048 16384 12958 # /var
f: 6297472 50379840 4.2BSD 2048 16384 12958 # /usr
g: 3084480 56677312 4.2BSD 2048 16384 12958 # /usr/X11R6
h: 62926592 59761792 4.2BSD 2048 16384 12958 # /usr/local
i: 4209024 122688384 4.2BSD 2048 16384 12958 # /usr/src
j: 12594976 126897408 4.2BSD 2048 16384 12958 # /usr/obj
k: 348899648 139492416 4.2BSD 4096 32768 26062 # /home
```
Nous modifierons donc la section ''/dev/sd0k'' par la suite.
Identifiez-vous ensuite comme root pour modifier le type de la section ''/home'' en "RAID" (ou bien redémarrez sur le noyau bsd.rd pour obtenir un shell) :
```
$ su -
# umount /home
# disklabel -E /dev/sd0c
# m k
offset: [139492416]
size: [348899648]
FS type: [3.2BSD] RAID
> w
> q
```
Ensuite, pour bien faire, on écrit n'importe quoi sur ce qui sera /home :
```
# dd if=/dev/random of=/dev/rsd0k bs=4m
```
C'est long... C'est normal ceci dit. C'est essentiel de le faire, sinon quelqu'un qui récupère votre disque peut deviner des éléments importants selon ce qu'il trouve d'écrit sur le disque.
Ensuite, définissez une phrase de pass robuste pour être en mesure d'ouvrir votre /home chiffré :
|
|
```
# bioctl -c C -l /dev/sd0k softraid0
New passphrase:
Re-type passphrase:
softraid0: CRYPTO volume attached as sd3
```
Dans cet exemple, le /home est identifié par sd3. Tout se passe comme s'il s'agissait d'un nouveau disque. Soyez bien attentif au message retourné par bioctl.
On met des zéros sur les premiers megas :
```
# dd if=/dev/zero of=/dev/rsd3c bs=1m count=1
```
On crée la partition dans le volume chiffré :
```
# fdisk -i sd3
Do you wish to write new MBR and partition table? [n] y
Writing MBR at offset 0.
# disklabel -E sd3
Label editor (enter '?' for help at any prompt)
sd3> a a
offset: [64]
size: [348883541]
FS type: [4.2BSD]
sd3> w
sd3> q
No label changes.
```
Et on formate :
```
# newfs /dev/rsd3a
```
On veut maintenant que cette partition soit montée au démarrage. Commencez par retirer la ligne concernant /home dans le fichier /etc/fstab.
Repérez l'uid du volume chiffré :
```
# disklabel sd0k |grep uid
duid: adcd45470b9b4392
```
Repérez l'uid de la partition /home chiffrée :
```
# disklabel sd3a |grep uid
duid: 535ff5528fa5c598
```
Vous pouvez maintenant ajouter ce petit script dans le fichier ''/etc/rc.local'' qui est lancé à chaque démarrage. Remplacez bien les "uid".
```
printf "%s\n" "Unlock /home (or try to)"
bioctl -c C -l adcd45470b9b4392.k softraid0
if [ $? -ne 0 ]; then
printf "%s\n" "Wrong password, shutting down"
/sbin/shutdown -hp now
else
fsck 535ff5528fa5c598.a
mount -o rw,nodev,nosuid 535ff5528fa5c598.a /home
fi
```
Vous voudrez peut-être modifier les options utilisées au montage "nodev,nosuid".
Le script ci-dessus ne laisse pas le droit à l'erreur. Vous préférerez peut-être avoir le droit à 3 essais pour entrer le mot de passe. Voici une autre version du même script qui avertit root s'il y a eu échec et éteint la machine :
```
printf "%s\n" "Unlock /home (or try to)"
ATTEMPT=0
MAXATTEMPT=3
while [ ${ATTEMPT} -le ${MAXATTEMPT} ]; do
ATTEMPT=$((${ATTEMPT} + 1))
bioctl -c C -l adcd45470b9b4392.k softraid0 && break || printf "%s\n" "Wrong password"
sleep 3
done
if [ ${ATTEMPT} -gt ${MAXATTEMPT} ]; then
printf "%s\n" "Shutting down, wrong password for encrypted device"
printf "%s" "Someone tried to unlock /home and failed" | mail -s "unlock /home failed" root
/sbin/shutdown -hp now
else
fsck 535ff5528fa5c598.a
mount -o rw,nodev,nosuid 535ff5528fa5c598.a /home
fi
```
Avant de redémarrer, n'oubliez pas de restaurer vos documents dans votre nouveau /home après l'avoir monté :
```
# mount sd3a /home
# rsync ...
```
Ressources:
|