CMTAB(5)

NOM
cmtab - informations statiques sur les systèmes de fichiers dirigés par cryptmount

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/sdb63) 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
        }

        luks {                          # partition creé avec cryptsetup-luks
            dev=/dev/sdb63
            dir=/mnt/partition-luks
            keyformat=luks
            keyfile=/dev/sdb63
            fstype=ext3
        }

        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/sdb62                      # 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_sdb62.key
            keyformat=openssl                   # utiliser OpenSSL pour chiffrage de la clef
            keyhash=md5 keycipher=bf-cbc        # chiffrage du fichier de la clef
        }

        subset {
            dev=/dev/sdb63
            startsector=512 numsectors=16384    # utiliser une partie d'une partition
            dir=/mnt/encrypted\ subset\ of\ sdb
            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_sdb63.key
            keyformat=libgcrypt
            keyhash=md5 keycipher=blowfish-cbc  # chiffrage de la clef d'accès
        }

        encswap {                               # pagination chiffrée
            dev=/dev/sdb63
            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
        }

        # 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 (C)Copyright 2005-2026, 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-2024, avec beaucoup d'assistance de FP.