Guide / conseil - partitionnement manuel [LVM chiffré]

Bonjour à tous.

Je suis en train de remettre mon poste de travail (car mon remplaçant me l’a passé en Windows :angry:) sous debian …
Suite au précieux conseils de @PascalHambourg, je compte bien faire les choses …
Voila ma idée :

  • J’ai en ma possession deux disques durs : 1 SSD de 480Go et un HDD simple de 1To.
    Je voudrais que mes deux disques soient chiffrés (en utilisant LVM si possible) et que ma debian soit installée sur mon SSD avec la /home sur la HDD 1To.
    Malheureusement je suis en train de l’installer et je n’ai jamais utilisé le mode manuel.
    C’est pour cela que je viens chercher conseil avant de me lancer … Dois-je chiffrer avant la création des partitions ? Comment déplacer /home ? et surtout ne pas oublier de laisser une petite place de secours :slight_smile: (au cas où).
    Je vous mentirai pas en vous disant que je n’ai effectué aucune recherche. Je viens poser ma question en attendant vos conseils sur la manière de procéder selon vous.

Merci d’avance !!!

gudbes

Il existe plusieurs solutions pour faire le chiffrement. Ce dont vous parlez c’est du chiffrement complet de disque.

Cela présente l’avantage de ne pas pouvoir démarrer la machine sans posséder la clef de chiffrement, mais comme désavantage, de ne pas pouvoir faire quoi que ce soit de la machine sans la clef justement.

Si le portable doit être partagé entre plusieurs personnes, ce n’est pas la meilleure solution car tous doivent connaitre la clef.

Bon courage,

Tout dépend du nombre de personnes, si ce sont des personnes de confiance il peut chiffrer avec LUKS et attribuer à chaque personne un mot de passe différent dans l’un des slots disponibles, par contre de mémoire c’est 8 slots disponibles il me semble?

1 J'aime

Lui, tu le maudis sur 99 générations !

Tu peux utiliser ecryptfs pour chiffrer juste ton home. https://wiki.debian.org/TransparentEncryptionForHomeFolder

Les volumes logiques sont tellement plus simples à redimensionner. https://wiki.debian.org/LVM

1 J'aime

En effet le plus simple serait de choisir le chiffrement complet via l’installateur, en s’assurant que le /home est sur l’autre disque, puis s’il y a plusieurs utilisateurs prendre le soin de chiffre les répertoires de chacun (en suivant le lien de @Almtesh).

Pour le chiffrement “disque”, on chiffre le contenant et on met le contenu dans le volume chiffré résultant.

Par exemple on crée une partition sda2, on la chiffre avec LUKS, ce qui crée un volume chiffré sda2_crypt et on utilise sda2_crypt comme système de fichiers, volume physique LVM, swap… Les volumes logiques LVM situés dans un volume physique chiffré sont implicitement chiffrés.

Si tu veux séparer certains répertoires système de la racine (/var, /tmp…) ou utiliser un swap persistant (pour l’hibernation), il vaut mieux utiliser LVM pour créer des volumes logiques dans la partition chiffrée du disque système plutôt que plusieurs volumes chiffrés car une passphrase est demandée pour chaque volume chiffré.

Pour /home, si c’est le seul volume du disque dur pas besoin de LVM. Il suffit de créer une partition chiffrée sur tout le disque, et d’utiliser le volume chiffré résultant comme système de fichiers monté sur /home. Après l’installation, tu pourras enregistrer la passphrase dans le fichier /etc/crypttab (qui est chiffré puisque la racine est chiffrée, mais attention aux permissions : ne doit être lisible que par root) pour ne pas devoir le taper à chaque démarrage.

Note : la zone d’amorçage du disque système et le contenu du répertoire /boot ne doivent pas être chiffrés car ils doivent être accessibles en clair pour l’amorçage. Si la racine est chiffrée, le contenu de /boot doit donc être sur une partition non chiffrée. (C’est d’ailleurs une faille de sécurité car les fichiers importants pour l’amorçage (chargeur, noyau, initramfs) ne sont pas protégés contre des modifications par un attaquant ayant un accès physique à la machine). En toute rigueur, avec GRUB qui sait gérer le chiffrement LUKS, seul le répertoire /boot/grub doit être en clair mais dans Debian Jessie le fichier de configuration de GRUB généré automatiquement ne prend pas complètement en charge le chiffrement de /boot, il faut le modifier soit manuellement (donc après chaque update-grub) soit en modifiant le script générateur dans /etc/grub.d).

