55 votes

Comment puis-je utiliser un générateur de codes d'accès pour l'authentification des connexions à distance ?

J'aimerais renforcer l'authentification de mes connexions SSH en ajoutant un autre facteur : un dispositif de génération de codes de passe, ou une application de génération de codes de passe sur mon téléphone portable. Les seules options évidentes dans la configuration par défaut sont un mot de passe fixe et une paire de clés. Comment puis-je faire cela ?

(Si j'utilise un mot de passe plus un générateur de code, cela donne authentification à deux facteurs (2FA) : le mot de passe est "ce que je sais", et le code de passe est "ce que j'ai").

49voto

Joshua McKinnon Points 12379

L'un des moyens d'y parvenir est un outil fourni par Google appelé Google Authenticator .

  1. Installer libpam-google-authenticator Install libpam-google-authenticator

    • ou simplement sudo apt-get install libpam-google-authenticator
  2. Modifier /etc/pam.d/sshd pour inclure le module :

    • sudoedit /etc/pam.d/sshd
    • puis inclure cette ligne à la haut du dossier et sauvegarder :

      auth required pam_google_authenticator.so
  3. Modifiez votre fichier de configuration SSH pour activer le défi :

    • sudoedit /etc/ssh/sshd_config et ensuite changer l'authentification de la réponse de :

      ChallengeResponseAuthentication no 

      a

      ChallengeResponseAuthentication yes

      puis enregistrez le fichier.

  4. sudo restart ssh pour redémarrer SSH

  5. Exécuter google-authenticator

    • Vous obtiendrez ainsi votre clé secrète, votre code de vérification et vos codes à gratter d'urgence. Il vous posera également quelques questions sur la limitation du taux.

Applications mobiles :

Vous aurez besoin de l'un d'entre eux pour recevoir le code d'authentification sur un autre appareil.

Relié et utile :

Notez que la combinaison d'un mot de passe et de codes à usage unique constitue une authentification à deux facteurs : elle combine "ce que vous savez" (un mot de passe) avec "ce que vous avez" (le dispositif générateur de codes). D'autre part, si vous combinez des codes de passe à usage unique avec une paire de clés SSH, il s'agit de "ce que vous avez". Lorsque deux facteurs d'authentification sont du même type, vous n'avez pas d'authentification à deux facteurs ; on parle parfois d'"authentification à un et demi-facteur".

12voto

Feanor Points 1754

Google Authenticator est parfait pour vos serveurs personnels, mais vous risquez de trouver qu'il ne s'intègre pas bien à votre infrastructure d'identité existante. Si vous souhaitez explorer d'autres options, pensez à utiliser RADIUS comme protocole d'authentification et le plugin pam-radius. Tous les systèmes d'authentification à deux facteurs orientés entreprise prennent en charge radius. Nous avons écrit une documentation sur la façon d'ajouter Authentification à deux facteurs WiKID via pam-radius pour Ubuntu .

L'utilisation de radius vous permet de relier d'autres systèmes que SSH au même serveur d'authentification. Vous pouvez également acheminer les demandes d'authentification via freeradius vers LDAP, puis vers votre serveur 2FA afin de séparer l'autorisation de l'authentification. Vous pouvez faire de même avec AD btw.

1voto

Maarten Points 571

Je demande instamment à tout le monde de mettre la ligne suivante à l'adresse suivante en haut et non en bas de /etc/pam.d/sshd comme décrit précédemment (maintenant corrigé) :

auth required pam_google_authenticator.so

Sinon, votre système restera ouvert aux attaques par force brute sur votre mot de passe, compromettant ainsi la première partie de l'authentification à deux facteurs : votre mot de passe.

Il vous sera demandé d'abord votre code de vérification, puis votre mot de passe (même si le code est correct). Si l'un ou l'autre est incorrect, vous devrez les saisir à nouveau. Vous pouvez le configurer dans l'autre sens mais c'est un changement un peu plus difficile à décrire dans la configuration actuelle par défaut de ubuntu (15.04) sshd.

Pour savoir pourquoi il est nécessaire, consultez ce numéro :

https://github.com/google/google-authenticator/issues/514

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X