Comment utiliser un générateur de code d'authentification pour l'authentification pour les connexions à distance?


55

J'aimerais renforcer l'authentification de mes connexions SSH en ajoutant un autre facteur: un dispositif générateur de code d'authentification ou une application de génération de code d'authentification 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 ceci?

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

Réponses:


49

Une façon de procéder consiste à utiliser un outil fourni par Google appelé Google Authenticator .

  1. Installez libpam-google-authentator Installez libpam-google-authentator

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

    • sudoedit /etc/pam.d/sshd
    • puis incluez cette ligne en haut du fichier et enregistrez:

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

    • sudoedit /etc/ssh/sshd_config puis modifiez l'authentification de la réponse à partir de:

      ChallengeResponseAuthentication no 
      

      à

      ChallengeResponseAuthentication yes
      

      puis enregistrez le fichier.

  4. sudo restart ssh redémarrer SSH

  5. Courir google-authenticator

    • Cela vous donnera votre clé secrète, votre code de vérification et vos codes de grattage d'urgence. Il vous posera également des questions limitant le taux.

Applications mobiles:

Vous en aurez besoin d'un pour pouvoir recevoir le code d'authentification sur un autre appareil.

Connexes et utiles:

Notez que la combinaison d'un mot de passe avec des codes à usage unique est une authentification à deux facteurs: elle associe «ce que vous savez» (un mot de passe) à «ce que vous avez» (le générateur de code). D'autre part, si vous combinez des codes d'accès à usage unique avec une paire de clés SSH, tout dépend de «ce que vous avez». Lorsque deux facteurs d'authentification sont du même type, vous ne disposez pas d'une authentification à deux facteurs. cela s'appelle parfois «authentification à un facteur et demi».


12

Google Authenticator convient à vos serveurs personnels, mais vous constaterez peut-être que cela ne correspond pas bien à votre infrastructure d'identité existante. Si vous souhaitez explorer d'autres options, envisagez d'utiliser RADIUS comme protocole d'authentification et le plug-in pam-radius. Tous les systèmes d'authentification à deux facteurs orientés entreprise prennent en charge le rayon. Nous avons écrit une documentation sur la manière d'ajouter une authentification à deux facteurs WiKID via pam-radius à Ubuntu .

L'utilisation de radius vous permet de relier d'autres systèmes que SSH au même serveur d'authentification. Vous pouvez également router 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 la même chose avec AD btw.


1

J'exhorte tout le monde à mettre la ligne suivante en haut et non au bas de /etc/pam.d/sshdcomme décrit ci-dessus précédemment (maintenant corrigée):

auth required pam_google_authenticator.so

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

On vous demandera d’abord votre code de vérification, puis votre mot de passe (que le code soit correct ou non). Si l’un ou l’autre est faux, vous devez les saisir à nouveau. Vous pouvez le configurer à l’inverse mais c’est un changement un peu plus difficile à décrire dans la configuration par défaut actuelle de ubuntu (15.04) sshd.

Pour savoir pourquoi c'est nécessaire, vérifiez ce problème:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.