У нас есть несколько серверов 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
Программа под названием 'sssd'может кэшировать (Kerberos) учетные данные для автономных (и кэшированных) входов. Я не уверен, будет ли sssd использовать кэшированные учетные данные Kerberos, когда он работает нормально (то есть когда он не в автономном режиме), вам придется попробовать это.
Подробнее о sssd Вот.
При любой аутентификации через PAM всегда будет эта проблема. Единственный способ избежать этого - керберизовать саму службу, а не использовать стек pam для реализации аутентификации.
Один из способов сделать это - использовать ssh для доступа к репозиторию cvs и использовать kerberos для аутентификации в ssh. (google ssh GSSAPI).
Существуют керберизованные версии сервера CVS, если вы не хотите разрешать ssh-доступ к серверам, на которых размещен репозиторий cvs. Для примера см.