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 plus un générateur de code, ceci fournit authentification à deux facteurs (2FA): le mot de passe est "ce que je sais" et le code est "ce que j'ai".
Une façon de faire est d'utiliser un outil fourni par Google appelé Google Authenticator .
Installer libpam-google-authentator
Sudo apt-get install libpam-google-authenticator
Éditez /etc/pam.d/sshd
pour inclure le module:
sudoedit /etc/pam.d/sshd
puis incluez cette ligne en haut du fichier et enregistrez:
auth required pam_google_authenticator.so
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.
Sudo restart ssh
pour redémarrer SSH
Exécutez google-authenticator
Vous aurez besoin de l’un d’eux pour recevoir le code d’authentification sur un autre appareil.
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'accès). 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".
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, pensez à 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 façon d'ajouter authentification à deux facteurs WiKID via pam-radius pour Ubunt .
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.
J'exhorte tout le monde à mettre la ligne 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, 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 actuelle par défaut de ubuntu (15.04) sshd.
Pour savoir pourquoi c'est nécessaire, vérifiez ce problème: