Как кэшировать аутентификацию в Linux с использованием аутентификации PAM/Kerberos (для CVS)?

У нас есть несколько серверов Linux, которые аутентифицируют пароли пользователей Linux на нашем сервере Windows Active Directory, используя PAM и Kerberos 5. Мы используем дистрибутив Linux - CentOS 6.

В одной системе у нас есть несколько систем контроля версий, таких как CVS и Subversion, обе из которых аутентифицируют пользователей через PAM, так что пользователи могут использовать свой обычный Unix, соответственно. Учетные записи Windows AD.

Так как мы начали использовать Kerberos для аутентификации по паролю, мы обнаружили, что CVS на клиентском компьютере часто намного медленнее устанавливает соединение. CVS аутентифицирует пользователя при каждом запросе (например, cvs diff, log, update...).

Можно ли кэшировать учетные данные, которые использует Kerberos, например, нет необходимости запрашивать сервер Windows AD каждый раз, когда пользователь выполняет действие cvs?

Наша конфигурация PAM /etc/pam.d/system-auth выглядит следующим образом:

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

2 ответа

Решение

Программа с именем ' sssd' может кэшировать (Kerberos) учетные данные для автономного (и кэшированного) входа в систему. Я не уверен, будет ли sssd использовать кэшированные учетные данные Kerberos, когда он работает нормально (то есть, когда он не в автономном режиме), вам придется попробовать это.

Больше информации о sssd здесь.

Любая аутентификация через PAM всегда будет иметь эту проблему. Единственный способ избежать этого - это керберизовать саму службу, а использовать стек pam для реализации аутентификации.

Один из способов сделать это - использовать ssh для доступа к репозиторию cvs и использовать kerberos для аутентификации в ssh. (Google SSH GSSAPI).

Существуют керберизованные версии сервера CVS, если вы не хотите разрешать ssh-доступ к серверам, на которых размещается репозиторий cvs. Например, см.

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

Другие вопросы по тегам