1 J'aime

Merci à tous de vos réponses. Alors je vais essayer de répondre à tout le monde.

@ed @GOGI :mon PC n’est utilisé que par moi même personne d’autre et en effet le chiffrement total des 2 disques durs semble être la solution. La clé de chiffrement ne me dérange pas au démarrage.

@Almtesh: @PascalHambourg m’a préconisé de toujours laisser de l’espace vide pour un agrandissement de partition ou une création futur et je pense que quelques gigas en moins ne vont pas me tuer :slight_smile: concernant mon remplaçant… Il n’est plus la lol donc son cas est réglé :wink:

@MagicFab : en effet c’est exactement cela deux hdd chiffrés complètement avec le /home à part du système.

@PascalHambourg : alors la c’est le plus compliqué ta réponse est complète mais complexe pour moi ( je ne suis qu’un humain). Je vais relire ta réponse plusieurs fois une fois que je serai sur un pc ( en effet je suis sur mon smartphone pour le moment).
Alors de ce que j’ai compris je chiffre mon ssd avec LUKS ou je vais installer mon systeme.
Sur mon deuxième disque je le chiffre sans LVM en y montant /home (penses tu qu’il soit judicieux de mettre mon swap sur le ssd plutôt que sur le disque “standard”?)
Concernant la paraphrase je préfère la mettre à chaque démarrage, car rare sont les redémarrage et en plus ça fait travailler ma mémoire. :wink:
Concernant le grub j’ai bien compris ce que tu m’explique mais après la mise en place à l’air un peu complexe pour moi mais ça m’intéresse de sécuriser mon /boot car en effet si je chiffre mes hdd et que l’on peut accéder à mes données j’en n’en vois pas l’intérêt.

Je vais donc regarder toutes vos réponses à tête reposée et essayer de me faire un schéma de mes disques pour poser ça a plat.

J’ai commencé à regarder un peu le menu manuel mais ça me semble foullit… Il faut que je me remet en tête le côté LVM (VG,…).

Merci encore de vos réponses et je vous tiendrai au courant de tout cela.

Gudbes.

[quote=“gudbes, post:7, topic:70846”]
Alors de ce que j’ai compris je chiffre mon ssd avec LUKS ou je vais installer mon systeme.

Sur mon deuxième disque je le chiffre sans LVM en y montant /home (penses tu qu’il soit judicieux de mettre mon swap sur le ssd plutôt que sur le disque “standard”?) [/quote]

Oui si tu as effectivement deux disques durs, qui plus est un SDD et un HDD, mets le système sur le SSD après avoir crée un conteneur chiffré avec LUKS, et ton /home et autres données sur le HDD… Tu n’as pas besoin de t’enquiquiner avec LVM dans ce cas là, car je doute que tu tripatouilles souvent les partitons qui seront sur le HDD (par exemple une pour /home et une autre pour du data…).

Tu peux aussi chiffrer le HDD de la même manière que le SSD, avec le même mot de passe ou un mot de passe différent, voire avec une clé que tu pourras placer par exemple sur le SSD dans ton dossier /root, avec les bonnes permissions pour que personne à part “root” n’ait accès à ce fichier, et configurer le bouzin pour qu’au démarrage tu n’aies à rentrer qu’une seule fois le passphrase pour déchiffrer le SSD (système), il se chargera lui-même après de déchiffrer ton HDD grâce à la clé placée dans “/root” (/root est un exemple ici, tu peux placer cette clé où bon te semble, mais /root est peut-être le chemin le plus approprié…)

Alors maintenant avec grub2 tu peux aussi chiffrer le système en entier (donc /boot y compris) sans déplacer /boot sur une autre partition, via quelques manipulations au niveau du fichier de configuration /etc/default/grub.
Par contre ceci n’est valable que pour un disque avec table de partition MBR, si tu es en GPT, il te faudra une partition non-cryptée qui contiendra le chemin /boot/efi avec ce qui va bien dedans.

Je ne rentre pas dans les détails pour l’instant mais si tu t’engages sur cette voie et que tu as besoin de plus d’infos je suis là… :wink:

