16.4. Exemples de fichiers de configuration PAM
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 pour l'authentification de la connexion (ou login).
auth required pam_securetty.so |
Ce module permet de 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 � saisir un mot de passe, puis le v�rifie � l'aide des informations stock�es dans /etc/passwd et s'il existe, consulte /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 obtenir 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. Cette derni�re consiste � v�rifier l'existence du fichier /etc/nologin. Si nologin existe et que l'utilisateur n'est pas le super-utilisateur (ou root), l'authentification �choue.
| Remarque |
---|
| Dans cet exemple, les trois modules auth font l'objet d'une v�rification, 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 pourraient plus facilement d�duire de mani�re la plus efficace de p�n�trer dans le syst�me. |
account required pam_unix.so |
Ce module effectue toute v�rification de compte 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 bon exemple montrant 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. � la place, il accepte tout mot de passe enregistr� dans le module de mots de passe pr�c�dent. 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. Au d�but et � la fin de chaque session, ce module enregistre dans /var/log/messages le nom d'utilisateur ainsi que le type de service. Un empilage avec d'autres modules de session permet d'obtenir une fonctionnalit� plus avanc�e.
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 mesures de s�curit� de l'application.
| Astuce |
---|
| Pour �tablir une connexion � distance en tant que super-utilisateur, utilisez OpenSSH � la place. Pour obtenir davantage d'nformations sur le sujet, consultez le Chapitre 20. |
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 infructueuse 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 telle qu'elle 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. |