DESCRIPTION
Les informations sur les systèmes de fichiers chiffrés dirigés par cryptmount sont contenues dans le fichier /etc/cryptmount/cmtab. Chaque système de fichiers est appellé par un nom de cible qu'on peut utiliser comme paramètre de cryptmount et ce nom apparaît dans /etc/cryptmount/cmtab devant une liste des paramètres qui décrit où le système de fichiers est contenu, et comment il est chiffré.
Le format du cmtab est souple, et la description de chaque cible est délimitée par des accolades, les paramètres sont spécifiés par les paires CLEF=VALEUR, et on peut mettre autant de caractère blanc d'espacement que l'on veut. Les annotations commencent avec un caractère `#', qui peut être utilisé à n'importe quel endroit dans une ligne, et continuent jusqu'à la fin de cette ligne. Le caractère `\' indique que si le caractère suitvant a une signification spéciale, celle-ci sera ignorée, comme par exemple si on veut incorporer un espace dans le nom d'un fichier.
/etc/cryptmount/cmtab contient des inscriptions de la forme suivante:
NOM_CIBLE { dev=PERIPHERIQUE flags=DRAPEAU,DRAPEAU,... startsector=SECTEURDEBUT numsectors=NUMSECTEURS loop=PERIPH_LOOP dir=REP_MONT fstype=TYPE mountoptions=MOPT,MOPT,... fsckoptions=FOPT;FOPT;... supath=SUPATH cipher=CHIFFRE ivoffset=IVOFFSET keyformat=FORMAT_CLEF keyfile=FICHIER_CLEF keyhash=HASH_CLEF keycipher=CHIFFRE_CLEF keymaxlen=MAX_CLEF passwdretries=NUMESSAYES }
Ici, les paramètres `flags', `startsector', `numsectors', `loop', `ivoffset', `keyformat', `keymaxlen' et `passwdretries' sont optionnels.
Les paramètres ont les sens suivants:
- NOM_CIBLE
- est le nom par lequel cryptmount se réfère à un système de fichiers particulier. Il est possible d'indiquer valeurs par défaut pour les cibles suivanteis en utilisant le nom spécial "_DEFAULTS_".
- PERIPHERIQUE
- est le nom du vrai périphérique (e.g. /dev/hdb63) ou du fichier ordinaire (e.g. /home/secretiveuser/private.fs) qui range le système de fichiers chiffré.
- DRAPEAU
-
est un bouton de configuration, comme par exemple
* "user" (n'importe quel utilisateur peut monter), * "nouser" (seulement le super-utilisateur peut monter), * "fsck" (vérifier automatiquement le système de fichiers avant de monter), * "nofsck" (ne vérifier pas le système de fichiers avant de monter), * "mkswap" (formater la cible pour la pagination), * "nomkswap" (ne formater pas la cible), * "trim" (activer SSD TRIM/discard), * "notrim" (désactiver SSD TRIM/discard).
Ce paramètre est optionnel, et le défaut est "user,fsck,nomkswap,notrim". - SECTEURDEBUT
- est le numero du secteur (de 512 octets) du PERIPHERIQUE où le système de fichiers va commencer. Ce paramètre est optionnel, et le défaut est zéro.
- NUMSECTEURS
- donne la taille totale du système de fichiers, en secteurs (blocs de 512 octets). Ce paramètre est optionnel, et le défaut est -1, ce qui signifie que tout le PERIPHERIQUE sera utilisée.
- PERIPH_LOOP
- peut être utilisé pour specifier un périphérique loop particulier (e.g. /dev/loop0) au cas où PERIPHERIQUE est un fichier ordinaire. Ce paramètre est optionnel, et le défaut est "auto".
- REP_MONT
- est le répertoire dans lequel le système de fichiers chiffré sera monté.
- TYPE
- specifie le type du système de fichiers (comme utilisé par mount (8)). On doit specifier "swap" si la périphérique va être utilisée pour la pagination chiffrée.
- MOPT
- est une option de montage, comme compris par mount (8). Typiquement, MOPT peut être "default", "noatime", "noexec", "nosuid", "ro", "sync" etc.
- FOPT
- est une option de vérification, comme compris par fsck (8). Typiquement, FOPT peut être "-C", "-V" etc.
- CHIFFRE
- est le type d'algorithme de chiffrage qui sera utilisé sur PERIPHERIQUE. La liste des algorithmes possibles est détermine par le noyau.
- FORMAT_CLEF
- indique quel moteur de chiffrage on utilise pour diriger le FICHIER_CLEF. Les moteurs disponibles sont déterminés pendant l'installation de cryptmount mais peuvent comprendre "openssl" et "libgcrypt" en plus de "builtin" (intégré) et "raw" (brut). Ce paramètre est optionel, est s'il est absent, "builtin" sera utilisé quand la clef est construit.
- FICHIER_CLEF
- est un fichier ordinaire qui contient la clef utilisée par l'algorithme CHIFFRE pour déchiffrer le système de fichiers. Cette clef elle-même est chiffrée a partir de HASH_CLEF et CHIFFRE_CLEF .
- IVOFFSET
- est l'offset qui est ajouté au numéro du secteur pendant le calcul du vecteur d'initialisation de l'algorithme de chiffrage. Ce paramètre est optionnel, et le défaut est zéro.
- HASH_CLEF
- est l'algorithme (hash) utilisé pour brouiller le mot de passe de l'utilisateur dans l'algorithme CHIFFRE_CLEF qui protege la clef du système de fichiers chiffré. On peut choisir n'importe quel algorithme qui est fourni par le FORMAT_CLEF qu'on a choisi.
- CHIFFRE_CLEF
- est l'algorithme chiffre qui protège la clef du système de fichiers chiffré lui-même. Le menu d'algorithmes est déterminé par la choix de FORMAT_CLEF
- MAX_CLEF
- est le nombre d'octets maximum qui sera lu du FICHIER_CLEF pour devenir la clef de déchiffrage. Ce paramètre est optionnel, et le défaut est zéro, ce qui indique que FICHIER_CLEF sera lu en entier.
- NUMESSAYES
-
est le nombre de tentatives de mot de passe avant que
cryptmount aille terminer quand on essaye de monter ou configurer une cible.
COMMENT CHOISIR LE FORMAT DE LA CLEF
cryptmount offrit un sélection de façons pour proteger la clef associée avec chaque système de fichiers chiffré. Pour le plupart des utilisateurs, la choix défaute "builtin" donne un bon niveau de securité et versatilité. Quelques autre moteurs de chiffrage sont disponible, et donnent plus de choix des algorithms pour brouiller le mot de passe, ou compatabilité avec quelques autre paquets. Le menu des moteurs sont le suivant.
builtin
Ce moteur est inclus dans cryptmount-2.0 et suivant, est utilise un fichier independent pour cacher la clef.
libgcrypt
Ce moteur est inclus dans cryptmount-1.1 et suivant, est utilise un fichier independent pour cacher la clef.
luks
Ce moteur est inclus dans cryptmount-3.1 et suivant, est peut diriger les système de fichiers du format LUKS ("Linux Unified Key Setup"). Ce format cache la clef dans une region spéciale du système de fichiers lui-même. Il est recommandé de ne pas utiliser les paramètres "startsector" ou "numsectors" parce que le format LUKS suppose qu'une partition entière est disponible pour le système de fichiers.
openssl/openssl-compat
Ce moteur etait disponible depuis les premiers versions de cryptmount, et utilise un fichier independent pour cacher la clef. Le format de ce fichier est compatible aver le paquet "openssl".
password
Ce moteur est inclus dans cryptmount-4.0 et suivant, est n'a pas besoin d'un fichier pour cacher la clef. Plutôt, la clef est constui directment du mot de passe, et donc il n'est pas possible de changer le mot de passe sans rechiffrer le système de fichiers en entiers.
raw
Ce moteur est inclus dans cryptmount-1.1 et suivant, est utilise un fichier independent pour contenir la clef, sans aucun chiffrage. Ce moteur est utile principalement pour les partitions de pagination.
SECURITE
Etant donné que cryptmount est installé avec des permissions setuid, il est très imporant que son fichier de configuration soit solide. Idéalement, /etc/cryptmount/cmtab devrait être dirigé seulement par le super-utilisateur, et toutes les clefs devraient être seulement lisibles par leurs utilisateurs propres.
cryptmount vérifie la sécurité du /etc/cryptmount/cmtab chaque fois qu'il est executé, et se terminera à moins que:
* cmtab ne soit possédé par le super-utilisateur * cmtab ne soit un fichier régulier * les permissions de cmtab ne contiennent pas d'écriture universelle * le répertoire, qui contient cmtab, ne soit possédé par le super-utilisateur * les permissions du répertoire, qui contient cmtab, ne contiennent pas d'écriture universelle.De plus, pour toutes les cibles dans /etc/cryptmount/cmtab, tous les fichiers doivent avoir des nom absolus (c'est-à-dire commencent avec '/').
En cas qu'on a choisi "raw" (brut) pour le FORMAT_CLEF c'est préférable si FICHIER_CLEF est rangé avec des permissions d'accès non moins restrictives que 0600, ou bien est contenu sur un disque USB-flash, par exemple.
PAGINATION CHIFFREE ET MKSWAP AUTOMATIQUE
Lorsque l'option `mkswap' est sélectionné pour une cible particulière dans /etc/cryptmount/cmtab, cryptmount tentera automatiquement de formater une partition swap chiffrée chaque fois que vous exécutez "cryptmount --swapon <cible>". C'est souvent utile quand il n'est pas nécessaire de conserver les données de pagination entre les redémarrages, comme lorsque vous n'utilisez pas les caractéristiques d'hibernation du noyau.
Parce que le reformatage supprime toutes les données existantes sur la partition de pagination choisi, cryptmount se faire des vérifications de base sur le premier mégaoctet de la partition, basée sur le degré d'aléa (entropie) dans le contenu actuel. Si la partition semble contenir bruit pur, ou a été remis à zéro, la partition sera formatée automatiquement. Si cryptmount détermine que la partition peut contenir des données non-aléatoire, puis il vous demandera d'exécuter "mkswap" manuellement.
Comme il n'existe aucun moyen infaillible de déterminer si une partition (surtout chiffrée) contient des données importantes, vous devriez être très prudent sur périphérique brut choisi pour n'importe quelle cible sur lequel vous sélectionnez l'option "mkswap".
FICHIER EXEMPLE
Le /etc/cryptmount/cmtab exemple suivant contient cinq cibles, qui utilisent un mélange d'algorithmes de chiffrage et qui rangent leurs systèmes de fichiers de manières differentes. Il y en a aussi un cible qui represent une partition de pagination.
# /etc/cryptmount/cmtab # fichier exemplaire - modifiez avant d'utiliser SVP _DEFAULTS_ { passwdretries=3 # permet 3 essayes de mot de passe par défaut } basic { dev=/home/secretiveuser/crypt.fs dir=/home/secretiveuser/crypt # où on va monter loop=auto # trouver un périph loop libre fstype=ext3 mountoptions=default cipher=aes-cbc-plain # chiffrage du système de fichiers keyfile=/home/secretiveuser/crypt.key # utiliser le gestionnaire des clefs intégré keyformat=builtin } partition { dev=/dev/hdb62 # utiliser une partition entière dir=/mnt/crypt62 fstype=ext3 mountoptions=nosuid,noexec cipher=serpent-cbc-plain # info sur le fichier qui contient la clef de déchiffrage: keyfile=/etc/cryptmount/crypt_hdb62.key keyformat=openssl # utiliser OpenSSL pour chiffrage de la clef keyhash=md5 keycipher=bf-cbc # chiffrage du fichier de la clef } subset { dev=/dev/hdb63 startsector=512 numsectors=16384 # utiliser une partie d'une partition dir=/mnt/encrypted\ subset\ of\ hdb fstype=reiserfs mountoptions=defaults cipher=twofish-cbc-plain # chiffrage du système de fichiers # info sur le fichier qui contient la clef de déchiffrage: keyfile=/etc/cryptmount/crypt_hdb63.key keyformat=libgcrypt keyhash=md5 keycipher=blowfish-cbc # chiffrage de la clef d'accès } encswap { # pagination chiffrée dev=/dev/hdb63 startsector=16896 numsectors=1024 # utiliser une partie d'une partition fstype=swap flags=mkswap cipher=twofish-cbc-plain # lire une clef nouvelle de 16-octets de /dev/random chaque fois: keyfile=/dev/random keymaxlen=16 keyformat=raw } luks { # partition creé avec cryptsetup-luks dev=/dev/hdb63 dir=/mnt/partition-luks keyformat=luks keyfile=/dev/hdb63 fstype=ext3 } # fin de cmtab
La cible `basic' utilise le fichier ordinaire "/home/secretiveuser/crypt.fs" pour ranger le système de fichiers chiffré. Un périphérique loop sera configuré automatiquement par cryptmount (à cause du "loop=auto").
La cible `partition' utilise une partition entière du disque dur pour ranger le système de fichiers chiffré. La clef de déchiffrage est contenue dans le répertoire principal de cryptmount.
La cible `subset' est semblable à la cible `partition' sauf qu'elle n'utilise pas une partition entière. De cette manière, on peut utiliser des autres groupes de blocs de la partition pour des autres systèmes de fichiers dirigés par cryptmount ou dmsetup.
La cible `encswap' utilise une partie d'une partition du disque dur pour proviser la pagination chiffrée. Une nouvelle clef de déchiffrage sera lu du /dev/random chaque fois la cible est utilisée.
FICHIERS
/etc/cryptmount/cmtab - fichier principal du configuration
COPYRIGHT NOTICE
cryptmount est Copyright 2005-2015 RW Penneyet il n'y a point de garantie. Les termes de sa licence sont décrits dans le fichier "COPYING" dans le paquet source de cryptmount.
TRADUCTION
RW Penney, 2006-2014, avec beaucoup d'assistance de FP.