\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{mar. mars 22 12:27:35 CET 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={cryptmount},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Monter/démonter/configurer un système de fichier chiffré},
CreationDate={D:20160322122735},
ModDate={D:20160322122735},
Keywords={Linux;chiffrement;sécurité}
}}
\begin{document}
 
\begin{center}
{\Huge cryptmount }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Monter/démonter/configurer un système de fichier chiffré}
 
\vspace{10mm}
 
\hspace{1mm}  cryptmount permet de monter ou démonter un système de fichier chiffré dans nécessiter de privilèges root, et l'assister root dans la création de nouveau système de fichiers chiffrés. Une fois la configuration initiale du système de fichier par l'administrateur système, l'utilisateur doit seulement fournir le mot de passe de déchiffrement pour que cryptmount configure automatiquement device-mapper et les cibles loopback avant de monter le système
\vspace{5mm} \\
 
 
\hspace{1mm}  cryptmount a été écris en réponse aux différences entre la nouvelle infrastructure device-mapper de linux 2.6 et l'ancien cryptoloop qui permettait aux utilisateurs standards d'accéder aux systèmes de fichiers directement via mount.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} -a, --all]{Agit sur toutes les cible disponible, ex: pour monter toutes les cibles}
\item[\hspace{1mm} -m, --mount]{Monte la cible spécifiée. L'utilisateur devra fournir un mot de passe pour débloquer la clé de déchiffrement pour le système de fichier.}
\item[\hspace{1mm} -S, --status]{Indique si la cible est montée ou non}
\item[\hspace{1mm} -l, --list]{Liste toutes les cibles disponible, incluant des informations sur le système de fichier et le point de montage.}
\item[\hspace{1mm} -c, --change-password]{Change le mot de passe qui protège la clé de déchiffrement pour un système de fichier donné.}
\item[\hspace{1mm} -g, --generate-key size]{Génère une clé de déchiffrement opur un nouveau système de fichier, avec la taille spécifiée en octets}
\item[\hspace{1mm} -e, --reuse-key existing-target]{Définis une clé de déchiffrement pour un nouveau système de fichier, en utilisant une clé existante pour un autre système de fichier. Uniquement disponible pour root}
\item[\hspace{1mm} -f, --config-fd num]{Lit la configuration des cible depuis le descripteur de fichier spécifié au lieu du fichier de configuration par défaut. Uniquement disponible pour root}
\item[\hspace{1mm} -m, --passwd-fd num]{Lit les mots de passe depuis le descripteur de fichier spécifié au lieu du terminal. Chaque mot de passe est lu une seule fois.}
\item[\hspace{1mm} -p, --prepare]{Prépare les périphériques device-mapper et loopback nécessaire pour accéder à la cible, mais ne la monte pas. Utilisé par root pour installer un système de fichier sur un périphérique chiffré}
\item[\hspace{1mm} -r, --release]{Relache tous les périphériques device-mapper et loopback associés avec un cible particulière. Uniquement disponible pour root.}
\item[\hspace{1mm} -s, --swapon]{Active le paging et swaping pour la cible. Uniquement disponible pour root.}
\item[\hspace{1mm} -x, --swapoff]{Désactive le paging et swaping pour la cible. Uniquement disponible pour root.}
\item[\hspace{1mm} -k, --key-managers]{Liste tous les formats disponibles pour protéger les clés d'accès au système de fichier}
\item[\hspace{1mm} -B, --system-boot]{Configure toutes les cibles marquées "bootaction". Généralement utilisé pour monter automatiquement les systèmes de fichiers chiffré. Uniquement disponible pour root.}
\item[\hspace{1mm} -Q, --system-shutdown]{Stop toutes les cibles marquées bootaction. L'opposé de -B. Uniquement disponible pour root.}
\item[\hspace{1mm} -n, --safetynet]{Tente de stopper toute cible mounté qui devrait normalement être arrêtée avec --unmount ou --swapoff. Uniquement disponible pour root, et prévu exclusivemeent durant l'extinction du système.}
\end{description}
 
\vspace{1cm}{\huge Codes de sortie }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} 1]{Option de ligne de commande non-reconnue}
\item[\hspace{1mm} 2]{Nom de cible non-reconnue}
\item[\hspace{1mm} 3]{Erreur en exécutant le programme helper}
\item[\hspace{1mm} 100]{Privilèges insuffisants}
\item[\hspace{1mm} 101]{Erreur de sécurité à l'installation}
\end{description}
 
\vspace{1cm}{\huge Exemple d'utilisation }
 
\
 
\hspace{1mm}  Pour pouvoir créer un nouveau système de fichier chiffré par cryptmount, utiliser le programme cryptmount-setup qui peut être utilisé par le superuser pour le configurer interactivement.
\vspace{5mm} \\
 
 
\hspace{1mm}  Alternativement, une configuration manuelle permet un contrôle avancé. Avant de le faire, il faut s'assurer que le kernel supporte /dev/loop et /dev/mapper (modprobe -a loop dm-crypt).
\vspace{5mm} \\
 
 
\hspace{1mm} Ensuite, supposons que l'on souhaite définir un nouveau système de fichier chiffré qui aura comme nom "opaque". Si on a une partition libre, disons /dev/hdb63, on peut donc l'utiliser directement pour stocker le système de fichier chiffré. Alternativement, si l'on souhaite stocker le système de fichier chiffré dans un fichier ordinaire, on doit créer un fichier avec par exemple: \\
\hspace{1mm} \textbf{dd if=/dev/zero of=/home/opaque.fs bs=1M count=512} \\
\hspace{1mm} Puis remplacer toutes les occurences de /dev/hdb63 avec /home/opaque.fs. \\
 
\hspace{1mm} Premièrement, il faut ajouter une entrée dans /etc/cryptmount/cmtab, qui décris le chiffrement qui sera utilisé pour protéger le système de fichier lui-même et la clé d'accès, comme suit:
 
{\ttfamily
opaque \{\\ dev=/dev/hdb63 dir=/home/crypt\\ fstype=ext2 mountoptions=defaults cipher=twofish\\ keyfile=/etc/cryptmount/opaque.key\\ keyformat=builtin\\ \}\\
}
\vspace{8mm}
 
\hspace{1mm}  Ici, on utilise l'algorithme twofish pour chiffrer le système de fichier lui-même, avec le gestionnaire de clé embarqué utilisé pour protéger la clé de déchiffrement (dans /etc/cryptmount/opaque.key) qui sera utilisé pour chiffrer le système de fichier lui-même, on peut exécuter, en root:
\vspace{5mm} \\
 
 
\hspace{1mm}  Cela va générer une clé 32 octets (256bits), qui est connu pour être supportée par twofish, et la stocke dans une forme chiffrée après avoir demandé le mot de passe.
\vspace{5mm} \\
 
 
\hspace{1mm} Si on exécute, en root: \\
\hspace{1mm} \textbf{cryptmount --prepare opaque} \\
\hspace{1mm} Le mot de passe sera demandé, qui va permettre à cryptmount de définir une cible device-mapper (/dev/mapper/opaque). On peut désormais utiliser les outils standard pour créer le système de fichier dans /dev/mapper/opaque: \\
\hspace{1mm} \textbf{mke2fs /dev/mapper/opaque} \\
\hspace{1mm} après avoir exécuté: \\
\hspace{1mm} \textbf{cryptmount --release opaque} \\
\hspace{1mm} \textbf{mkdir /home/crypt} \\
\hspace{1mm} Le système de fichier chiffré est prêt. Généralement, les utilisateurs peuvent le monter avec: \\
\hspace{1mm} \textbf{cryptmount -m opaque} \\
\hspace{1mm} ou \\
\hspace{1mm} \textbf{cryptmount opaque} \\
\hspace{1mm} et le démontent avec \\
\hspace{1mm} \textbf{cryptmount -u opaque} \\
 
\hspace{1mm}  cryptmount conserve un enregistrement sur quel utilisateur a monté chaque système de fichier pour pouvoir fournir un mécanisme de blockage pour s'assurer que seul le même utilisateur (ou root) peut le démonter.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Changement de mot de passe }
 
\
 
\hspace{1mm} Une fois un système de fichier utilisé, on peut souhaiter changer le mot de passe d'accès, par exemple: \\
\hspace{1mm} \textbf{cryptmount --change-password opaque} \\
 
\vspace{1cm}{\huge Système de fichier chiffré avec LUKS }
 
\
 
\hspace{1mm}  cryptmount peut être utilisé pour fournir un accès simple à aux systèmes de fichier chiffrés compatibles avec LUKS.
\vspace{5mm} \\
 
 
\hspace{1mm} Pour accéder à une partition LUKS existante, une entrée a besoin d'être créé dans /etc/cryptmount/cmtab. Par exemple, si la partition /dev/hdb62 est utilisé pour contenir un système de fichier ext3 LUKS, une entrée sous la forme:
 
{\ttfamily
LUKS \{\\ keyformat=luks\\ dev=/dev/hdb62 keyfile=/dev/hdb62\\ dir=/home/luks-dir fstype=ext3\\ \}\\
}
\vspace{8mm}
 
\hspace{1mm} Que permet de monter via cryptmount sous /home/luks-dir en exécutant: \\
\hspace{1mm} \textbf{cryptmount LUKS} \\
\hspace{1mm} cryptmount va également permettre à un utilisateur qui connaît un des mots de passe d'accè de changer leur mot de passe via \\
\hspace{1mm} \textbf{cryptmount --change-password LUKS} \\
 
\hspace{1mm}  cryptmount fournis également un support basic pour créer un nouveau système de fichier chiffré LUKS, qui peut être placé dans des fichiers ordinaires aussi bien que des partitions disque, via --generate-key. Cependant, pour exploiter toutes les fonctionnalité de LUKS, tel qu'ajouter plusieurs mots de passes, il faut utiliser cryptsetup.
\vspace{5mm} \\
 
 
\hspace{1mm}  Il est fortement recommandé de ne pas tenter d'utiliser le support LUKS en combinaison avec les fonctionnalités de cryptmount pour stocker plusieurs systèmes de fichiers chiffrés dans une simple partition disque ou un fichier ordinaire. Cela est dû à la supposition dans le design de cryptsetup-luks que la clé LUKS est toujours stockée au début de la partition.
\vspace{5mm} \\
 
\end{flushleft}
\end{document}
