GNU/Linux >> Tutoriels Linux >  >> Debian

Comment se connecter à Linux en utilisant une clé USB au lieu d'un mot de passe en utilisant pam_usb (fork)

pam_usb est un module PAM qui fournit une authentification matérielle pour Linux avec des clés USB, cartes SD, MMC, etc. courantes.

Cela vous permet de vous connecter sans mot de passe en connectant simplement une clé USB ou une carte mémoire à votre ordinateur. Cette authentification USB fonctionne également lors de l'exécution de commandes de terminal qui nécessitent un superutilisateur - par exemple, on ne vous demandera pas de mot de passe lors de l'utilisation de sudo.

pam_usb fonctionne avec toutes les applications prenant en charge PAM, telles que B. Gestionnaire de connexion (GDM, Lightdm, etc.) et su / sudo.

Pour l'authentification, pam_usb utilise le numéro de série de la clé USB / de la carte mémoire, le modèle et le fabricant, ainsi que les tampons à usage unique (OTP) en option. Lorsque les One Time Pads sont activés (ceci est activé par défaut, mais vous pouvez le désactiver), le fichier public des pads utilisateur sur la carte USB/mémoire sera dans un dossier caché appelé. .pamusb enregistré tandis que la clé privée est stockée dans un dossier caché du même nom qui est stocké dans le répertoire personnel de l'utilisateur.

Le développeur original de cet outil semble l'avoir abandonné, aucun nouveau commit depuis avril 2016 et aucune nouvelle version depuis 2011. Depuis lors, certaines améliorations ont été apportées à divers référentiels. Pour améliorer encore pam_usb, l'outil a été forké, en tenant également compte du travail précédemment effectué dans d'autres référentiels (qui incluent des améliorations telles que le port UDisk2).

Fonctions pam_usb :

  • Authentification sans mot de passe (carte mémoire / USB). Connectez simplement la clé USB / carte mémoire que vous avez configurée avec pam_usb pour vous connecter
  • Prend en charge les clés USB, les cartes SD, MMC, etc.
  • Sondage automatique de l'appareil. pam_usb ne nécessite pas le montage du lecteur flash USB ; il peut localiser le périphérique USB et accéder à ses données directement à l'aide d'UDisks
  • Il n'est pas nécessaire de reformater votre clé USB
  • Numéro de série USB, modèle et vérification du fabricant
  • Prend en charge l'authentification One Time Pads (OTP)
  • Peut être utilisé comme authentification à deux facteurs et nécessite à la fois la clé USB et le mot de passe pour se connecter à votre système Linux
  • Vous pouvez utiliser la même carte mémoire/clé USB sur plusieurs machines

Il y a 3 outils fournis avec pam_usb :pamusb-agent qui peut être utilisé pour initier des actions lorsque l'appareil est authentifié ou supprimé (par exemple, vous pouvez utiliser une commande pour verrouiller l'écran lorsque l'appareil est supprimé), pamusb-conf ce qui facilite la configuration de pam_usb, et pamusb-check qui est utilisé pour intégrer le moteur d'authentification pam_usb dans des scripts ou des applications.

pam_usb ne prend actuellement pas en charge l'ajout de plusieurs appareils par utilisateur. Pour l'instant, pamusb-conf n'ajoute pas d'appareils pour les utilisateurs déjà configurés. Vous pouvez suivre ce problème ici.

Cela vaut la peine de mentionner pam_usb n'est utilisé que pour se connecter et non pour déverrouiller le trousseau de clés GNOME ou décrypter les dossiers privés . GNOME Keyring ne semble pas prendre en charge le déverrouillage par autre chose que l'utilisation du mot de passe. Même si vous êtes automatiquement connecté lors de l'utilisation de pam_usb et que la clé USB couplée est connectée, la boîte de dialogue de déverrouillage du trousseau GNOME apparaîtra, vous invitant à saisir votre mot de passe de déverrouillage. la même chose se produit par exemple si vous utilisez l'authentification par empreinte digitale.

J'ai essayé cela avec GDM et LightDM. Dans les deux cas, je devais cliquer sur mon nom d'utilisateur sur l'écran de connexion et appuyer sur Entrée pour me connecter sans avoir à saisir le mot de passe du compte.

[[Edit]]Dans un commentaire ci-dessous, le développeur a noté qu'il essayait de trouver de l'aide pour un examen de sécurité du code. Si vous pouvez les aider, veuillez les contacter via github.

Concernant l'USB :créez une clé USB amorçable en copiant simplement l'ISO sur la clé USB à l'aide de Ventoy (Linux et Windows)

Installer et configurer pam_usb (fork)

ce pam_usb-fork n'a pas été compressé dans les dépôts officiels d'aucune distribution Linux. L'ancienne version 0.5.0 (qui utilise Python2 et Udisks1) est disponible pour quelques distributions Linux, mais elle fait défaut dans la plupart.

Le développeur du fork pam_usb a emballé cette version pam_usb pour les versions actuelles de Debian et Ubuntu (ainsi que Linux Mint, Pop ! _OS et d'autres distributions Linux basées sur Debian ou Ubuntu) et vous pouvez la télécharger ici (à partir de là, vous n'avez besoin que le paquet libpam-usb).

