Chiffrement de l'intégralité du disque dur interne

14 replies [Last post]
Svamiji
Offline
Joined: 11/13/2014

Bonjour !

Je suis depuis peu à la recherche d'un tutoriel bien détaillé du chiffrement total du disque dur interne d'un ordinateur portable. La majorité des tutos montrent comment le faire pour /home et la swap, mais le /boot reste bien souvent non chiffré.

Je me suis lancé dans celui ci http://geekfault.org/2014/09/23/chiffrer-son-gnulinux-avec-lvm-et-luks/comment-page-1/#comment-38586 en m'aidant de celui là http://www.carrier-lost.org/fully-encrypted-gentoo-system-with-lukscryptsetup-and-lvm/ mais cale vraiment au moment de configurer le kernel comme expliqué dans le premier lien ci-dessus.

Si j'ai bien suivi, le livecd de Trisquel 6.0.1 que j'utilise actuellement ne comprend pas les outils adéquats. Et je peine à installer et configurer les bons.

J'ai bien (du moins je crois, les volumes sont présents !) créé les volumes avec LVM et le chiffrement à l'aide de LUKS est ok, la totalité du disque est crypté.
J'ai lancé l'installation de Trisquel en zappant du coup le /boot pour le configurer manuellement et le mettre sur clé USB. Une erreur est naturellement apparue durant l'installation de Trisquel ("Grub 2 n'a pas pu être installé, erreur critique") et j'ai choisi l'option qui permettait de le configurer plus tard manuellement.

Du coup, j'en suis actuellement ici à savoir que mon disque dur physique est chiffré, 4 volumes logiques de LVM2 sont présents (root, swap, var, home), Trisquel installé. Manque plus "qu'à" configurer kernel et le bootloader comme indiqué dans le premier tuto.

Si quelqu'un qui s'y connaît passe par ici, je suis super preneur pour quelques pistes ! (ou pour m'indiquer que j'ai tout faux et que je dois reprendre du début..)
Bon je retourne à mes disques ;) (je posterai un tuto clair une fois la manip rodée)

nmrk.n
Offline
Joined: 11/01/2013

Le 29/11/2014 12:08, name at domain a écrit :
> Bonjour !
>
> Je suis depuis peu à la recherche d'un tutoriel bien détaillé du
> chiffrement total du disque dur interne d'un ordinateur portable. La
> majorité des tutos montrent comment le faire pour /home et la swap,
> mais le /boot reste bien souvent non chiffré.
>
> Je me suis lancé dans celui ci
> http://geekfault.org/2014/09/23/chiffrer-son-gnulinux-avec-lvm-et-luks/comment-page-1/#comment-38586
> en m'aidant de celui là
> http://www.carrier-lost.org/fully-encrypted-gentoo-system-with-lukscryptsetup-and-lvm/
> mais cale vraiment au moment de configurer le kernel comme expliqué
> dans le premier lien ci-dessus.
>
> Si j'ai bien suivi, le livecd de Trisquel 6.0.1 que j'utilise
> actuellement ne comprend pas les outils adéquats. Et je peine à
> installer et configurer les bons.
>
> J'ai bien (du moins je crois, les volumes sont présents !) créé les
> volumes avec LVM et le chiffrement à l'aide de LUKS est ok, la
> totalité du disque est crypté.
> J'ai lancé l'installation de Trisquel en zappant du coup le /boot pour
> le configurer manuellement et le mettre sur clé USB. Une erreur est
> naturellement apparue durant l'installation de Trisquel ("Grub 2 n'a
> pas pu être installé, erreur critique") et j'ai choisi l'option qui
> permettait de le configurer plus tard manuellement.
>
> Du coup, j'en suis actuellement ici à savoir que mon disque dur
> physique est chiffré, 4 volumes logiques de LVM2 sont présents (root,
> swap, var, home), Trisquel installé. Manque plus "qu'à" configurer
> kernel et le bootloader comme indiqué dans le premier tuto.
>
> Si quelqu'un qui s'y connaît passe par ici, je suis super preneur pour
> quelques pistes ! (ou pour m'indiquer que j'ai tout faux et que je
> dois reprendre du début..)
> Bon je retourne à mes disques ;) (je posterai un tuto clair une fois
> la manip rodée)
> ------------------------------------------------------------------------
>
Il me semble avoir lu quelque part qu'il ne faut pas crypter /boot car
dans ce cas la machine ne peut pas démarrer ?

--
nmrk.n
GNU/Linux
[FSF Associate Member]

Svamiji
Offline
Joined: 11/13/2014

Absolument ! L'intérêt ici (je peux me tromper je débute dans le domaine...) est de mettre /boot sur clé USB, chiffré, avec GPG et d'y mettre clé cléLuks de déchiffrement afin qu'au démarrage, le tout soit possible.
http://geekfault.org/2014/09/23/chiffrer-son-gnulinux-avec-lvm-et-luks/comment-page-1/#comment-38586

peut être que j'ai mal interprété le déroulement...

