NOM
cmtab - informations statiques sur les systèmes de fichiers dirigés par
cryptmount
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;...
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 par la
cible). Ce paramètre est optionnel, et le défaut est
"user,fsck,nomkswap".
SECTEURDEBUT
est le numero du secteur 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). 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.
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 # 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
# 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 # 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
# 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
VOIR AUSSI
cryptmount(8), cryptmount-setup(8), dmsetup(8), openssl(1)
COPYRIGHT NOTICE
cryptmount est Copyright 2005-2009 RW Penney
et 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-2009, avec beaucoup d’assistance de FP.