3 votes

Comment mettre en cache l'authentification sous Linux en utilisant l'authentification PAM/Kerberos (pour CVS) ?

Nous avons plusieurs serveurs Linux qui authentifient les mots de passe des utilisateurs Linux sur notre serveur Windows Active Directory en utilisant PAM et Kerberos 5. La distribution Linux que nous utilisons est CentOS 6.

Sur un système, nous avons plusieurs systèmes de contrôle de version comme CVS et Subversion, qui authentifient tous les deux les utilisateurs via PAM, de sorte que les utilisateurs peuvent utiliser leurs comptes Unix ou Windows AD normaux.

Depuis que nous avons commencé à utiliser Kerberos pour l'authentification des mots de passe, nous avons constaté que CVS sur une machine cliente est souvent beaucoup plus lent à établir une connexion. CVS authentifie l'utilisateur à chaque requête (ex. cvs diff, log, update...).

Est-il possible de mettre en cache les informations d'identification que kerberos utilise, de sorte qu'il n'ait pas besoin de demander au serveur AD de Windows chaque fois qu'un utilisateur exécute une action cvs ?

Notre configuration PAM /etc/pam.d/system-auth ressemble à ce qui suit :

auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so

2voto

Jeff Hillman Points 3333

Un programme appelé sssd ' peut mettre en cache les informations d'identification (Kerberos) pour les connexions hors ligne (et en cache). Je ne suis pas sûr que le sssd utilisera les informations d'identification Kerberos mises en cache lorsqu'il fonctionne normalement (c'est-à-dire lorsqu'il n'est pas hors ligne), vous devriez essayer.

Plus d'informations sur le sssd aquí .

0voto

Jim B Points 3121

Toute authentification via PAM aura toujours ce problème. La seule façon de l'éviter est de kérberiser le service lui-même, plutôt que d'utiliser une pile pam pour implémenter l'authentification.

Une façon de le faire serait d'utiliser ssh pour accéder au dépôt cvs et d'utiliser kerberos pour s'authentifier auprès de ssh. ( google ssh GSSAPI ).

Il existe des versions kerberisées du serveur CVS si vous ne souhaitez pas autoriser l'accès ssh aux serveurs hébergeant le dépôt cvs. Pour un exemple, voir

http://compbio.soe.ucsc.edu/cvsdoc/cvs-manual/cvs_28.html

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