Red Hat Enterprise Linux 3: Guide de référence | ||
---|---|---|
Précédent | Chapitre 15. Modules d'authentification enfichables (PAM) | Suivant |
Ci-dessous figure un exemple de fichier de configuration PAM :
#%PAM-1.0 auth required pam_securetty.so auth required pam_unix.so shadow nullok auth required pam_nologin.so account required pam_unix.so password required pam_cracklib.so retry=3 password required pam_unix.so shadow nullok use_authtok session required 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 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 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 à la Section 6.5 pour davantage d'informations.
L'argument nullok donne l'instruction au module pam_unix.so d'autoriser un mot de passe vide.
auth required 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 existe 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 pam_unix.so |
Ce module effectue 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 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 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 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 pam_nologin.so auth required pam_securetty.so auth required pam_env.so auth sufficient pam_rhosts_auth.so auth required 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 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 le Chapitre 19. |
auth required 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 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 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. |
Précédent | Sommaire | Suivant |
Format des fichiers de configuration PAM | Niveau supérieur | Création des modules PAM |