
我們有 AIX 和 Linux 伺服器,使用 Kerberos 針對 Windows AD 執行基本密碼驗證,因此本機使用者的使用者名稱與其在 AD 中的 sAMAccountName 相同,所做的只是密碼檢查。
兩個作業系統都使用簡單的 krb5.conf
[libdefaults]
default_realm = COMPANYA.COM
[realms]
COMPANYA.COM {
kdc = ad.companya.com:88
admin_server = ad.companya.com:749
}
[domain_realm]
.companya.com = COMPANYA.COM
companya.com = COMPANYA.COM
這在兩個作業系統上都運作良好。
我們現在的情況是,將有一個公司 B,因此也有一個第二個 AD。一個使用者永遠不會在兩個 AD 上都可用,而只能在其中一個 AD 上可用。
所以我首先開始使用 AIX,因為我認為這是最難工作的。
更新了 krb5.conf
[libdefaults]
default_realm = COMPANYA.COM
[realms]
COMPANYA.COM {
kdc = ad.companya.com:88
admin_server = ad.companya.com:749
}
COMPANYB.COM {
kdc = ad.companyb.com:88
admin_server = ad.companyb.com:749
}
[domain_realm]
.companya.com = COMPANYA.COM
companya.com = COMPANYA.COM
.companyb.com = COMPANYB.COM
companyb.com = COMPANYB.COM
經過一番研究後,似乎我要做的就是
chuser auth_domain=COMPANYB.COM <user>
這會更新 /etc/security/user 文件,並將針對 Company B AD 進行密碼驗證。所以我對這簡單感到驚喜。
接下來是 Linux(Ubuntu 盒子)。做了相同的 krb5.conf 但遺憾的是我找不到 Ubuntu 下 chuser 的等效命令來將該特定使用者指向另一個 AD。
我能找到的是有關使用 sssd 和加入領域的頁面(具有兩個 AD 網域的 Linux SSSD和/或https://ubuntu.com/server/docs/service-sssd-ad)但這比需要的更多(加入領域)。
到目前為止,我使用 tcpdump 和 kinit 得出的結論如下:
kinit [email protected]
<password>
kinit: KDC reply did not match expectations while getting initial credentials
kinit [email protected]
<password>
<no error>
login [email protected]
<password>
access denied
login [email protected]
<password>
access denied
由於全大寫的 kinit 有效,我懷疑登入會有效,遺憾的是它沒有。
更新:登入[電子郵件受保護]如果使用者是在 Linux 機器上建立的,則可以工作[電子郵件受保護],仍然不滿意
(忘了要求使用者使用全大寫網域是不切實際的事實)
長話短說,如何將特定使用者指向另一個 AD,而不是 krb5.conf 檔案中的預設 AD。
問候,
答案1
上週我取得了一些進展,這似乎很有效。儘管我仍在研究 PAM 工作原理的確切細節。
更新/更改了 /etc/pam.d/common-auth
原來的
auth [success=2 default=ignore] pam_krb5.so minimum_uid=1000
auth [success=1 default=ignore] pam_unix.so nullok try_first_pass
新版本
auth sufficient pam_krb5.so minimum_uid=1000 realm=COMPANYA.COM
auth sufficient pam_krb5.so minimum_uid=1000 realm=COMPANYB.COM
auth sufficient pam_unix.so nullok try_first_pass
當以 A 公司使用者身分登入時,它會檢查 A 公司的 AD,並且由於該使用者存在,因此會驗證密碼。當以B公司用戶身分登入時,它會檢查A公司的AD,該用戶不存在,然後去檢查B公司,由於該用戶存在,因此密碼得到驗證。
它不像 AIX 那麼好,但仍然有效。
問候,