Je viens de tomber sur ce fil de discussion https://trisquel.info/fr/forum/full-disk-encryption-multiple-partitions qui va mettre utile. J'ai tout de même un peu l'impression de partir à l'aventure en Antarctique nu comme un ver... ;)

Svamiji
Offline
Joined: 11/13/2014

je n'arrive vraiment pas à m'en sortir et tourne en rond, si qqn passe par là aujourd'hui je suis présent !

Magic Banana

I am a member!

Offline
Joined: 07/24/2010

Je te conseillerais de commencer par simplement chiffrer /home. C'est une seule case à cocher lors de l'installation de Trisquel et c'est l'essentiel (est-ce vraiment grave si celui qui vole ton ordinateur voit quelles applications sont installées ainsi que la configuration et les logs du système ?). Remarque aussi que chiffrer /usr ralentit le système. La swap est aussi quelque peu sensible (des données peuvent s'y retrouver). Si tu as suffisamment de RAM (genre 4 Go) et ne souhaites pas hiberner la machine (de toute façon je ne sais même pas si cela fonctionne avec la swap chiffrée), alors tu peux décider de ne pas du tout avoir de swap.

Svamiji
Offline
Joined: 11/13/2014

Encore une fois tu me viens en aide :) merci !

J'aimerais vraiment faire le travail proprement. J'abandonne l'idée de mettre /boot sur clé USB pour le moment, j'ai cru comprendre que je n'avais pas les compétences nécessaires !
Par contre, je veux que le reste soit chiffré. Je me lance dans un développement pour le moins hasardeux :

- deux partitions primaires : /boot (2GB, ext2) et /racine pour tout le reste (système, home et swap)

je lance un >>> cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda2

puis un >>> cryptsetup luksOpen /dev/sda2 lvm

puis >>> vgcreate trisquel /dev/mapper/lvm

puis >>> lvcreate --name root --size 20G lvm-trisquel
lvcreate --name swap --size 2G lvm-trisquel
lvcreate --name var --size 20G lvm-trisquel
lvcreate --name home --extents 100%FREE lvm-trisquel

ensuite >>> mkswap /dev/mapper/trisquel-swap
>>> mkfs.ext4 /dev/mapper/trisquel-root

OK jusque là ?

Magic Banana

I am a member!

Offline
Joined: 07/24/2010

Je n'y connais pratiquement rien en chiffrement et les documentations sur le sujet sont en général "bordéliques".

Quand tu écris "racine pour tout le reste (système, home et swap)", tu es conscient que tu n'auras pas de swap par défaut, n'est-ce pas ? Tu peux néanmoins créer un fichier (plutôt qu'une partition) swap par la suite. Vois http://doc.ubuntu-fr.org/swap#creer_un_fichier_d_echange par exemple.

Svamiji
Offline
Joined: 11/13/2014

MMhhh attends c'est du charabia pour moi tout ça aussi, j'ai fait une impression écran de l'installation de Trisquel "bidouillé" c'est à dire du choix manuel des partitions après les avoir configuré avec les commandes détaillées dans mon précédent post. Tu sais où l'impression se trouve ? (je suis sur le livecd Trisquel 6.0.1)

Magic Banana

I am a member!

Offline
Joined: 07/24/2010

Les captures d'écran atterrissent dans ~/Images.

Et, encore une fois, je te préviens que tu n'auras pas de swap par défaut mais tu n'en veux pas forcément.

Svamiji
Offline
Joined: 11/13/2014

rien dans le dossier en question. Bizarre l'impression a pourtant fonctionné...

Ok c'est noté pour la swap, je l'avais pas compris comme ça mais de toute façon les tutos que je suis plus ou moins détaillent les manips pour résoudre ce problème. Merci !

ce tuto m'a l'air bien détaillé http://geekfault.org/2014/09/23/chiffrer-son-gnulinux-avec-lvm-et-luks/ et j'avais presque "fini" mais je ne sais absolument pas comment installer Gentoo et ensuite configurer le kernel dont il est question à la section "J'ai deux amours, le noyau et le Genkernel". J'ai lancé un apt-get gentoo (rien de bien fou) puis plus d'idée... Une idée sur ce point ?

Magic Banana

I am a member!

Offline
Joined: 07/24/2010

Gentoo n'est pas un logiciel. C'est une distribution GNU/Linux. Au même titre que Trisquel. Sauf que presque tous les logiciels installés sur Gentoo le sont à partir des sources (compilation automatisée via un gestionnaire de paquets nommé 'emerge') et que tout est profondément paramétrable (y compris quoi compiler via la fameuse variable USE). Cela inclut le noyau et la section en question se réfère à la configuration et à la compilation du noyau Linux.

Gentoo n'est vraiment pas faite pour les nouveaux entrants. Par ailleurs, le logiciel privateur n'est pas même séparé du logiciel libre ! Il est néanmoins possible d'obtenir un système Gentoo libre avec cette ligne dans /etc/portage/make.conf:
ACCEPT_LICENSE="-* @FSF-APPROVED"
et en ajoutant, dans ce même fichier, le mot-clé "deblob" à la variable USE.

Gentoo est bien pour apprendre le fonctionnement interne de son système GNU/Linux. Mais aujourd'hui nous avons Parabola GNU/Linux. Elle est 100% libre (comme Trisquel), la documentation de Arch (sur laquelle est basée Parabola) a surpassé la documentation de Gentoo, et Parabola utilise des paquets binaires (certes, on y perd un peu en terme de paramétrisation mais on installe les logiciels bien plus vite et en consommant bien moins d'énergie).

