Linux,針對 2 個不同 AD 的基本密碼驗證,無需加入網域

Linux,針對 2 個不同 AD 的基本密碼驗證,無需加入網域

我們有 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 那麼好,但仍然有效。

問候,

相關內容