Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Comment s’authentifier avec une clé USB ?

Nous allons voir ici comment utiliser une clé usb pour se connecter verrouiller/déverrouiller son pc sous Ubuntu (testé sous gutsy mais doit fonctionner sur inférieur) grâce à pam-usb sans passer par la manière traditionnelle (login/mot de passe uniquement). L' idée est que si la clé n'est pas dans un des ports usb du pc, le pc n'est pas utilisable. Dans le cas ou la clé usb est insérée dans un autre ordinateur elle aura le comportement d' une clée usb classique, de plus vous pouvez utiliser votre clé usb comme clé usb de stockage (testé sans problèmes).

Ce tutoriel est une version améliorée du site d' origine: http://pamusb.org

Je vous conseil fortement de lire ce tuto en entier avant de commencer pour être sur de ne pas faire de bourde, en cas de mauvaise configuration vous pourriez ne plus pouvoir vous connecter à votre pc (la fin du tuto traite de la récupération de la connexion en cas de fausse manip' ou de perte de la clé usb ;-) )
  • Disposer des droits d'administration ;
  • Disposer d'une connexion à Internet configurée et activée ;
  • Savoir se servir d'un terminal

Il vous suffit, pour cela, d'installer les paquets apt://libpam-usb et apt://pamusb-tools.

Une fois les paquets installés nous allons, dans un premier temps spécifier la clé usb qui verrouillera/déverrouillera l' ordinateur. Pam-usb créera une clé cryptée à la racine de cette clé usb dans le dossier caché ".pam-usb"

  1. Insérez la clé usb dans un des ports du pc
  2. Ouvrez un terminal et tapez le code suivant:
$ sudo pamusb-conf --add-device nom_de_ma_clé 
"nom_de_ma_clé" est à remplacer par le nom que vous voulez donner à votre clé

pamusb-conf va lister les périphériques usb montés sur l'ordinateur, dans le cas où il n'y en a qu'un il vous le proposera d'office, il suffira donc de taper Y et entrée:

Please select the device you wish to add.
* Using "SanDisk Corp. Cruzer Titanium (SNDKXXXXXXXXXXXXXXXX)" (only option)
Which volume would you like to use for storing data ?
* Using "/dev/sda1 (UUID: <6F6B-42FC>)" (only option)
Name            : MyDevice
Vendor          : SanDisk Corp.
Model           : Cruzer Titanium
Serial          : SNDKXXXXXXXXXXXXXXXX
Volume UUID     : 6F6B-42FC (/dev/sda1)
Save to /etc/pamusb.conf ?
[Y/n] y
Done.

dans le cas ou il y en a plusieurs il les liste et leur attribue un numéro, à vous de choisir celui que vous voulez. Laissez le terminal ouvert.

Il est préférable de n'avoir que la clé usb voulue de connectée pour éviter toute confusion au moment de cette manipulation

Nous allons maintenant définir les utilisateurs concernés par le verrouillage/déverrouillage, pour cela tapez dans le terminal:

sudo pamusb-conf --add-user nom_d_utilisateur 
"nom_d_utilisateur" est à remplacer par votre nom d' utilisateur

Vous obtenez:

Which device would you like to use for authentication ?
  * Using "MyDevice" (only option)
  User            : nom_d_utilisateur
  Device          : MyDevice
  Save to /etc/pamusb.conf ?
  [Y/n]

Tapez Y et la touche entrée pour confirmer.

À cette étape nous ajoutons sudo afin qu' il soit authentifié par pam-usb, sans cela vous ne pourrez avoir accès aux commandes nécessitantes de passer par sudo

Attention, à partire de ce moment votre mot de passe ne sera plus demandé pour l'installation de programmes. Veillez à ce que ceux-ci PROVIENNE D UNE SOURCE SÛRE ! (Ce qui devrait être le cas tout le temps mais un rappel ne fait jammais de mal ;-) )
sudo pamusb-conf --add-user sudo      
  Which device would you like to use for authentication ?
  * Using "MyDevice" (only option)
  User            : sudo
  Device          : MyDevice
  Save to /etc/pamusb.conf ?
  [Y/n] y
  Done.

Laissez le terminal ouvert.

Nous allons simuler l'authentification d'un utilisateur pour voir si cela fonctionne, tapez dans le terminal

pamusb-check sudo

l'opération devrait se dérouler comme ceci:

pamusb-check sudo
* Authentication request for user "sudo" (pamusb-check)
* Device "MyDevice" is connected (good).
* Performing one time pad verification...
* Verification match, updating one time pads...
* Access granted.

Laissez le terminal ouvert.

Deux possibilités: -Ça ne marche pas: vous avez raté les configs, désinstallez complètement puis réinstallez pam-usb et reprenez depuis le début (tapez dans le terminal):

sudo apt-get remove --purge libpam-usb pamusb-tools && sudo apt-get autoremove && sudo apt-get install libpam-usb pamusb-tools

-Ça marche: on continue 8-)

