| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| cryptsetup [Le 19/11/2023, 19:50] – Correction mineure (espace et minuscule) cqfd93 | cryptsetup [Le 14/04/2026, 07:17] (Version actuelle) – màj liens internes | +tag vétuste krodelabestiole |
|---|
| {{tag>Trusty Xenial chiffrement sécurité}} | {{tag>Trusty Xenial Noble chiffrement sécurité vétuste}} |
| |
| ---- | <note warning>Cette page contient des références à Ubuntu 6.04 Dapper Drake. Son contenu est par conséquent probablement très obsolète et les bonnes pratiques en matière de cryptographie ont certainement changé depuis. |
| | <note tip>Le gestionnaire de disque [[:gnome-disk-utility|GNOME Disques]] installé par défaut dans Ubuntu gère maintenant le chiffrement des partitions</note> |
| | </note> |
| |
| <note warning>Cette page contient des références à Ubuntu 6.04 Dapper Drake. Son contenu est par conséquent probablement très obsolète et les bonnes pratiques en matière de cryptographie ont certainement changé depuis.</note> | <note>Ce paquet est automatiquement installé lors d’une installation **expérimentale** du logiciel ZFS chiffré en version 24.04 (noble)</note> |
| |
| ====== Partition chiffrée avec Cryptsetup ====== | ====== Partition chiffrée avec Cryptsetup ====== |
| |
| === Montage automatique === | === Montage automatique === |
| Depuis **Dapper**, Ubuntu intègre la gestion des volumes chiffrée LUKS en standard, ce qui permet de gérer de manière automatique le montage et le démontage de vos volumes (partitions) sécurisées. La configuration des paramètres du volume chiffré est dans le fichier **/etc/crypttab** et le montage du volume est de manière classique dans **/etc/fstab**. | |
| | Depuis **Dapper**, Ubuntu intègre la gestion des volumes chiffrée LUKS en standard, ce qui permet de gérer de manière automatique le montage et le démontage de vos volumes (partitions) sécurisées. La configuration des paramètres du volume chiffré est dans le fichier ''/etc/crypttab'' et le montage du volume est de manière classique dans ''[[:fstab|/etc/fstab]]''. |
| |
| Un exemple de chiffrement du dossier **/home**: | Un exemple de chiffrement du dossier **/home**: |
| Si vous désirez que tout vous array raid soient décryptés: <code> truncate -s 0 /etc/crypttab ; for i in $(cat /proc/mdstat | grep -E "^md" | cut -d ' ' -f 1) ; do echo "${i}_crypt UUID=$(blkid -o full /dev/$i | cut -d '"' -f 2) none luks" >> /etc/crypttab ; done </code> | Si vous désirez que tout vous array raid soient décryptés: <code> truncate -s 0 /etc/crypttab ; for i in $(cat /proc/mdstat | grep -E "^md" | cut -d ' ' -f 1) ; do echo "${i}_crypt UUID=$(blkid -o full /dev/$i | cut -d '"' -f 2) none luks" >> /etc/crypttab ; done </code> |
| |
| Modifier **/etc/fstab** pour le volume qui nous intéresse : | Modifier ''[[:fstab|/etc/fstab]]'' pour le volume qui nous intéresse : |
| <code># /etc/fstab: static file system information. | <code># /etc/fstab: static file system information. |
| # | # |
| /dev/mapper/home /home ext3 defaults 0 1 </code> | /dev/mapper/home /home ext3 defaults 0 1 </code> |
| |
| La clé d'ouverture du volume chiffré vous sera demandée au démarrage de la machine si votre partition est montée automatiquement (voir [[mount_fstab|fstab]]). | La clé d'ouverture du volume chiffré vous sera demandée au démarrage de la machine si votre partition est montée automatiquement. |
| |
| Attention, si une ligne est déjà présente pour le montage de la partition qui héberge le système de fichier chiffré (/dev/hda7 dans l'exemple ci-dessus), il faut la commenter (en ajoutant un # comme premier caractère) pour éviter un message d'erreur au démarrage. | Attention, si une ligne est déjà présente pour le montage de la partition qui héberge le système de fichier chiffré (/dev/hda7 dans l'exemple ci-dessus), il faut la commenter (en ajoutant un # comme premier caractère) pour éviter un message d'erreur au démarrage. |
| |
| ==== Modifier le mot de passe de la partition chiffrée === | ==== Modifier le mot de passe de la partition chiffrée === |
| LUKS autorise jusqu'à 8 mots de passe pour une même partition, ce qui permet d'attribuer des mots de passe différents à différents utilisateurs. Cette limitation est de **[[https://forum.ubuntu-fr.org/viewtopic.php?pid=22618883#p22618883|32 ]]** si utilisation de la version 22.04 | LUKS autorise jusqu'à 8 mots de passe pour une même partition, ce qui permet d'attribuer des mots de passe différents à différents utilisateurs. Cette limitation est de **[[https://forum.ubuntu-fr.org/viewtopic.php?pid=22618883#p22618883|32 ]]** si utilisation de la version 22.04 ou [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22846729#p22846729|24.04]]. |
| |
| Pour supprimer un mot de passe existant, il convient préalablement d'ajouter un mot de passe supplémentaire avant de supprimer l'ancien mot de passe __lorsque la partition n'en contient qu'un!__ | Pour supprimer un mot de passe existant, il convient préalablement d'ajouter un mot de passe supplémentaire avant de supprimer l'ancien mot de passe __lorsque la partition n'en contient qu'un!__ |
| |
| Le disque se déchiffre et se monte au démarrage du PC. | Le disque se déchiffre et se monte au démarrage du PC. |
| | |
| | ===== Monter automatiquement le volume chiffré (LUKS) à la connexion de l'utilisateur. ===== |
| | Dans un contexte multi-utilisateur, il y a probablement une partition chiffrée par utilisateur. Le montage automatique impose alors le montage de toutes les partitions au démarrage de l'ordinateur et une seule va réussir.\\ Lors d'un changement d'utilisateur sans reboot, le second utilisateur ne disposera pas de sa propre partition. Il devra la monter. \\ Il peut donc être très intéressant que chaque utilisateur monte automatiquement sa partition au moment de sa connexion s'il ne souhaite pas utiliser [[gnome-disk-utility|gnome-disk]] pour la monter. \\ Peut aussi régler un problème lorsque le montage automatique au démarrage de l'ordinateur ne permet pas une saisie facile de la phrase de déchiffrement. \\ Ce montage se fera en utilisant les services systemd. En voici la procédure. |
| | ==== Création du script de montage ==== |
| | <code bash>cat<<'EOF'>$HOME/LUKS.sh |
| | #!/bin/bash |
| | Dsk=0f4eeaee-e95e-4f72-82d9-9756e6c67c6f ### UUID de la partition contenant le chiffrement obtenu par la commande sudo blkid | grep crypto |
| | Pdm=Data-$USER ### Nom de déchiffrement qui sera mis derrière /dev/mapper |
| | for (( i=1; i < 20; i++ )); do |
| | sleep 1 |
| | echo itération-$i dans le service USER de LUKS |
| | if ! grep -q /dev/mapper/$Pdm /proc/mounts ; then |
| | DISPLAY=:1 zenity --password | sudo -S -v |
| | DISPLAY=:1 zenity --entry --title="Montage de la partition $Data ($i/20)." --text "Veuillez fournir la phrase de déchiffrement LUKS de $Pdm." | sudo cryptsetup luksOpen /dev/disk/by-uuid/$Dsk $Pdm |
| | udisksctl mount -b /dev/mapper/$Pdm |
| | else i=22 |
| | fi |
| | done |
| | if [[ $i = 20 ]] ; then |
| | DISPLAY=:1 zenity --error --text "La partition LUKS $Data n'est pas disponible; veuillez investiguer!" |
| | fi |
| | EOF |
| | sleep 1 |
| | chmod +x $HOME/LUKS.sh |
| | cat $HOME/LUKS.sh |
| | $HOME/LUKS.sh</code> |
| | La première variable est à remplacer par la valeur de l'UUID de la partition. Si la seconde variable est changée, ne pas prendre la même pour chaque partition à monter afin d'éviter des doublons. |
| | ==== Création du service utilisateur systemd ==== |
| | Voir aussi [[https://doc.ubuntu-fr.org/creer_un_service_avec_systemd|systemd]] |
| | <code bash>mkdir -pv $HOME/.config/systemd/user |
| | cat <<'EOF'>$HOME/.config/systemd/user/LUKS.service |
| | [Unit] |
| | Description=Montage de la partition de données personnelles LUKS. |
| | DefaultDependencies=no |
| | [Service] |
| | Type=simple |
| | ExecStartPre=echo Montage de la partition de données personnelles LUKS. |
| | ExecStart=/home/%u/LUKS.sh |
| | ExecStopPost=echo Le montage de la partition de données personnelles LUKS est terminé. |
| | StandardOutput=journal+console |
| | [Install] |
| | WantedBy=default.target |
| | EOF |
| | sleep 1 |
| | wc -l $HOME/.config/systemd/user/LUKS.service |
| | ls -ls $HOME/.config/systemd/user/LUKS.service</code> |
| | ==== Activation du service ==== |
| | <code bash>systemctl --user stop LUKS.service ; systemctl --user disable LUKS.service ; systemctl --user daemon-reload; |
| | systemctl --user enable LUKS.service ; systemctl --user start LUKS.service |
| | systemctl --user --no-pager -l status LUKS.service </code> |
| | |
| |
| ===== Chiffrer votre système avec le swap aléatoirement ===== | ===== Chiffrer votre système avec le swap aléatoirement ===== |