1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
.. -*- mode: rst -*-
.. -*- coding: utf-8 -*-
Mettre en place une solution de chiffrage avec authentification forte
#####################################################################
:date: 2008/11/07
:tags: Libre
Voici une méthode que j'ai mis en place pour protéger l'accès à mon
répertoire /home via Cryptsetup. Il existes de nombreux tutoriels
expliquant comment créer une partition chiffrée, je ne vais pas
détailler cela ici. L'intérêt du script que je propose ici est qi'il se
lance au moment du login, et qu'il va chercher le mot de passe sur une
clef USB.
Charger le mot de passe contenu dans la clef USB
------------------------------------------------
Il suffit juste de l'insérer avant de se logguer, et de la retirer une
fois l'authentification réussie.
Voici le script en question
::
#!/bin/sh
#Si la clef n'est pas insérée, refuse le login
[ -b /dev/disk/by-uuid/chemin-de-la-clef ] || exit 1
if [ -b /dev/mapper/home ]
then
#Si la partition est deja montée, connecte
exit 0
else
# Monte la clef
mkdir /tmp/clef/
mount /dev/disk/by-uuid/chemin-de-la-clef /tmp/clef/ 2>/tmp/out
# Déchiffre la partition
/sbin/cryptsetup luksOpen -d /tmp/clef/clef /dev/disk/by-uuid/chemin-de-la-clef home 2>>/tmp/out
# Démonte la clef, elle peut maintenant être retirée sans pb
umount /tmp/clef
rmdir /tmp/clef/
mount -o defaults -t ext2 /dev/mapper/home /home
exit 0
fi
Bien sûr, il faut que la clef soit contenue dans le fichier clef sur le
périphérique USB.
Mettre le script au login de l'utilisateur
------------------------------------------
Maintenant, 2ème étape, il s'agit de lancer ce script au moment où
l'utilisateur vient de se logguer. Comme je passe par un login manager
sur mon portable ( GDM ), j'ai choisi d'utiliser ses ressources pour
lancer le script. En effet, GDM possède des scripts qui sont lancés aux
différents moments de la connexion. Ce qui nous intéresse ici se trouve
dans le fichier : /etc/gdm/PostLogin/Default
Il suffit d'y coller notre script ( ou d'y faire appel ) , et notre partition
sera activée automatiquement lors de la connexion ( et seulement si le mot de
passe est valide ).
On peut obtenir des paramètres de la part de GDM dans ce script, nom de
l'utilisateur qui se loggue, répertoire de login etc, cela permet de
personnaliser notre script si on le souhaite.. Un code de retour en erreur
refusera le login, que le mot de passe entré soit bon ou non...
|