Les sources de pam-usb ont un bug! (source: https://bugs.launchpad.net/ubuntu/+source/libpam-usb/+bug/133100 ) Avant de continuer nous allons éditer le fichier "/usr/bin/pamusb-agent"
sudo gedit /usr/bin/pamusb-agent

remplacez la ligne 30:

import xml.elementtree.ElementTree as et

par:

import xml.etree.ElementTree as et

Enregistrez le fichier et fermez le

L' opération suivante est délicate, si vous vous ratez vous ne pourrez peut-être plus vous connecter à votre ordinateur!

Nous allons commencer par faire une copie de /etc/pam.d/common-auth, tapez dans le terminal:

sudo cp /etc/pam.d/common-auth /etc/pam.d/common-auth.back

Puis nous allons éditer /etc/pam.d/common-auth afin que la présence de la clé soit indispensable pour déverrouiller ou se connecter à l' ordinateur, tapez dans le terminal:

sudo gedit /etc/pam.d/common-auth

Votre fichier devrait ressembler à ça:

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#

auth    requisite      pam_unix.so nullok_secure
auth	optional       pam_smbpass.so migrate missingok

Nous allons insérer la ligne suivante:

auth    required    pam_usb.so

et remplacer

auth    requisite      pam_unix.so nullok_secure

par

auth    required      pam_unix.so nullok_secure

pour obtenir:

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth    required       pam_usb.so
auth    required       pam_unix.so nullok_secure
auth	optional       pam_smbpass.so migrate missingok

Nous allons ajoutter pamusb-agent aux services à démarrer automatiquement au démarrage (hem^^), pour cela nous allons dans système>préférences>sessions, on clic sur ajouter puis nous entrons

pamusb

pour le nom et

pamusb-agent

pour la commande

Et voila le tour est joué ^_^ . Il vous faudra maintenant votre clé usb + votre mot de passe pour vous connecter ou déverrouiller l'ordinateur. Si vous voulez uniquement utiliser la clé usb et ne plus avoir à taper de mot de passe, au moment de l'édition de "/etc/pam.d/common-auth" commentez la ligne "auth required pam_unix.so nullok_secure", votre fichier doit alors être:

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth    required       pam_usb.so
#auth    required       pam_unix.so nullok_secure
auth	optional       pam_smbpass.so migrate missingok

vous n'avez plus besoin de taper votre mot de passe pour vous connecter ou déverrouiller le pc

Nous avons vu "connecter" et "déverrouiller" l'ordinateur mais qu'en est-il du verrouillage dans le cas ou vous êtes déja connecté et votre ordinateur est allumé?

La doc officielle montre comment déclencher et bloquer l'écran de veille au démontage de la clé et désactiver l'écran de veille au remontage de celle-ci mais cela ne marche que quand la clé usb est OPTIONELLE (sufficient) et non NÉCESSAIRE (requierd) au déverrouillage, ce qui de ce fait ne vérouille pas le pc sans la clé usb.

La seule alternative que j'ai trouvée est de régler l'économiseur d'écran (>système>préférences>économiseur d' écran) pour qu'il s'active à une minute et qu'il soit bloqué (vérouillez l'option: "Verrouiller l'écran quand l' économiseur d'écran est actif" dans le géstionnaire d'économiseur d'écran) Si vous devez laisser votre ordinateur travailler et que personne n'y accède il vous suffit de déconnecter votre clé usb, le temps de vous préparer à faire autre chose (environ une minute minimum ^_^) l'économiseur d'écran sera activé et votre pc sera vérouillé… Il vous suffira à votre retour de connecter la clé et de rentrer votre mot de passe (ou simplement bouger la souris ou appuyer sur une touche du clavier si vous avez désactivé l'authentification par mot de passe) pour vous reconnecter. Le montage de la clé usb prend quelques secondes donc ne paniquez pas en cas d'échec à la première tentative de déverrouillage par mot de passe et recommencez ;-)

Pour supprimer cette application, il suffit de supprimer les paquet, rentrez dans un terminal:

sudo apt-get remove --purge libpam-usb pamusb-tools
Les fichiers de configuration seront supprimés et il ne faut pas oublier de remplacer le fichier /etc/pam.d/common-auth par la copie précédament faite:
sudo mv -f /etc/pam.d/common-auth.back /etc/pam.d/common-auth

Impossible de se connecter

Redémarrez l'ordinateur, affichez grub si il ne se fait pas de lui même (tapotez la touche esc après le démarrage du bios) Choisissez le démarrage de secours (recovery mode) et choisissez le shell root. remplacez le fichier /etc/pam.d/common-auth par la sauvegarde:

mv -f /etc/pam.d/common-auth.back /etc/pam.d/common-auth

Redémarrez. La méthode d' authentification traditionnelle est rétablie, il ne vous reste plus qu'à reprendre à "ça marche pas" dans la partie "configuration". En aucun cas l' absence de la clé usb vous empêchera d' ouvrire la session recovery.


Contributeurs : furious-therapy.

  • tutoriel/pam-usb.1222872721.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)