Svamiji
Offline
Joined: 11/13/2014

Un très très grand MERCI ! Je prenais une route vraiment strange. Et je n'ai pas du tout mais alors du tout pensé une seule seconde que c'était une distribution.
Du coup je vais t'embêter un poil encore afin de suivre une bonne route désormais :

- pour l'étape Gentoo et donc paramétrer le kernel dont il est question, étant donné que je n'ai pas accès aux outils pour réaliser le tuto, est-ce possible sur Trisquel de bidouiller le noyau ? Même de façon différente, je cherche la documentation adéquate si c'est possible.

- pour le bootloader, j'imagine que le paramétrage dédié au chiffrement est possible sur Grub2... Erreur fatale ?

Magic Banana

I am a member!

Offline
Joined: 07/24/2010

Je pense que le noyau de Trisquel a été configuré comme il faut. En effet, les distributions qui proposent des paquets pré-compilé ont tendance à choisir toutes les options possibles pour que rien ne manque. Mais peut-être faut-il charger des modules à la main (avec 'modprobe'). Vraiment le chiffrement du disque entier (moins /boot) n'est pas à la portée de tout le monde. Je doute que j'y arriverais malgré une certaine expérience (j'utilise GNU/Linux depuis plus de 10 ans, ce qui inclut 2 ans avec Gentoo).

La documentation que tu as trouvée parle de LILO. Trisquel utilise GRUB 2. GRUB 2 est capable de tout ce que sait faire LILO est bien plus (certains lui reproche qu'à force de complexification, des choses basiques sont devenues plus difficile à réaliser). Reste donc à savoir comment...

Svamiji
Offline
Joined: 11/13/2014

Salut à tous !

Le petit nouveau avance dans sa quête infernale !
Je crois avoir choisi un schéma assez simple à réaliser qui donnerait :

Boot partition sur /dev/sda1

LUKS encrypted partition sur /dev/sda2
et dans LUKS partition >>> LV1 : /dev/Cool/swap LV2 : /dev/Cool/root LV3 : /dev/Cool/home

J'utilise Gparted pour faire les deux partitions primaires.
Après, dans le terminal :
- sudo su
- cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sda2
(est-ce que je dois installer/activer d'autres modules que ceux déjà présents sur le livecd Trisquel 6.0.1?)
- cryptsetup luksOpen /dev/sda2/ trisquel

- pvcreate /dev/mapper/trisquel

- vgcreate Cool /dev/mapper/trisquel

- lvcreate -L 8G Cool -n swap
- lvcreate -L 20G Cool -n root
- lvcreate -l –extents100%FREE Cool -n home

- mkfs.xfs /dev/mapper/Cool-root
- mkfs.xfs /dev/mapper/Cool-home
- mkswap /dev/mapper/Cool-swap

- mount /dev/Cool/root /mnt
- mkdir /mnt/home
- mount /dev/Cool/home /mnt/home
- swapon /dev/Cool/swap

- mkfs.ext2 /dev/sda1

- mkdir /mnt/boot

- mount /dev/sda1 /mnt/boot

Après, je lance l'installation de Trisquel (livecd 6.0.1) et choisi le mode manuel pour les partitions.

Maintenant c'est là que je bloque ! (zut !) Je dois changer quoi exactement ?
Parce que j'ai cherché à modifier le bootloader et initramfs mais rien n'a fonctionné jusque là (et j'ai fait un beau shred -n 4 cette nuit pour nettoyer tous mes essais qui n'ont rien donné...).

Après, je me demandais s'il était si "simple" de mettre le /boot sur clé USB en choisissant un autre périphérique (disons /dev/sdb1) lors de l'installation ? Pas de config en plus ?

J'attends quelques retours avant de me relancer dans l'installation, y'a pas à dire, avec une connexion pourrie, ça me prend facile 1h30 pour les "paquets linguistiques"...

Merci à vous et la bonne journée ;)

Svamiji
Offline
Joined: 11/13/2014

Vous pensez quoi de (après ce qui est au-dessus) :

echo "root UUID=$(blkid | grep /dev/sda2 | cut -c18-53) none luks" >> /etc/crypttab

OU

echo "root UUID=$(blkid | grep /dev/sda2) none luks, retry=l,lvm=trisquel" >> /etc/crypttab

??

ET

echo "root=/dev/mapper/Cool-root cryptopts=source=/dev/sda2,target=Cool-root,lvm=trisquel" >> /etc/initramfs-tools/initramfs.conf

APRES

update-initramfs -u
update-grub2
exit

Cela vous semble correct ? Il manque quelque chose ? J'y suis presque un p'tit coup de main et c'est bon :)
Merci !