Par contre ce que tu dis là me chiffonne un peu… Tu veux chiffrer ton système en entier dans la mesure du possible, mais ce PC est rarement redémarré : j’en conclus qu’il est rarement éteint aussi? :smiley:
L’accès de/des utilisateurs, est représenté par la connexion à la session…?

Si c’est le cas alors chiffrer ne te servira à rien, car une fois démarré les volumes sont déchiffrés et à ce moment là quelqu’un avec une clé USB contenant un live d’une distribution Linux par exemple peut accéder à tes données…

Bonjour tout le monde,

Alors en espérant avoir suivi vos conseils je viens de me lancer dans la mise en place… Et… C’est pas si simple pour moi.
Je vous joins ce que j’ai fait : https://cozy.rtw-multimedia.com/public/hastebin/KhaPnrG.jpg

Mais je n’arrive pas à monter ma racine et ma home sur mes partitions chiffrées.
Gudbes

Tu parles uniquement pour le disque dur ? En revanche LVM reste intéressant pour le SSD système qui contiendra au moins deux volumes chiffrés (racine et swap). Ce n’est pas plus “enquiquinant” de créer deux volumes LVM que deux volumes chiffrés.

Tu as des infos plus détaillées ? Les manipulations de /etc/defaut/grub que j’ai testées (définir quelque chose comme GRUB_CRYPTO) se sont révélées sans effet sur la configuration générée par grub-mkconfig (utilisé par update-grub).

Stricto sensu on ne peut pas chiffrer le disque d’amorçage entier puisque le MBR (contenant la boot image) et la core image de GRUB ne peuvent pas être chiffrés.

Tu confonds GPT et EFI. La partition système EFI existe aussi bien avec une table de partition MSDOS/MBR que GPT.

Pardon ? Pour utiliser une clé USB live il faut redémarrer, donc les volumes chiffrés seront à nouveau verrouillés.

Re,

J’ai regardé en long en large et … et j’ai quelques questions … Je dois bien chiffré les disques avant de faire mes montages avec LVM ?
J’ai lu (et on en a parlé avant) que si le disque est chiffré il faut créer une partition non chiffrée pour /boot. J’ai lu aussi qu’il préconise de séparer le /tmp … qu’en pensez vous ?
Je vais continuer à chercher car je suis un peu perdu avec la masse d’information :confused:

Si quelqu’un a un exemple concret je suis preneur.

Bonne journée

gudbes

Sur mes machines, je met ça pour /tmp et /var/tmp :

# <file system>         <mount point>           <type>  <options>                               <dump>  <pass>
tmpfs                   /tmp                    tmpfs   defaults                                0       0
tmpfs                   /var/tmp                tmpfs   defaults                                0       0

ok merci pour l’info ça va me guider un peu …
Je suis en train de voir si je peux avoir d’autres infos car c’est tout mélanger dans ma tête :sweat: et j’aimerais faire ça le plus propre possible.

Merci à toi :slight_smile:

gudbes

Oui. Cela permet de faire profiter le swap de la vitesse du SSD.

Oui, c’est ce qu’on fait le plus souvent. On crée une partition, on la chiffre, et on utilise le volume chiffré résultant (pas la partition) comme PV LVM.
On pourrait faire l’inverse et chiffrer chaque volume logique LVM séparément, mais ça n’a pas vraiment d’intérêt, il faut une passphrase pour chaque volume.

Il y a forcément une partie du disque utilisée lors de l’amorçage qui ne doit pas être chiffrée. Au pire, c’est tout /boot.

C’est toi qui vois. Tu peux aussi utiliser tmpfs (système de fichiers temporaire en mémoire) comme le suggère Almtesh, mais assure-toi que la taille définie (la moitié de la RAM par défaut) est suffisante pour ton usage et que la taille du swap est adaptée en conséquence (le contenu d’un tmpfs peut être swappé). En tout cas cela n’a rien à voir avec le chiffrement.

En violation du FHS qui stipule que le contenu de /var/tmp doit persister après un redémarrage.

[quote=“PascalHambourg, post:10, topic:70846”]Tu parles uniquement pour le disque dur ? En revanche LVM reste intéressant pour le SSD système qui contiendra au moins deux volumes chiffrés (racine et swap). Ce n’est pas plus “enquiquinant” de créer deux volumes LVM que deux volumes chiffrés.
[/quote]

