5 votes

Utiliser une structure AND/OR plus complexe avec PAM

PAM permet d'utiliser sufficent y required pour une certaine logique, comme

auth sufficient pam_a.so
auth required pam_b.so
auth required pam_c.so

ce qui signifierait "soit a est vrai, soit b doit être vrai et alors c doit être vrai".

Est-il possible de faire des opérations plus complexes, comme "(a ou b) et (c ou d)" ou "(a et b) ou (c et d)" ? Peut-être avec encore plus de couches de parenthèses.

5voto

Oui, il est logique de pouvoir sauter un nombre arbitraire de lignes. Il n'y a pas de "parenthèses de regroupement" ou quoi que ce soit de ce genre, mais si vous combinez la logique que vous venez de mentionner avec la possibilité de sauter des lignes, vous pouvez exclure des comportements de manière sélective.

Voici un exemple tiré de mon serveur personnel :

# Skip Google authenticator check if they're coming from a local IP.
auth    [success=1 default=ignore] pam_access.so accessfile=/etc/security/access/nogoogle.conf noaudit
auth    required        pam_google_authenticator.so nullok

Je n'ai pas vraiment besoin d'une authentification à deux facteurs si l'adresse IP source provient de mon réseau local. pam_access.so pour sauter exactement une ligne en cas de succès. Si la vérification échoue, rien ne se passe et la ligne suivante est vérifiée.

Vous trouverez plus d'informations à ce sujet dans le pam.conf page de manuel. Recherchez "value1". La section commence ainsi :

  For the more complicated syntax valid control values have the following form:

            [value1=action1 value2=action2 ...]

  Where valueN corresponds to the return code from the function invoked in the
  module for which the line is defined.
  ...

Gardez à l'esprit que cette logique est beaucoup plus complexe, et que si des personnes modifient vos configurations PAM sans remarquer la présence du saut de ligne, elles peuvent provoquer toutes sortes de chaos en ajoutant ou en supprimant des lignes au mauvais endroit.

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