Disons que j'ai configuré sshd
(lié à libpam.so.0
bibliothèque partagée) pour utiliser PAM et j'ai suivi /etc/pam.d/sshd
contenu :
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_unix.so try_first_pass
auth required pam_google_authenticator.so
account requisite pam_nologin.so
account required pam_unix.so try_first_pass
password requisite pam_cracklib.so
password required pam_unix.so use_authtok nullok shadow try_first_pass
session required pam_loginuid.so
session required pam_limits.so
session required pam_unix.so try_first_pass
session optional pam_umask.so
session optional pam_systemd.so
session optional pam_env.so
session optional pam_lastlog.so silent noupdate showfailed
Ai-je raison de dire que PAM informe sshd
sur le succès ou l'échec à la fin de chaque pile ? Alors d'abord auth
les installations sont traitées puis le résultat est renvoyé à sshd
, puis account
les installations sont traitées et résultent de account
la pile est renvoyée à sshd
, etc? PAM est-il informé par le démon lorsque la session authentifiée se termine ?
Réponse acceptée :
Dans un sens, c'est ce qui se passe, mais je ne le formulerais pas de cette façon.
Parce que PAM n'informe pas activement sshd, mais plutôt sshd demande à PAM via des appels de fonction (comme pam_authenticate
, pam_acct_mgmt
, etc.) et agit en fonction des résultats. PAM ne sait pas non plus automatiquement quand une session est fermée, mais doit être informé via pam_close_session
(puisqu'une session peut être fermée depuis une autre application).
Vous pouvez rechercher le code source d'openssh afin de comprendre où et comment sshd utilise PAM. Je recommanderais également le Guide des développeurs d'applications Linux-PAM si vous êtes intéressé par les détails.