Chapitre 21. Authentification avec PAM

Table des matières

21.1. Structure d'un fichier de configuration PAM
21.2. La configuration PAM de sshd
21.3. Configuration des modules PAM
21.4. Informations complémentaires

Résumé

PAM (en anglais, Pluggable Authentication Modules) est utilisé sous Linux pour la communication entre les utilisateurs et les applications lors de l'authentification. Les modules PAM sont disponibles centralement et peuvent être appelés de chaque application. Le contenu de ce chapitre a pour but de montrer comment cette authentification modulaire se configure et comment elle fonctionne.

Les administrateurs et les développeurs désirent limiter l'accès à des domaines spécifiques du système ou l'utilisation de certaines fonctions d'une application. Sans PAM, il faudrait adapter chaque application à toute nouvelle méthode d'authentification telle que LDAP ou Samba. Cette façon de faire coûte cher en temps et augmente les risques d'erreur. L'idée est donc de séparer l'authentification de l'application et de la déléguer à un module central : cela permet d'éviter ces inconvénients. Si une nouvelle méthode d'authentification doit être mise en oeuvre, il suffit d'adapter ou de développer un module PAM que l'application peut utiliser.

Il existe un fichier de configuration propre pour chaque programme qui utilise PAM, sous /etc/pam.d/<service>. On détermine dans ce fichier la liste du ou des modules PAM utilisés pour l'authentification des utilisateurs. Une configuration globale de la plupart des modules PAM se trouve sous /etc/security et détermine le comportement exact du module concerné (par exemple, pam_env.conf, pam_pwcheck.conf, pam_unix2.conf et time.conf). Une application qui utilise un module PAM appelle une séquence de fonctions PAM qui traitent les informations des divers fichiers de configuration et transmettent le résultat à l'application.

21.1. Structure d'un fichier de configuration PAM

Chaque ligne d'un fichier de configuration PAM contient un maximum de quatre colonnes :

<Type de module> <Fanion de contrôle> <Chemin du module> <Options>

Les modules PAM sont traités en pile. Les divers modules ont des tâches différentes. Un module se charge de la vérification des mots de passe, un autre vérifie la provenance d'un accès et un autre interroge des paramètres spécifiques à l'utilisateur. PAM connaît quatre type de modules :

auth

Les modules de ce type servent à vérifier si l'utilisateur est authentifié. Cette vérification se fait traditionnellement par une demande de mot de passe, mais peut également s'effectuer par carte à puce ou par des informations biométriques (empreintes digitales, rétinienne, etc).

account

Les modules de ce type vérifient si l'utilisateur est autorisé à utiliser le service demandé. Par exemple, personne ne devrait pouvoir se connecter à un système alors que son compte a expiré.

password

Les modules de ce type servent à la modification des données d'authentification. Dans la plupart des cas, il s'agit d'un mot de passe.

session

Les modules de ce type servent à l'administration et à la configuration de sessions utilisateur. Ces modules sont activés avant et après l'authentification, de manière à journaliser les tentatives de connexion et à configurer l'environnement de l'utilisateur (chemin d'accès au courrier électronique, répertoire personnel, limites systèmes, etc).

La deuxième colonne contient un indicateur de contrôle qui influence le comportement des modules démarrés :

required

L'authentification ne peut continuer que si le module réussit son exécution. En cas d'erreur lors de l'exécution d'un module ayant l'indicateur required, les autres modules sont également exécutés, avant que les utilisateurs ne reçoivent l'information que la tentative d'authentification n'a pas aboutit.

requisite

Les modules doivent réussir leur exécution de la même manière que dans le cas de required. Cependant, lors d'une erreur, l'échec est immédiatement communiqué à l'utilisateur sans exécuter d'autres modules. En cas de succès, les modules suivants sont exécutés de la même manière que dans le cas de required. Cet indicateur peut servir de filtre simple, de manière à garantir que toutes les conditions requises pour une authentification correcte soient nécessaires.

sufficient

Si un module de ce type s'exécute avec succès, le programme appelant obtient immédiatement l'information que l'authentification a réussi et aucun autre module n'est exécuté, dans la mesure où aucun module précédemment exécuté sans succès ne portait l'indicateur required. Si l'exécution d'un module ayant l'indicateur sufficient est sans succès, cela n'a aucune conséquence directe, les modules suivants sont simplement traités dans l'ordre.

optional

La réussite ou l'échec n'a pas d'effet. Cette propriété peut être par exemple utilisé pour un module qui n'est destiné qu'à afficher des messages (par exemple, informer l'utilisateur de la réception d'un courrier électronique) et ne procède à aucune autre action.

include

Si cet indicateur est présent, le fichier spécifié en tant qu'argument est inséré ici.

Le chemin du module n'est pas spécifié s'il réside dans le répertoire par défaut /lib/security (respectivement sous /lib64/security pour toutes les plateformes 64 bits prises en charge par SUSE LINUX). La quatrième colonne peut contenir une option du module, comme par exemple debug (mode de débogage) ou nullok (permet l'utilisation de mots de passe vides).


SUSE LINUX Guide de l'administrateur 9.2