Authentication

如何使用 PAM/Kerberos 身份驗證在 Linux 中記憶體身份驗證(用於 CVS)?

  • July 21, 2014

我們有幾個 Linux 伺服器,它們使用 PAM 和 Kerberos 5 在我們的 Windows Active Directory 伺服器上驗證 Linux 使用者密碼。我們使用的 Linux 發行版是 CentOS 6。

在一個系統上,我們有幾個版本控制系統,比如 CVS 和 Subversion,它們都通過 PAM 對使用者進行身份驗證,這樣使用者就可以使用他們的普通 Unix 和 Subversion。Windows AD 帳戶。

自從我們開始使用 Kerberos 進行密碼驗證以來,我們發現客戶端電腦上的 CVS 在建立連接時通常要慢得多。CVS 對每個請求(例如 cvs diff、日誌、更新…)的使用者進行身份驗證。

是否可以記憶體 kerberos 使用的憑據,例如每次使用者執行 cvs 操作時都不需要詢問 Windows AD 伺服器?

我們的 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 進行的任何身份驗證都將始終存在此問題。避免它的唯一方法是對服務本身進行 kerberize,而不是使用 pam 堆棧來實現身份驗證。

一種方法是使用 ssh 訪問 cvs 儲存庫並使用 kerberos 對 ssh 進行身份驗證。(Google ssh GSSAPI)。

如果您不想允許 ssh 訪問託管 cvs 儲存庫的伺服器,則有 CVS 伺服器的 kerberized 版本。例如,請參閱

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

引用自:https://serverfault.com/questions/429078