|
Introduction
- Vous disposez d'un clé usb et souhaitez l'utiliser pour vous authentitifier sous linux. Rien de plus simple avec le projet "pam_usb" qui permet une telle authentification à travers l'algorithme DSA de clé privée/publique (cf. notre page sécurité pour plus d'infos).
- Nous vous allons vous détailler ci-dessous comment procéder pour mettre en place cette authentification. A noter que cette page a été concue en grande part à partir de la traduction de la procédure d'installation du site original de pam_usb.
Authentification par clé usb sous linux
- S'assurer tout d'abord que la clé usb est bien reconnue sous linux et créer un point de montage tel que /mnt/uskbey par exemple.
- Télécharger le module "pam_usb" à l'adresse http://sig11.org/~al/pam_usb/.
- Se connecter en tant que root.
- tar zxvf pam_usb-0.2_rc2.tar.gz
- cd pam_usb-0.2_rc2
- make
- make install
Remarque : il se peut que la compilation échoue si vous n'avez pas installé au préalable les modules de développement de pam dont dépend "pam_usb".
- Editer le fichier /etc/pam.d/login et alors 3 choix sont possibles :
- pour utiliser uniquement votre clé usb pour vous connecter, mettre en commentaire la ligne (par un # en début de ligne)
auth required pam_unix.so ou auth required pam_stack.so (selon les distrib. linux) et ajouter la ligne auth required pam_usb.so.
- pour utiliser soit votre clé usb soit votre password habituel pour vous connecter, ajouter la ligne auth sufficient pam_usb.so avant la ligne auth required pam_unix.so ou auth required pam_stack.so (selon les distrib. linux).
- pour être obliger d'utiliser à la fois votre clé usb et votre password habituel pour vous connecter, ajouter la ligne auth required pam_usb.so avant la ligne auth required pam_unix.so ou auth required pam_stack.so (selon les distrib. linux).
Remarques :
- Des options sont disponibles, notamment l'option debug=1 qu'il est recommandé d'ajouter lors de la 1ère connexion à la fin de la ligne auth required/sufficient pam_usb.so pour permettre de passer en mode "bavard". N'hésitez donc pas à consulter la documentation sur le site de "pam_usb".
- . Pour ma part j'ai dû mettre la ligne auth sufficient pam_usb.so force_device=/dev/sda4 fs=vfat check_if_mounted=1 pour que cela fonctionne, sachant que ma clé usb est reconnue sous le device /dev/sda4.
- Monter la clé usb
- mount /dev/sda4 /mnt/usb (/dev/sda4 est le device de ma clé usb).
- Générer la paire de clé privée/publique par :
- usbadm keygen /mnt/usb mon_login 2048 (mon_login est le nom du login qui bénéficie de l'authentification par clé usb, 2048 est la taille choisie pour la clé)
[!] Directory /root/.auth/ not found, creating one...
[!] Directory /mnt/usb/.auth/ not found, creating one...
[!] Generating 2048 DSA key pair for root@host
[!] Extracting private key...
[+] Private key extracted.
[+] Private key successfully written.
[!] Writing public key...
[+] Public key successfully written.
Voilà, c'est fait... Simple non ? Il ne vous reste plus qu'à faire un essai de login en mode console avec le compte "mon_login".
- Pour renforcer la sécurisation de l'authentification par clé usb :
-
# usbadm cipher /mnt/usb mon_login
[!] Importing the private key...
[+] Private key imported
[!] Encrypting the private key may prevent someone to authenticate with
your key. The drawback is that pam_usb will prompt you for password
every time you authenticate.
[?] Which algorithm want you to use ? (none/blowfish/des3): blowfish
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
[+] Private key successfully written using cipher blowfish
permet de crypter la clé privée par un algorithme symétrique en utilisant une "passphrase". Cette "passphrase" vous sera donc demandée à chaque authentification afin de pouvoir décrypter la clé privée.
Remarque : usbadm cipher /mnt/usb mon_login none permet de supprimer le cryptage de la clé privée.
-
# usbadm addserial
[+] procfile: /proc/scsi/usb-storage-0/0
[+] serial number: 69S258Q3BP2E2201
[+] attached: yes
Allowing serial number 69S258Q3BP2E2201...done.
permet de n'autoriser que cette clé usb (utilisation pour cela de son numéro de série).
Voilà c'est fait. A noter que vous pouvez utiliser ce type d'authentification également pour X11 en modifiant cette fois-ci le fichier /etc/pam.d/xdm.
|
|