PAM - Pluggable Authentication Modules

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Informations de base

PAM (Pluggable Authentication Modules) agit comme un mécanisme de sécurité qui vérifie l'identité des utilisateurs tentant d'accéder aux services informatiques, contrôlant leur accès en fonction de divers critères. Il est semblable à un gardien numérique, garantissant que seuls les utilisateurs autorisés peuvent interagir avec des services spécifiques tout en limitant potentiellement leur utilisation pour éviter les surcharges système.

Fichiers de configuration

  • Les systèmes Solaris et UNIX utilisent généralement un fichier de configuration central situé à /etc/pam.conf.

  • Les systèmes Linux préfèrent une approche basée sur les répertoires, stockant les configurations spécifiques aux services dans /etc/pam.d. Par exemple, le fichier de configuration pour le service de connexion se trouve à /etc/pam.d/login.

Un exemple de configuration PAM pour le service de connexion pourrait ressembler à ceci:

auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so

Royaumes de Gestion PAM

Ces royaumes, ou groupes de gestion, comprennent auth, account, password et session, chacun étant responsable de différents aspects du processus d'authentification et de gestion de session :

  • Auth : Valide l'identité de l'utilisateur, souvent en demandant un mot de passe.

  • Account : Gère la vérification du compte, vérifiant des conditions telles que l'appartenance à un groupe ou les restrictions horaires.

  • Password : Gère les mises à jour de mot de passe, y compris les vérifications de complexité ou la prévention des attaques par dictionnaire.

  • Session : Gère les actions au début ou à la fin d'une session de service, telles que le montage de répertoires ou la définition de limites de ressources.

Contrôles des Modules PAM

Les contrôles dictent la réponse du module en cas de succès ou d'échec, influençant le processus d'authentification global. Ceux-ci incluent :

  • Requis : L'échec d'un module requis entraîne éventuellement un échec, mais seulement après vérification de tous les modules suivants.

  • Requis : Arrêt immédiat du processus en cas d'échec.

  • Suffisant : Le succès contourne le reste des vérifications du même royaume à moins qu'un module ultérieur ne échoue.

  • Optionnel : Ne provoque un échec que s'il est le seul module dans la pile.

Scénario Exemple

Dans une configuration avec plusieurs modules d'authentification, le processus suit un ordre strict. Si le module pam_securetty trouve le terminal de connexion non autorisé, les connexions root sont bloquées, mais tous les modules sont toujours traités en raison de son statut "requis". Le module pam_env définit des variables d'environnement, aidant potentiellement à l'expérience utilisateur. Les modules pam_ldap et pam_unix travaillent ensemble pour authentifier l'utilisateur, pam_unix tentant d'utiliser un mot de passe précédemment fourni, améliorant ainsi l'efficacité et la flexibilité des méthodes d'authentification.

Références

Dernière mise à jour