4 votes

Qu'est-ce que PAM (Pluggable Authentication Modules) sous Linux ?

Qu'est-ce que PAM (Pluggable Authentication Modules) dans Linux? Je sais qu'il est utilisé pour l'authentification, mais en quoi est-ce utile? Comment fonctionne-t-il?

Je suis en train d'utiliser CentOS 6.2.

7voto

bahamat Points 5456

En résumé, PAM signifie Pluggable Authentication Modules.

Comme son nom l'indique, il utilise une architecture de style plug-in. PAM permet à chaque programme de ne pas avoir à implémenter son propre mécanisme d'authentification. Au lieu de cela, il vérifie simplement la pile PAM.

Comme PAM est pluggable, vous pouvez configurer la pile d'authentification comme vous le souhaitez. L'authentification contre LDAP, NIS, RADIUS, MySQL, Oracle, BerkelyDB, SQLite, jetons RSA, certificats x509, fichiers plats, mots de passe à usage unique, Google à deux facteurs, des phases de la lune, etc. peuvent tous être configurés dans n'importe quelle combinaison.

PAM peut également déclencher des actions telles que le montage de systèmes de fichiers, la création de répertoires, la journalisation, ou toute autre action lorsque la pile est activée, échoue ou réussit.

PAM est le couteau suisse de l'authentification, offrant une flexibilité infinie pour personnaliser l'authentification de n'importe quelle manière nécessaire, pour n'importe quelle application.

Sans lui, chaque programme devrait supporter indépendamment toutes ces fonctionnalités, et ce serait un monde triste en effet.

6voto

Peut-être que cette présentation vous donne tout ce que vous souhaitez savoir ou constitue un bon point de départ pour en savoir plus : http://www.linux-pam.org/Linux-PAM-html/sag-overview.html

Certaines citations :

Linux-PAM gère quatre types distincts de tâches de (gestion). Il s'agit de : gestion de l'authentification ; gestion des comptes ; gestion des sessions ; et gestion des mots de passe.

    Voici un schéma qui décrit l'organisation globale de Linux-PAM :

  +----------------+
  | application: X |
  +----------------+       /  +----------+     +================+
  | authentification-[---->--\--] Linux-   |--<--| Fichier de configuration PAM|
  |       +        [----<--/--]   PAM    |     |================|
  |[conversation()][--+    \  |          |     | X auth .. a.so |
  +----------------+  |    /  +-n--n-----+     | X auth .. b.so |
  |                |  |       __|  |           |           _____/
  |  utilisateur de service  |  A      |     | X auth .. c.so |
  |                |  |      V     A
  +----------------+  +------|-----|---------+ -----+------+
                         +---u-----u----+    |      |      |
                         |   auth....   |--[ a ]--[ b ]--[ c ]
                         +--------------+
                         |   grades....   |--[ b ]--[ d ]
                         +--------------+
                         |   mot de passe   |--[ b ]--[ c ]
                         +--------------+
                         |   session    |--[ e ]--[ c ]
                         +--------------+

5voto

Ori Points 1287

PAM est un framework qui aide les applications à effectuer ce que j'appellerai des "activités liées à l'authentification". Les éléments principaux de PAM sont une bibliothèque (libpam) et une collection de modules PAM, qui sont des fichiers de bibliothèques dynamiques (.so) dans le dossier /lib/security.

REMARQUE

1.Sauvegardez toutes les données et fichiers de configuration PAM avant toute modification.

2.Veuillez faire attention lors de l'exécution de l'option de configuration. Une mauvaise configuration peut verrouiller tout l'accès à la connexion, y compris l'accès root.

3.Lisez correctement la syntaxe de PAM.

Voici quelques exemples, faites attention lorsque vous les essayez.

Permettre à n'importe quel utilisateur de se connecter en tant que root sans mot de passe.

Pour cela, modifiez le fichier /etc/pam.d/su et commentez toutes les lignes concernant la pile d'authentification, en les remplaçant par la ligne unique :

auth sufficient pam_permit.so

Pour tester ceci, connectez-vous en tant qu'utilisateur normal et vérifiez que vous pouvez maintenant utiliser su - pour devenir root sans fournir de mot de passe.

\[raj@avi ~\]$ su -
\[root@avi ~\]#

Désactiver la connexion directe en tant que root

REMARQUE: Avant de faire cela, assurez-vous d'avoir au moins un compte qui peut utiliser su pour devenir root, sinon vous risquez de vous retrouver bloqué hors de la machine.

Pour désactiver les connexions root sur les terminaux virtuels, modifiez le fichier /etc/pam.d/login et ajoutez l'entrée.

auth required pam_securetty.so

Ce module empêchera la connexion root sur les périphériques de terminal qui ne sont pas répertoriés dans /etc/securetty.

tty1
#tty2
#tty3
tty4
tty5

Si vous commentez #tty2 et #tty3, alors à partir des terminaux virtuels tty2 et tty3, il n'est pas possible de se connecter directement en tant que root.

Empêcher les utilisateurs non-root de mettre le système hors tension

En prenant la configuration PAM de la commande halt comme exemple, modifiez le fichier /etc/pam.d/halt. comme ceci

auth sufficient pam_rootok.so

auth required pam_deny.so

Pour tester ceci, connectez-vous en tant qu'utilisateur normal et essayez la commande halt, vous obtiendrez alors l'erreur ci-dessous.

\[test2@avi ~\]$ halt
halt: Need to be root
\[test2@avi ~\]$

Il ne s'agit que de quelques exemples.

source d'origine source

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X