Table des matières

Pour quoi faire ?

Les PAM (pluggable module authentification) est un moyen modulable d'authentifier des utilisateurs. On peut ainsi définir des stratégies sans avoir à recompiler les programmes qui supportent PAM. En fait PAM, évite que chaque application ne vous redemande une authentification avec des règles différentes à chaque fois. Avez vous besoin de toucher à cela? La plupart du temps non, mais si vous souhaitez renforcer la sécurité (obliger des mots de passe qui ne sont pas dans un dictionnaire par exemple), l'uniformiser ou adopter une autre méthode d'authentification (ldap par exemple) alors la réponse est oui.

L'installation

Il est installé sur tous les unix - linux par défaut. Toutefois il existe des petites différences. Dans certains cas on trouve l'ensemble de la configuration dans /etc/pam.conf (BSD), sous RedHat, Mandrake on a un fichier par service dans /etc/pam.d/. Si le fichier /etc/pam.d correspondant existe le fichier /etc/pam.conf est ignoré. Le fichier principal dans le cas de l'existence de /etc/pam.d est system-auth. Les modules appelés dans les différents fichiers de configuration se trouvent dans /lib/security (ou /usr/lib/) cela dépend de la distribution. Vérifiez donc que le module que vous souhaitez utiliser existe. Enfin on trouve dans /etc/security des fichiers complémentaires (access.conf, group.conf, limits.conf, time.conf) utilisés par certaines applications.

La syntaxe de configuration

Il y a une petite différence si vous avez cela dans pam.conf ou dans /etc/pam.d, mais le principe est le même.

login auth required /lib/security/pam_securetty.so
login account requisite /lib/security/pam_roles.so

Voilà deux lignes seulement pour vous montrer la syntaxe. Le premier champ indique le nom de l'application. Il n'existe que pour le fichier pam.conf. Le deuxième indique le type de module. Il peut prendre les valeurs suivantes :

comportement du module

L'ordre dans lequel les modules de type required sont appelés n'est pas primordial. Les indicateurs de contrôles sufficient et requisite en revanche, donnent à l'ordre une importance vitale.

Modules à connaître

Vous pouvez associer quelques options dont : nullock pour autoriser un mot de passe vide, md5 pour le type de cryptage, debug pour loguer les informations à syslog, remember=n pour ce souvenir des n derniers mots de passe utilisés.

Arguments

Exemple

Voici le fichier /etc/pam.d/login.

#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_unix.so shadow nullok
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_unix.so shadow nullok use_authtok
session required /lib/security/pam_unix.so

7 Les liens

Page de man en français : http://www.delafond.org/traducmanfr/man/man8/pam.8.html Reference : http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html