wiki/HowtoPAM.md

54 lines
1.7 KiB
Markdown
Raw Normal View History

2021-08-24 18:19:36 +02:00
PAM (Pluggable Authentication Modules) est un ensemble de librairies qui fournit aux programmes un moyen d'authentification unifié indépendant de la méthode d'authentification configurée sur le système : mots de passe locaux, LDAP...
La configuration de PAM pour les applications qui l'utilisent se situe dans `/etc/pam.d/*`. Chaque application a son fichier de configuration, par exemple `/etc/pam.d/sshd`.
# Syntaxe des fichiers de configuration
Documentation : <https://linux.die.net/man/5/pam.d>
2021-08-24 18:19:36 +02:00
La configuration est constituée de lignes qui ont la forme :
~~~
2021-08-27 14:52:16 +02:00
type control_flag module_path [module_arguments]
2021-08-24 18:19:36 +02:00
~~~
Commentaires :
* type : Module type/context/interface.
* control_flag : Indique à PAM le comportement à adopter en cas d'échec de l'authentification.
* Syntaxe simple (historique) : un seul mot-clé.
* Syntaxe avancée : liste de paires `value=action` entre crochets `[ ]` et séparée par des espaces.
* module_path : Chemin du module pam à utiliser (souvent un .so). Par défaut, PAM les cherche dans `/lib/security/` ou `/lib64/security/` selon l'architecture.
* module-arguments : Arguments passés au module.
2021-08-24 18:19:36 +02:00
# Utilisation concrète
## Vérifier si un programme est capable d'utiliser PAM
Par exemple pour `sshd` :
2021-08-27 14:52:16 +02:00
2021-08-24 18:19:36 +02:00
~~~
$ ldd /usr/sbin/sshd | grep libpam.so
~~~
## Ne pas envoyer les messages de connexion SSH d'un utilisateur
Dans `/etc/pam.d/sshd`, juste avant la ligne :
2021-08-24 18:19:36 +02:00
~~~
# Standard Un*x session setup and teardown.
@include common-session
2021-08-24 18:19:36 +02:00
~~~
On ajoute :
2021-08-24 18:19:36 +02:00
~~~
session [success=ok default=ignore] pam_succeed_if.so quiet service in sshd user = my_user
2021-08-24 18:19:36 +02:00
~~~
Commentaires :
* `quiet` signale à PAM de ne pas logger les messages quand `sshd user = my_user`