Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:lildadou:cryptsetup [Le 16/01/2011, 23:56]
lildadou
— (Version actuelle)
Ligne 1: Ligne 1:
-{{tag>​dapper edgy maverick sécurité}} 
-====== Volume chiffrée avec cryptsetup ====== 
-Afin de protéger au mieux vos données personnelles,​ il peut vous être nécessaire de chiffrer vos données. Depuis Dapper, Ubuntu propose en standard les outils pour y parvenir. Cryptsetup propose de créer un conteneur chiffré pour accueillir votre [[:​systeme_de_fichiers|système de fichier]]. Comme pour le plus connu [[:​truecrypt|Truecrypt]],​ la nature de ce conteneur peut être un fichier régulier ou un volume (une [[http://​fr.wikipedia.org/​wiki/​Partition_de_disque_dur|partition]],​ un disque-dur, un volume logique [[:​lvm|LVM]],​ ...). 
- 
-===== Pré-requis ===== 
-  * Disposer d'un volume ou de place sur votre système de fichier 
-  * [[:​tutoriel:​comment_installer_un_paquet|Avoir installé cryptsetup]] 
-  * Disposer de ressources calculatoire suffisante. Même si le coût est négligeable,​ celui-ci peut avoir un impact important sur de petits systèmes. Un NAS animé par un ARM 266MHz délivra par exemple 2,66Mio/s [[http://​www.saout.de/​pipermail/​dm-crypt/​2009-August/​000033.html|(en) source]] 
- 
-===== Opérations de base ===== 
-Cryptsetup permet des usages très avancés mais avant voyons comment créer un conteneur et le [[tutoriel:​comment_ajouter_un_disque_dur#​connecter_logiquement_le_disque_dur|monter]]. 
- 
-==== Préparer le support ==== 
-  - Avant de commencer, demandez-vous quel espace vous aller utiliser pour héberger votre conteneur, fichier ou volume? Si vous le pouvez, opter pour l'​utilisation d'un volume plutôt qu'un fichier (lors d'une nouvelle installation ou pour un nouveau disque dur). 
-  - Ensuite, pour des raisons de sécurité nous allons devoir //​obfusquer//​ cryptographiquement votre futur conteneur. 
- 
-=== Fichier de conteneur === 
-Si vous avez opté pour l'​option du conteneur embarqué dans un fichier, commencez par créer un fichier vide (10Mio dans cet exemple) : 
-<​code>​dd if=/​dev/​zero bs=1M count=10 of=/​chemin/​du/​fichier</​code>​ 
- 
-Pour transformer le fichier en volume (**sur Dapper**, remplacez /dev/loop0 par /​dev/​loop/​0) : 
-<​code>​losetup /​dev/​loop0 ​ big</​code>​ 
- 
-Pour déconnecter le volume du fichier (**sur Dapper**, remplacez /dev/loop0 par /​dev/​loop/​0) : 
-<​code>​losetup -d /​dev/​loop0</​code>​ 
- 
-=== Nettoyage du support === 
- 
- 
-==== Initialiser le conteneur ==== 
-Exemple sur une partition libre /dev/hda7 : 
-<​code>​ sudo cryptsetup luksFormat -c aes -h sha256 /dev/hda7 </​code>​ 
-ou de manière plus sécurisée (ref necessaire) : 
-<​code>​ sudo cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/hda7 </​code>​ 
- 
-On invoque cette commande pour formater la partition au type LUKS (initialiser la partition LUKS et définir la clé initiale). Le chiffrage sera de type AES avec un algorithme de hachage SHA256. Vous allez taper votre phrase de chiffrage qui va permettre de créer un conteneur standard chiffré à l'aide de votre phrase. 
- 
-Le conteneur chiffré de manière standard va stocker la clef de chiffrage maître qui servira à ouvrir votre volume sécurisé. Il est possible d'​ajouter jusqu'​à 8 clefs supplémentaires dans des "​slots",​ qui déverrouillent l'​accès à la clef maître. Vous pouvez ainsi avec cette méthode avoir plusieurs utilisateurs qui vont chacun ouvrir le conteneur chiffré avec leur clef, et il vous sera possible de révoquer les clés éventuellement compromises. 
- 
-Pour ajouter une clé d'​accès au conteneur chiffré précédent : 
-<​code>​sudo cryptsetup luksAddKey /​dev/​hda7</​code>​ 
-Pour voir l'​état du conteneur chiffré et les "​slots"​ utilisés : 
-<​code>​sudo cryptsetup luksDump /​dev/​hda7</​code>​ 
-Pour révoquer une clef contenue dans un "​slot"​ : 
-<​code>​sudo cryptsetup luksKillSlot /dev/hda7 <​numero_de_slot></​code>​ 
- 
-==== (Dé-)verrouiller le conteneur ==== 
- 
-Ouverture et formatage en ext3 de la partition chiffrée. L'​appellation du volume est ici **home**. 
- 
-<​code>​ sudo cryptsetup luksOpen /dev/hda7 home 
- sudo mkfs.ext3 /​dev/​mapper/​home </​code>​ 
- 
-puis montage de la partition : 
- 
-<​code>​ sudo mount -t ext3 /​dev/​mapper/​home /mnt/ </​code>​ 
- 
-puis démontage et fermeture du volume chiffré : 
- 
-<​code>​ sudo umount /mnt 
- sudo cryptsetup luksClose home </​code>​ 
- 
-==== Monter un volume chiffré au démarrage ==== 
-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**. 
- 
-Un exemple de chiffrement du dossier **/home**: 
- 
-Modifier le fichier **/​etc/​crypttab** : 
-<​code>​ # <target name> <source device> ​        <​key file> ​     <​options>​ 
-home /​dev/​hda7 ​ none    luks </​code>​ 
- 
-Modifier **/​etc/​fstab** pour le volume qui nous intéresse : 
-<​code>#​ /etc/fstab: static file system information. 
-# 
-# <file system> <mount point> ​  <​type> ​ <​options> ​      <​dump> ​ <​pass>​ 
-/​dev/​mapper/​home ​       /home   ​ext3 ​   defaults ​       0       1 </​code>​ 
- 
-La clef 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]]). 
- 
-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. ​ 
- 
-=== Ouverture automatique du conteneur chiffré au démarrage à l'aide d'un support amovible === 
-On peut grâce à LUKS monter automatiquement les partitions chiffrées au démarrage sans mots de passe à taper. Ceci est possible par l'​intermédiaire d'une clé USB ou d'une carte SD ou MS : [[http://​petaramesh.org/​post/​2007/​11/​29/​Une-cle-de-contact-pour-votre-portable-chiffre]] FIXME 
- 
-Suivre la procédure indiquée plus haut, mais modifier le fichier **/​etc/​crypttab** : 
-<​code>​ 
-# <target name> <source device> <key file> ​         <​options>​ 
-  home          /​dev/​hda7 ​      /​dev/​sda:/​keyfile:​1 luks,​keyscript=/​lib/​cryptsetup/​scripts/​passdev 
-  home          /​dev/​hda7 ​      ​none ​               luks 
-</​code>​ 
- 
-De cette manière, le système va tenter de déchiffrer la partition /dev/hda7 au moyen du fichier clé "​keyfile"​ se trouvant sur le périphérique /dev/sda (en FAT par exemple). Le "​1"​ représente le temps d'​attente avant de demander le mot de passe si le fichier clé n'est pas trouvé. 
- 
-=== Ouverture et montage automatique de la partition chiffrée à l'​ouverture de session, sans support amovible ni pass-phrase === 
-Les techniques exposées plus haut offrent un haut niveau de sécurité pour peu que la phrase-pass de LUKS ait été bien choisie. Cependant, elles sont également assez lourdes, dans la mesure où elles nécessitent que l'​utilisateur rentrent à chaque démarrage sa pass-phrase (ou qu'il porte sur lui en permanence le support amovible permettant l'​ouverture du conteneur chiffré). 
-La méthode proposée ici va permettre d'​ouvrir automatiquement le conteneur chiffré et de monter la partition chiffrée au démarrage de la session, sans que la pass-phrase ne soit saisie. La partition chiffrée n'est donc plus protégée que par le mot de passe d'​ouverture de session. 
- 
-__La pass-phrase de la partition cryptée et le mot de passe associé au compte doivent être les mêmes__ (PAM ne fait que "​passer"​ le mot de passe de session pour le montage de la partition), cela a donc des implications lorsque le mot de passe de l'​utilisateur doit être changé : il faut au préalable rajouter une pass-phrase (identique au nouveau mot de passe) dans un nouveau "​slot"​ et une fois que cela est validé, supprimer l'​ancienne passphrase. 
- 
-Le niveau de sécurité est donc plus bas, mais le chiffrement devient parfaitement transparent pour l'​utilisateur. Cette solution convient donc bien si vous souhaitez simplement protéger vos données personnelles en cas de vol de votre machine par un quidam quelconque, mais peut-être pas si vous avez des documents vraiment confidentiels à protéger. 
- 
-Nous allons utiliser PAM, utilitaire habituellement utilisé pour le montage automatique de partitions sur des postes multi-utilisateurs. 
- 
-La situation est la suivante: la partition /dev/sda2 est notre partition cyptée. Elle doit être montée automatiquement au point /​mnt/​cryptodisk. 
-Les opérations suivantes ont donc été effectuées au préalable: 
- 
-<​code>​ 
-#Création du containeur chiffré. Attention, la partition ne doit pas être montée. De plus, toute donnée présente sur cette partition sera perdue: 
-sudo cryptsetup luksFormat /dev/sda2 
- 
-#Ouverture du containeur nouvellement créé, à qui on donne le nom de "​cryptodisk":​ 
-sudo cryptsetup luksOpen /dev/sda2 cryptodisk 
- 
-#Création du système de fichier ext3 sur cette partition chiffrée: 
-sudo mkfs.ext3 /​dev/​mapper/​cryptodisk 
- 
-#Création du point de montage: 
-sudo mkdir /​mnt/​cryptodisk 
- 
-#​Définition du point de montage: Dans le fichier /etc/fstab, notez l'​option 
-#"​noauto"​ qui permet de faire apparaître la partition dans le fichier fstab 
-#sans pour autant la monter automatiquement au démarrage 
-/​dev/​mapper/​cryptodisk /​mnt/​cryptodisk ​          ​ext3 ​   defaults,​noauto ​       0       0 
- 
-#Et on s'​arrête là. Ne RIEN ajouter dans le fichier /​etc/​cryptab</​code>​ 
- 
-Notre partition chiffrée est à présent crée, formatée, et un point de montage a été défini. Il ne reste plus qu'à indiquer à PAM de la monter automatiquement à chaque ouverture de session (sans demande de la pass-phrase donc). 
- 
-<​code>​ 
-#​Installation de la librairie: 
-sudo apt-get install libpam-mount</​code>​ 
-Indication à PAM de la partition à monter: Editer le fichier /​etc/​security/​pam_mount.conf.xml. Au début du fichier, après la première balise <​pam-mount>,​ ajouter la ligne suivante: 
-<​code>​ 
-<volume user="​*"​ mountpoint="/​mnt/​cryptodisk"​ path="/​dev/​sda2"​ fstype="​crypt"​ /> 
-</​code>​ 
-La partition /dev/sda2 de type "​crypt"​ (partition cryptée) sera montée à l'​ouverture de session sans demande de la phrase-pass sur le point de montage /​mnt/​cryptodisk,​ et ce quelque soit l'​utilisateur qui se connecte. 
- 
-Et pour finir, il suffit d'​indiquer à gdm (dans le cas de Gnome) ou kdm (pour KDE) d'​appeler PAM. 
-Ouvrir ainsi dans le cas de Gnome le fichier /​etc/​pam.d/​gdm,​ et ajouter à la fin de ce fichier la ligne 
-<​code>​@include common-pammount</​code>​ 
- 
-**Remarque : ceci n'est plus utile depuis Jauty.** 
- 
-Et voilà! Il ne vous reste plus qu'à redémarrer votre machine, et à l'​ouverture de session la partition chiffrée sera ouverte et montée automatiquement,​ sans que la pass-phrase ne vous soit demandée. Bien entendu, si vous avez au préalable désactivé l'​authentification pour l'​ouverture de la session, cela ne sert pas à grand chose d'​avoir une partition chiffrée (car alors l'​authentification étant désactivée,​ la session est ouverte automatiquement à chaque démarrage et la partition chiffrée est également ouverte et montée automatiquement et sans pass-phrase à chaque démarrage). 
- 
-Remarque: méthode testée et approuvée sous ubuntu 10.04 
- 
- 
-=== Réglage de la priorité d'​exécution === 
-Par défaut le niveau de priorité du démon de chiffrage est trop élevé et peu induire des ralentissements gênants. Vous pouvez modifier cette priorité à l'aide de la commande **renice** : 
- 
-<​code>​ sudo renice 10 `pgrep kcryptd` </​code>​ 
- 
-Pour exécuter cette commande à chaque démarrage, il faut la placer dans le fichier **/​etc/​rc.local** avant la ligne **exit 0** sans sudo car c'est le système avec les droits administrateur qui l'​exécutera. 
- 
-<​code>​ 
-#!/bin/sh -e 
-# 
-renice 10 `pgrep kcryptd` 
-exit 0 
-</​code>​ 
- 
- 
- 
-===== Conclusion ===== 
- 
-Le nouveau système de gestion des volumes chiffrés est très bien implémenté dans Dapper. Il permet notamment de sécuriser votre /home sans manipulation complexe autre que de renseigner la pass-phrase lors du démarrage. 
- 
-=== Spécificité Edgy === 
- 
-Le fait de chiffrer votre dossier /home (par exemple) nécessite de taper la clef d'​ouverture du volume chiffré lors de la séquence de démarrage de l'​ordinateur,​ mais sous Edgy le système de boot n'est plus séquentiel comme sur Dapper, ce qui entraîne pour l'​heure que le lancement de Xorg (le serveur graphique) n'​attendra pas que vous ayez tapé votre clef d'​ouverture du volume. 
- 
-Une des solutions pour l'​heure est d'​installer **sysvinit** avec [[Synaptic]] au lieu d'​Upstart (le nouveau système de démarrage, intégré dans Edgy). 
- 
- 
- 
-===== Sous Windows ===== 
- 
-Grâce au logiciel [[http://​www.freeotfe.org/​|FreeOTFE]],​ il est possible de monter de façon non permanente une partition luks encryptée par Cryptsetup sous Linux à partir de votre système Windows. 
- 
-Pour monter et utiliser le même type de partition que celle décrite dans ce wiki, voici les étapes : 
- 
-1. Télécharger FreeOTFE [[http://​www.freeotfe.org/​download.html|ici]] 
- 
-2. Extraire les fichiers de l'​archive dans un dossier et ouvrir FreeOTFE.exe 
- 
-3. Lorsqu'​on vous demande si vous voulez démarrer FreeOTFE en portable mode, dites oui. Si vous voulez utiliser FreeOTFE régulièrement afin de monter des volumes cryptés sous Windows, vous pouvez cliquer sur non et activer de façon permanente tous les pilotes de cryptage un par un. 
- 
-4. Cliquez ensuite sur File / Linux volume / Mount partition 
- 
-5. Choisissez la partition qui est encryptée sur votre disque dur 
- 
-6. Dans la grande case, entrez votre clé secrète, puis cliquez sur Ok 
- 
-7. Si vous avez choisi la bonne partition et la bonne clé, le programme détectera l'​encryptage correspondant et vous offrira une liste des pilotes pouvant monter le volume. Faites votre choix. 
- 
-8. Si tout s'est bien passé, vous avez un nouveau lecteur dans votre poste de travail ! 
- 
- 
- 
-==== Notes importantes ==== 
- 
-Ce volume ne survivra pas à un redémarrage,​ il faudra tout reprendre de zéro à chaque fois. 
- 
-Si vous fermez FreeOTFE alors qu'il est en mode portable, vous devez lui spécifier de ne pas désactiver les pilotes d'​encryptage afin de ne pas perdre l'​usage de votre partition. ​ 
- 
-Avant de fermer votre ordinateur, il est recommandé de démonter la partition à l'aide de FreeOTFE et de lui permettre de désactiver tous les pilotes à sa fermeture. 
- 
-Si votre système de fichier est ext2 ou ext3, Windows ne sera pas capable de lire le contenu de votre partition, sauf si vous installez le [[http://​www.fs-driver.org/​|Ext2 IFS For Windows]]. Attention toutefois, ce pilote pour Windows ne prend pas en charge les droits d'​accès et la journalisation. Pour du partage entre Windows et Linux, le Fat32 est plus conseillée. 
- 
- 
- 
-===== Référence ===== 
- 
-Une bonne référence : [[https://​wiki.ubuntu.com/​EncryptedFilesystemHowto]] 
  
  • utilisateurs/lildadou/cryptsetup.1295218609.txt.gz
  • Dernière modification: Le 18/04/2011, 14:43
  • (modification externe)