Red Hat Linux 9: Guide de référence de Red Hat Linux | ||
---|---|---|
Prev | Chapter 14. Modules d'authentification enfichables (PAM) | Next |
Ci-dessous figure un exemple de fichier de configuration PAM:
#%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 retry=3 password required /lib/security/pam_unix.so shadow nullok use_authtok session required /lib/security/pam_unix.so |
La première ligne est un commentaire, comme l'indique le caractère dièse (#) placé au début de la ligne.
Les lignes deux à quatre empilent trois modules à utiliser pour l'authentification de connexion.
auth required /lib/security/pam_securetty.so |
Ce module sert à s'assurer que, si l'utilisateur essaie de se connecter en tant que super-utilisateur (ou root), le terminal tty sur lequel il se connecte fait bien partie de la liste se trouvant dans le fichier /etc/securetty, si ce fichier existe.
auth required /lib/security/pam_unix.so shadow nullok |
Ce module invite l'utilisateur à fournir un mot de passe, puis le vérifie à l'aide des informations stockées dans /etc/passwd et vérifie s'il existe dans /etc/shadow. Le module pam_unix.so détecte et utilise automatiquement les mots de passe masqués pour authentifier les utilisateurs. Reportez-vous à Section 6.5 Mots de passe masqués pour plus d'informations sur les mots de passe masqués.
L'argument nullok donne l'instruction au module pam_unix.so d'autoriser un mot de passe vide.
auth required /lib/security/pam_nologin.so |
Il s'agit de la dernière phase du processus d'authentification. Elle vérifie l'existence du fichier /etc/nologin. Si nologin n'existe pas et que l'utilisateur n'est pas un super-utilisateur (ou root), l'authentification échoue.
![]() | Remarque |
---|---|
Dans cet exemple, les trois modules auth sont vérifiés, même si le premier module auth échoue. De cette façon, l'utilisateur ne peut pas savoir à quel moment l'authentification a échoué. Si des agresseurs venaient à connaître ces informations, ils pourrait plus facilement déduire de quelle façon pénétrer dans le système. |
account required /lib/security/pam_unix.so |
Ce module effectuer toute vérification de compte lorsque cela est nécessaire. Par exemple, si des mots de passe masqués ont été activés, l'élément compte du module pam_unix.so vérifiera si le compte a expiré ou si l'utilisateur a changé son mot de passe pendant le délai de grâce alloué.
password required /lib/security/pam_cracklib.so retry=3 |
Si un mot de passe n'est plus valable, l'élément mot de passe du module pam_cracklib.so invite l'utilisateur à en fournir un nouveau. Il vérifie ensuite le mot de passe créé afin de déterminer s'il peut être facilement retrouvé par un programme de craquage de mots de passe basé sur des dictionnaires. Si le test du mot de passe échoue, le programme donne à l'utilisateur deux autres possibilités de créer un mot de passe sûr, comme il l'est précisé dans l'argument retry=3.
password required /lib/security/pam_unix.so shadow nullok use_authtok |
Cette ligne spécifie que, si le programme change le mot de passe de l'utilisateur, il doit le faire en utilisant l'élément password du module pam_unix.so. Ceci se produit uniquement si la partie auth du module pam_unix.so détermine que le mot de passe doit être changé.
L'argument shadow donne l'instruction au module de créer des mots de passe masqués lors de la mise à jour du mot de passe d'un utilisateur.
L'argument nullok donne l'instruction au module d'autoriser l'utilisateur à changer son mot de passe à partir d'un mot de passe vide; sinon, un mot de passe non-valide est traité comme un verrouillage de compte.
Le dernier argument de cette ligne, use_authtok, est un exemple illustrant bien l'importance de l'ordre lors de l'empilage de modules PAM. Cet argument indique au module de ne pas demander à l'utilisateur un nouveau mot de passe. Au lieu de cela, il accepte tous les mots de passe qui ayant été enregistrés dans le précédent module de mots de passe. De cette façon, tous les nouveaux mots de passe doivent passer le test de sécurité pam_cracklib.so avant d'être acceptés.
session required /lib/security/pam_unix.so |
La dernière ligne spécifie que l'élément session du module pam_unix.so gérera la session. Ce module enregistre dans /var/log/messages le nom d'utilisateur ainsi que le type de service au début et à la fin de chaque session. Il peut être complété en l'empilant avec d'autres modules de session si vous désirez obtenir une fonctionnalité supplémentaire.
L'exemple de fichier de configuration ci-dessous illustre l'empilage du module auth pour le programme rlogin.
#%PAM-1.0 auth required /lib/security/pam_nologin.so auth required /lib/security/pam_securetty.so auth required /lib/security/pam_env.so auth sufficient /lib/security/pam_rhosts_auth.so auth required /lib/security/pam_stack.so service=system-auth |
Tout d'abord, pam_nologin.so vérifie l'existence de /etc/nologin. S'il existe, seul le super-utilisateur (ou root) se voit autoriser la connexion.
auth required /lib/security/pam_securetty.so |
Le module pam_securetty.so empêche les connexions en tant que super-utilisateur sur des terminaux non-sécurisés. Ce faisant, toute tentative d'accès au module rlogin est rejetée en raison des précautions de sécurité.
![]() | Astuce |
---|---|
Pour établir une connexion en tant que super-utilisateur, utilisez OpenSSH à la place. Pour plus d'informations sur le protocole SSH, consultez Chapter 18 Protocole SSH. |
auth required /lib/security/pam_env.so |
Cette ligne charge le module pam_env.so, qui définit les variables d'environnement spécifiées dans /etc/security/pam_env.conf.
auth sufficient /lib/security/pam_rhosts_auth.so |
Le module pam_rhosts_auth.so authentifie ensuite l'utilisateur à l'aide de .rhosts dans le répertoire personnel de l'utilisateur. En cas de réussite, PAM authentifie immédiatement la session. En revanche, si pam_rhosts_auth.so échoue lors de l'authentification de l'utilisateur, cette tentative non-réussie n'est pas prise en compte.
auth required /lib/security/pam_stack.so service=system-auth |
Si le module pam_rhosts_auth.so ne réussit pas à authentifier l'utilisateur, le module pam_stack.so exécute une authentification normale avec mot de passe.
L'argument service=system-auth indique que l'utilisateur doit passer à travers la configuration PAM pour l'authentification système qui se trouve dans /etc/pam.d/system-auth.
![]() | Astuce |
---|---|
Pour éviter que PAM n'invite l'utilisateur à fournir un mot de passe lorsque la vérification securetty échoue, changez l'indicateur du module pam_securetty.so de required à requisite. |