Le référentiel fork pam_usb dispose également d'un Arch Linux / Manjaro PKGBUILD disponible .

Pour les autres distributions Linux, vous devrez le compiler à partir de la source .

Si vous installez pam_usb (fork) à partir du package Debian fourni par le développeur, lors de l'installation, vous serez invité à sélectionner l'appareil et l'utilisateur :

Si ce n'est pas le cas pour vous, ou si vous voulez le faire manuellement plus tard, voici comment configurer pam_usb. Insérez une clé USB ou une carte mémoire et exécutez la commande suivante pour ajouter votre nouvel appareil comme méthode d'authentification :

sudo pamusb-conf --add-device DEVICE_NAME

DEVICE_NAME peut être tout ce que vous voulez

Ensuite, vous devez ajouter votre utilisateur à la configuration pam_usb en utilisant :

sudo pamusb-conf --add-user USERNAME

USERNAME est l'utilisateur pour lequel vous souhaitez activer l'authentification basée sur USB/carte mémoire.

Le nom d'utilisateur et les informations sur l'appareil sont enregistrés dans /etc/security/pam_usb.conf Fichier.

Vous pouvez maintenant vérifier la configuration pour voir si tout est correct en utilisant :

pamusb-check USERNAME

Il est important de noter que si vous utilisez les packages DEB fournis par le développeur, vous n'avez rien d'autre à configurer. Mais si vous avez installé pam_usb à partir de la source, vous devez ajouter pam_usb au processus d'authentification du système comme expliqué ici.

Pour plus d'options de configuration pam_usb, consultez sa page wiki de configuration.

Configurer pam_usb pour verrouiller l'écran lorsque la clé USB/carte mémoire est retirée (et déverrouiller une fois qu'elle est réinsérée)

pam_usb peut exécuter des commandes à l'aide de pamusb-agent lorsque la clé USB/carte mémoire est insérée ou retirée.

Le wiki pam_usb a un exemple de configuration pour verrouiller l'écran lors du retrait de la clé USB / carte mémoire et le déverrouiller lors de sa réinsertion. Cet exemple ne fonctionne plus sur Gnome (mais il devrait fonctionner sur d'autres environnements de bureau en le remplaçant) gnome-screensaver-command avec cinnamon-screensaver-command pour le bureau Cinnamon, mate-screensaver-command pour le bureau MATE, etc.). [[Edit]]Vous pouvez remplacer cela par xdg-screensaver (Fait partie du xdg-utils Forfait; par exemple. xdg-screensaver lock pour verrouiller l'écran, et xdg-screensaver reset pour le déverrouiller).

Pour que pam_usb verrouille l'écran lorsque la clé USB / carte mémoire est retirée et, une fois l'appareil reconnecté, déverrouille sur les distributions Linux avec système (je n'ai testé cette configuration que sur Gnome avec GDM3, j'utilise la configuration suivante (/etc/security/pam_usb.conf ):

...................................

<user id="USERNAME">

<device>DEVICE_NAME</device>

<!-- When the user "USERNAME" removes the usb device, lock the screen -->

<agent event="lock">

        <cmd>/usr/local/bin/screensaver-lock</cmd>        

    </agent>

    <!-- Resume operations when the usb device is plugged back and authenticated -->

    <agent event="unlock">     

        <cmd>/usr/local/bin/screensaver-unlock</cmd>       

    </agent>

</user>

...................................

Deux scripts sont utilisés pour que cela fonctionne. /usr/local/bin/screensaver-lock est utilisé pour verrouiller l'écran, et /usr/local/bin/screensaver-unlock pour déverrouiller l'écran. Voici leur contenu.

/usr/local/bin/screensaver-lock :

#!/bin/sh

SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`

if [ -n $SESSION ]; then

        loginctl lock-session $SESSION

fi

/usr/local/bin/screensaver-unlock :

#!/bin/sh

SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`

if [ -n $SESSION ]; then

        loginctl unlock-session $SESSION

fi

Remplacer dans les deux USERNAME avec votre nom d'utilisateur.

Vous pourriez également aimer :KDE Connect / GSConnect :Comment verrouiller/déverrouiller votre bureau Linux à l'aide d'un appareil Android

ci-dessus wiki.ubuntuusers.de


Debian
  1. Comment graver un fichier ISO sur une clé USB sous Linux à l'aide d'Etcher

  2. Comment créer une clé USB amorçable à l'aide de la commande dd

  3. Comment gérer les fichiers journaux à l'aide de Logrotate sous Linux

  4. Comment écrire des fichiers journaux dans la RAM à l'aide de Log2ram sous Linux

  5. Comment créer une clé USB Linux amorçable à l'aide d'Ubuntu ou de LinuxMint

Comment installer un Ubuntu complet sur une clé USB

Comment créer une clé USB Ubuntu Live à l'aide de la ligne de commande

Comment protéger par mot de passe un fichier à l'aide de Vim sous Linux

Comment formater une clé USB dans Debian

Comment créer une clé USB amorçable Rocky Linux 8

Comment créer une clé USB amorçable Linux [Tutoriel]