Je ne comprends pas pour le disque dur?

Ce n’est pas plus enquiquinant je suis d’accord, mais est-ce qu’il va vraiment avoir l’utilité d’un swap sur un système à usage pro, déjà qu’il ne le redémarre que rarement je doute même qu’il utilise alors l’hibernation. Ok le Swap lui sera utile s’il arrive à manquer de mémoire.
Et deuxième chose, il me semblait qu’il était déconseillé de faire du Swap sur un SSD du point de vue de la technologie des disques? C’est pour ça que je pensais mettre éventuellement le Swap sur le HDD, certes il perdra le bénéfice du SDD dans ce cas là…

Oui quand je disais sysème entier je pensais bien sûr à tout ce qui est écrit dans les différentes partitions, pas la zone d’amorçage.
Pour les infos plus détaillés si tu te souviens de notre discussion à ce sujet, j’avais ouvert un sujet là-dessus, et depuis je suis passé à ce chiffrement complet.
J’ai également regardé dans les logs du paquet grub-pc, et cette option est présente depuis la version (2.02~beta2-10) au moins (GRUB_ENABLE_CRYPTODISK=y, il faut bien penser à mettre “y” et non “1” comme on peut trouver sur certains tutos sur le net, sinon effectivement ça ne marche pas).
Enfin le tuto sur Archwiki est complet là-dessus et je me suis appuyé dessus :

https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system
http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/
http://www.pavelkogan.com/2015/01/25/linux-mint-encryption/
https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption

C’est vrai, mea culpa, j’ai confondu :wink:

Pareil, tu as raison, néanmoins ce que je voulais dire c’est qu’une fois démarré le système est déchiffré, et une personne avec de bonnes connaissances en info peut très bien récuperer ce qu’elle veut si elle a accès physique à la machine?

Il me semble d’ailleurs qu’avec systemd, /tmp est en tmpfs d’origine?

Alors j’avance à grand pas :slight_smile:
juste pour prendre part à la discussion, on m’a en effet déconseiller de mettre le SWAP sur le SSD pour ne pas l’user prématurément (lié aux I/O fréquents).

Sinon concernant le chiffrement de GRUB (du /boot), alors on m’a juste indiqué que cela ne posait pas de problème de sécurité car dans ce dossier il ne semble avoir que des noyaux. Voila ce qu’on m’a communiqué comme info.

Je repasse un peu plus tard pour les explications sur la mise en place de mon partitionnement.

gudbes

Je voulais dire que s’il ne contient que /home, pas besoin de LVM en effet. Mais le SSD contiendra la racine, le swap, peut-être d’autres volumes.

D’autant plus utile en cas de “fuite” mémoire que le système est rarement redémarré. Le swap laisse plus de temps pour la détecter avant que les problèmes commencent et l’OOM se déclenche.

J’ai lu ça aussi, mais je n’ai jamais vu de justification valable dans le cas normal où l’activité du swap reste modérée.

Ah, merci pour l’astuce. J’avais essayé “1” ou “true” comme les autres variables du fichier. Quelle connerie d’obliger à utiliser “y”…

Tu penses à une attaque de type “cold boot” (récupération des clés de chiffrement dans la mémoire après un reboot sauvage) ou à autre chose ?

Depuis quand le swap induit-il automatiquement des écritures fréquentes ? En temps normal sur un système avec assez de RAM pour son usage, l’activité du swap est modérée voire quasi-nulle.

C’est vrai si le chiffrement a pour but de protéger contre la divulgation de données en cas de perte ou de vol de la machine ou du disque. Par contre, un attaquant qui a un accès physique à la machine peut modifier les éléments non chiffrés par exemple pour y introduire une porte dérobée ou un keylogger, attendre que tu tapes les clés de chiffrement et revenir plus tard pour les récupérer.

Ok PascalHambourg, tu me conseilles donc de mettre le swap sur le SSD. C’est vrai que dans l’absolu il ne doit être utilisé que de façon très exceptionnelle. Sinon pour la sécurité du boot c’est vrai qu’il ne faut pas que je devienne parano car je ne travaille pas pour l’état non plus.

Merci pour les explications

gudbes