Installer sur partition cryptée
Attention : des précautions sont à prendre concernant ce guide pour encrypter des partitions racine ou données :
- Applicable pour aptosid-2010-03-apate et suivantes.
- Ceci est un guide basique de démarrage. Il est de votre responsabilité d'approfondir l'utilisation de LUCKS, de cryptsetup et de l'encryption. Sources et Ressources sont liées au bas de cette page, pour démarrer, mais la liste n'est pas exhaustive.
- cryptsetup ne peut pas encrypter une partition de données déjà existante, il vous faudra donc créer une nouvelle partition, la configurer avec cryptsetup, puis y transférer vos données.
- Vous pouvez aussi utiliser des fichiers de clés, et avoir plusieurs clés pour les données (jusqu'à 8, y compris la suppression de clés), ce qui sort des considérations de ce guide.
- Attention ! la perte des mots de passe vous font perdre tout accès à vos partitions ! Meme un chroot sans mot de passe n'aidera pas (sauf pour /boot).
- Tôt durant le boot, vous aurez à entrer votre mot de passe pour la partition cryptée et le système continuera à booter normalement.
Exemples:
Système crypté dans un groupe LVM
Cet exemple utilise crypt dans un volume LVM pour vous permettre de séparer votre home de / et d'avoir une partition de swap, sans nécéssiter plusieurs mots de passe, et est applicable à partir de aptosid-2010-03-apate et suivantes.
Avant de lancer l'installeur, vous devez préparer le système de fichiers qui sera utilisé pour l'installation. Pour un mode d'emploi de base de LVM, vous devez vous référer à Logical Volume Manager - partitionnement LVM.
Vous aurez besoin d'au moins un système de fichiers non crypté pour /boot et un système crypté pour le système de fichiers / , et il vous faudra créer aussi un système de fichiers crypté pour /home et swap .
- Si vous ne prévoyez pas d'utiliser un groupe de volume LVM existant, créez un groupe de volume LVM normal. Cet exemple suppose que le groupe de volume nommé vg contiendra le /boot et les parties cryptées.
- Il vous faudra un volume logique pour /boot et les données cryptées, utilisez lvcreate pour créer les volumes logiques dans vg avec les tailles que vous désirez :
lvcreate -n boot --size 250m vg lvcreate -n crypt --size 300g vg
Vous avez créé ici les volumes logiques boot et crypt, avec une taille respective de 250Mb and 300Gb. - Créez le système de fichiers pour /boot pour le rendre accessible à l'installeur :
mkfs.ext4 /dev/mapper/vg-boot
- Utilisez cryptsetuppour crypter vg-crypt en utilisant l'option la plus rapide xts et la plus haute longueur de clé de 512bit, puis ouvrez le. Ceci vous demandera d'entrer deux fois le mot de passe pour le mémoriser, puis une troisième fois pour l'ouvrir. Ouvrez le ici sous le nom par défaut de boot cryptopts de cryptroot :
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/mapper/vg-crypt
cryptsetup luksOpen /dev/mapper/vg-crypt cryptroot
- Maintenant, utilisez lvm dans le système crypté pour créer un deuxième groupe de volumes qui sera utilisé pour les partitions /swap et /home. utiliser pvcreate cryptroot pour créer ce volume physique, et vgcreate pour créer un autre groupe de volumes, que nous appellons cryptvg:
pvcreate /dev/mapper/cryptroot vgcreate cryptvg /dev/mapper/cryptroot
- Utiliser ensuite lvcreate avec le nouveau groupe de volumes crypté cryptvg pour créer les volumes logiques / , /swap et /home avec la taille désirée :
lvcreate -n swap --size 2g cryptvg lvcreate -n root --size 40g cryptvg lvcreate -n home --size 80g cryptvg
Ici vous avez créé les volumes logiques swap, root et home, d'une taille respective de 2Gb, 40Gb and 80Gb respectivement. - Créer les systèmes de fichiers pour cryptvg-swap, cryptvg-root et cryptvg-home pour les rendre accessibles pour l'installeur :
mkswap /dev/mapper/cryptvg-swap mkfs.ext4 /dev/mapper/cryptvg-root mkfs.ext4 /dev/mapper/cryptvg-home
- Vous êtes maintenant prèts à lancer l'installeur, en sélectionnant :
vg-boot pour /boot,
cryptvg-root pour /,
cryptvg-home pour /home,
et cryptvg-swap pour swap qui devrait être automatiquement reconnu.
Le système installé doit inclure une ligne de commande pour le kernel comprenant les options :
root=/dev/mapper/cryptvg-root cryptopts=source=/dev/mapper/vg-crypt,target=cryptroot,lvm=cryptvg-root
Vous avez maintenant crypt et boot dans le groupe de volumes lvm "vg", et root, home et swap encapsulés dans le groupe de volumes lvm vgcrypt, crypté, protégé par mot de passe.
Note: En cas de réinstallation dans un volume crypté lvm, L'installeur doit être informé du cryptage :
cryptsetup luksOpen /dev/mapper/cryptvg-root cryptvg vgchange -a y
Cryptage avec des partitions classiques
Il faut dabord décider de l'organisation du disque. Il vous faut 2 partitions au moins, une partition normale pour le /boot et une pour les données cryptées.
Si vous avez besoin d'un swap, (qui doit aussi être encrypté) vous aurez besoin d'une troisième partition et vous aurez à entrer un mot de passe pour le swap, séparément pendant le boot (vous aurez deux demandes de mot de passe).
Il est possible d'utiliser des clés pour le swap depuis l'intérieur du système crypté avec le partitionnement classique, sans quoi vous ne pourez pas utiliser "suspend to disk". Pour ces raisons, la meilleure option sur le long terme est d'utiliser des volumes LVM entièrement cryptés protégés par mots de passe.
Pour résumer :
- Le disque comporte 3 partitions classiques :
/boot, de 250mb
swap, de 2 gb
/ et /home combinés (par exemple, le reste de l'espace disponible). - 2 mots de masse sont requis, l'un pour le swap et l'autre pour les / et /home combinés.
Une fois le partitionnement effectué, vous devez préparer les partitions cryptées pour que l'installeur puisse les utiliser.
Si vous utilisiez une application graphique pour partitionner, fermez la et ouvrez une console, nécéssaire pour utiliser les commandes d'encryption.
la partition /boot
formater la partition /boot en ext4, si ce n'est déjà fait :
/sbin/mkfs.ext4 /dev/sda1
la partition de swap cryptée
pour le swap crypté, il vous faut formater et ouvrir la partition, /dev/sda2, en tant que partition cryptée, comme la partition vg-crypt ci dessus, en l'ouvrant sous le nom de swap
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 swap
echo "swap UUID=$(blkid -o value -s UUID /dev/sda2) none luks" >> /etc/crypttab
Formater ensuite /dev/mapper/swap pour le rendre accessibles pour l'installeur :
/sbin/mkswap /dev/mapper/swap
la partition / cryptée
pour le / crypté il vous faut formater et ouvrir la partition, /dev/sda3, en tant que partition cryptée, comme la partition vg-crypt ci dessus, en l'ouvrant sous le nom de cryptroot
cryptsetup --verify-passphrase --cipher aes-xts-plain:sha512 luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 cryptroot
Formater la partition /dev/mapper/cryptroot pour la rendre accessible pour l'installeur :
/sbin/mkfs.ext4 /dev/mapper/cryptroot
Lancement de l'installeur
Vous êtes maintenant prèts à utiliser l'installeur, en sélectionnant :
sda1 pour /boot,
cryptroot pour / et /home
swap devrait être automatiquement reconnu.
Le système installé doit inclure une ligne de commande pour le kernel comprenant les options : (avec vos UUID bien entendu)
root=/dev/mapper/cryptroot cryptopts=source=UUID=12345678-1234-1234-1234-1234567890AB,target=cryptroot
Vous avez maintenant /boot sur une partition classique, un swap crypté et une partition cryptée pour / et /home.
Sources et Documentations:
A lire impérativement :
man cryptsetup
LUKS.
Protect Your Stuff With Encrypted Linux Partitions.
KVM how to use encrypted images.