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 il devrait fonctionner sur une version antérieure) 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é 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 de celle du site d'origine: http://pamusb.org.

Je vous conseille fortement de lire ce tutoriel en entier avant de commencer pour être sûr de ne pas faire de bourde. En cas de mauvaise configuration vous pourriez ne plus pouvoir vous connecter à votre PC (la fin du tutoriel traite de la récupération de la connexion en cas de fausse manipulation 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 où 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.

Laissez le terminal ouvert.

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

pamusb-check nom_d_utilisateur

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

pamusb-check --service=sudo nom_d_utilisateur 
* Authentication request for user "nom_d_utilisateur" (sudo)
* Device "MyDevice" is connected (good).
* Performing one time pad verification...
* 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-)

Configuration de PAM

C'est lui qui autorise l'authentification.

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 clef soit indispensable pour s'authentifier auprès des différentes applications (login, gdm,sudo, …)

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

Votre fichier devrait ressembler à ça sous karmic (9.10)

#
# /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.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
auth	[success=1 default=ignore]	pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth	requisite			pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth	required			pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config

Nous allons insérer la ligne suivante pour que la clef soit nécessaire à l'authentification ( clef + mot de passe )

auth    required    pam_usb.so

ou ceci pour la clef soit suffisante à l'authentification (Clef seul sans mot de passe)

auth    sufficient    pam_usb.so

Ce qui donne :

#
# /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.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules.  See
# pam-auth-update(8) for details.
auth    sufficient    pam_usb.so
# here are the per-package modules (the "Primary" block)
auth	[success=1 default=ignore]	pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth	requisite			pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth	required			pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config

Utilisation de pamusb-agent

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 voilà le tour est joué ^_^ . Il vous faudra maintenant votre clé USB et 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 où vous êtes déjà 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 (required) au déverrouillage, ce qui de ce fait ne verrouille 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é (verrouillez l'option: "Verrouiller l'écran quand l'économiseur d'écran est actif" dans le gestionnaire 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 verrouillé… 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 ;-)

Verrouillage immédiat : (Astuce de Mysteroïd, sous Gnome uniquement) Il suffit d'utiliser la commande suivante dans une console, un terminal, éventuellement en utilisant un alias, ou mieux encore par un lanceur :
gnome-screensaver-command -l

L'ordinateur est alors immédiatement en mode économiseur d'écran PC verrouillé, sans même avoir à changer ses préférences…

Pour supprimer cette application, il suffit de supprimer les paquets, 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édemment 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 s'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 ne marche pas" dans la partie "configuration". En aucun cas l'absence de la clé USB vous empêchera d'ouvrir la session recovery.


Contributeurs : furious-therapy, Mysteroïd,root75.

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