Et PAM le SSH !!
Par Fred le jeudi 1 novembre 2012, 20:21 - Système et réseau - Lien permanent
M'amusant à me connecter en SSH depuis mon portable sur mon ordi fixe, j'ai constaté un comportement curieux qui m'a largement foutu les boules :D
En effet, comme à mon habitude, j'ai foiré mon premier essai de mot de passe. Jusque là, il n'y a rien d'exceptionnel.
Le truc exceptionnel est que j'ai pu ouvrir ma session avec un mot de passe faux !!!!
Comme je venais en plus d'avoir un message me précisant que l'empreinte[1] avait changé, j'ai commencé à psychoter mais... Mais il était tard alors je suis allé me coucher :D
Notes
[1] Fingerprint pour les anglophones
Je ne pouvant quand même pas en rester là alors je viens de regarder.
Dans un billet précédent, j'avais expliqué comme j'avais mis en place l'OTP grâce à PAM.
Vu que là, ça passait direct, je l'ai tout de suite soupçonné celui-là et j'ai eu raison.
Ma configuration était la suivante :
# # PAM configuration for the "sshd" service # # auth auth sufficient pam_opie.so no_warn auth requisite pam_opieaccess.so no_warn allow_local auth sufficient pam_unix.so no_warn try_first_pass #auth sufficient pam_krb5.so no_warn try_first_pass #auth sufficient pam_ssh.so no_warn try_first_pass #Mis en place de l'OTP en seconde passe #auth required pam_unix.so no_warn try_first_pass
Comme vous pouvez le voir, j'avais mis des commentaires...Inutiles.
Alors un peu d'explication ne fait pas de mal.
Tout ça veut dire que l'on commence par OPIE, si cela échoue, on passe par opieaccess qui détient une liste des hôtes autorisés à ce connecter sans passer par OPIE. Cette dernière configuration est intéressante car elle permet de se connecter depuis les réseaux locaux avec ce qui suit et mais aux réseaux autres[1]. La dernière ligne dit simplement que l'on utilise le mot de passe unix classique... Mais l'astuce vient de sufficient.
Comme documenté sur la page de FreeBSD qui va bien, si ça marche, on s'arrête et hop, on est connecté. Par contre, si ça foire, on continue, en l'occurrence, vers rien.
Et là, ça a marché !!!!
En effet, en sufficient, si le module a foiré, il est ignoré. On a donc pam_opie qui foire, pam_opieaccess qui réussit et pam_unix qui foire. Résultat, tous les modules non optionnels ont réussi et donc on est autorisé !!
Du coup, en relisant bien la page sus-citée, j'ai pu lire que, quand c'est la dernière option, il vaut mieux utiliser :
auth binding pam_unix.so no_warn try_first_pass
Donc comme dirait Dora l'exploratrice:
Allons-y let's go, c'est parti les amis !!
Et ben, voilà, ça a marché et c'est logique !!
Décidemment, FreeBSD c'est trop fort :D
Notes
[1] En clair, le grand Ternet