12.2 Linux AD 支援的背景資訊

要將 Linux 用戶端整合到現有的 Windows Active Directory 領域中,許多系統元件之間必須進行完美的互動。圖 12-1 強調了最顯著的一項。接下來的章節則將集中討論 AD 伺服器與用戶端互動中關鍵事件的基礎程序。

圖 12-1 Active Directory 驗證綱要

若要與目錄服務進行通訊,用戶端必須至少與伺服器共用兩種通訊協定:

LDAP

LDAP 通訊協定最適合用於管理目錄資訊。包含 AD 的 Windows 領域控制器可以使用 LDAP 通訊協定來與 () 用戶端交換目錄資訊。需深入了解 LDAP 的一般資訊,及其開放原始碼連接埠 (OpenLDAP),請參閱節 35.0, LDAP—一種目錄服務

Kerberos

Kerberos 是受信任的第三方驗證服務。Kerberos 的所有用戶端都信任它對其他用戶端身分的判斷,使 Kerberized 單次登入 (SSO) 解決方案成為可能。Windows 支援 Kerberos 執行方式,因此連 Linux 用戶端都能夠採用 Kerberos SSO 解決方案。如需深入了解 Linux 中的 Kerberos,請參閱節 41.0, 網路驗證—Kerberos

下列用戶端元件會處理帳戶和驗證資料:

Winbind

這個解決方案最核心的部分就是 winbind 精靈,它是 Samba 專案的一部分,用來處理與 AD 伺服器之間的所有通訊。

NSS (名稱服務切換)

NSS 常式會提供名稱服務資訊。使用者和群組的命名服務都由 nss_winbind 提供。此模組會與 winbind 精靈直接互動。

PAM (可插式驗證模組)

AD 使用者的使用者驗證,是透過 pam_winbind 模組完成的。pam_mkhomedir 會處理 Linux 用戶端上 AD 使用者的使用者主目錄之建立。pam_winbind 模組會與 winbindd 直接互動。如需深入了解 PAM 的一般資訊,請參閱節 24.0, 使用 PAM 驗證

具備 PAM 功能的應用程式 (如登入常式以及 GNOME 和 KDE 的顯示管理員) 會與 PAM 和 NSS 層互動,以依據 Windows 伺服器進行驗證。支援 Kerberos 驗證的應用程式 (如檔案管理員、Web 瀏覽器或電子郵件用戶端) 使用 Kerberos 證件快取來存取使用者的 Kerberos 票證,因此是 SSO 架構的一部分。

12.2.1 加入領域

在加入領域期間,伺服器和用戶端之間會建立安全的關聯。在用戶端上必須執行下列工作,才能加入由 Windows 領域控制器所提供的現有 LDAP 和 Kerberos SSO 環境。整個加入程序由 YaST 領域成員模組負責處理,這可以在安裝期間或在已安裝的系統上執行:

  1. 找到同時提供 LDAP 和 KDC (金鑰配送中心) 服務的 Windows 領域控制器。

  2. 連結用戶端所需的機器帳戶,會建立於目錄服務中。

  3. 取得用戶端的初始票證授與票證 (TGT),並儲存在本地 Kerberos 證件快取中。用戶端需要這個 TGT 才能取得其他票證來聯絡其他服務,例如聯絡目錄伺服器以執行 LDAP 查詢。

  4. 調整 NSS 和 PAM 組態,讓用戶端可依據領域控制器進行驗證。

用戶端開機期間,會啟動 winbind 精靈,並取出機器帳戶的初始 Kerberos 票證。winbindd 會自動更新機器的票證,使它保持有效。為記錄目前帳戶政策,winbindd 會定期輪詢領域控制器。

12.2.2 領域登入和使用者主目錄

GNOME 和 KDE 登入管理員 (GDM 和 KDM) 的擴充版本能夠處理 AD 領域的登入。使用者可以選擇登入機器已加入的主要領域,或已經與主要領域的領域控制器建立託管關係的其中一個託管領域。

使用者驗證是由許多 PAM 模組依節 12.2, Linux AD 支援的背景資訊中說明的方式進行調解。用來依據 Active Directory 或 NT4 領域進行用戶端驗證的 pam_winbind 模組完全了解可能禁止使用者登入的 Windows 錯誤狀況。 Windows 錯誤碼會被轉譯成適當的使用者可讀錯誤訊息,讓 PAM 透過任何支援的方法 (GDM、KDM、主控台和 SSH) 在登入時顯示出來:

密碼已過期

使用者收到訊息,說明密碼已過期,必須變更。系統會直接提示使用者輸入新密碼,並在新密碼不符合公司密碼政策 (如密碼太短、太簡單,或已在歷程中) 時,通知使用者。若使用者密碼變更失敗,會顯示原因並要求新密碼。

帳戶已停用

使用者收到訊息,說明帳戶已停用,必須聯絡系統管理員。

帳戶已鎖定

使用者收到訊息,說明帳戶已被鎖定,必須聯絡系統管理員。

必須變更密碼

使用者可登入,但收到警告訊息表示必須儘速變更密碼。密碼過期前三天會傳送警告。過期之後,使用者無法再次登入。

無效的工作站

若使用者只能從特定工作站登入,而目前的SUSE Linux Enterprise 機器不在清單中,就會出現訊息,表示使用者無法從此工作站登入。

無效的登入時間

若使用者只能在工作時間登入,而嘗試在工作時間以外登入,就會出現訊息,說明此時無法登入。

帳戶已過期

管理員可設定特定使用者帳戶的過期時間。若使用者嘗試在該時間之後登入,就會收到訊息,說明帳戶已過期,無法用來登入。

在成功驗證期間,pam_winbind 會從 Active Directory 的 Kerberos 伺服器中取得票證授與票證 (TGT),並儲存在使用者的證件快取中。它也會在背景更新 TGT,不需任何使用者互動。

SUSE Linux Enterprise 支援 AD 使用者的本地主目錄。如果是如節 12.3, 為 Active Directory 設定 Linux 用戶端所述,透過 YaST 進行設定,使用者主目錄是在 Windows (AD) 使用者第一次登入 Linux 用戶端時建立。這些主目錄的形式和功能與標準 Linux 使用者主目錄完全一樣,而且其運作與 AD 領域控制器獨立。若使用本機使用者主目錄,只要 Linux 用戶端設定為可執行離線驗證,即使 AD 伺服器斷線,仍可存取此機器上的使用者資料。

12.2.3 離線服務和規則支援

公司環境中的使用者有時候必須具有變成漫遊使用者的能力,例如切換不同網路,或甚至在中斷連線的情況下工作。為了讓使用者能夠登入中斷連線的機器,因此有大量快取整合到 winbind 精靈中。winbind 精靈即使在離線狀態仍會強制執行密碼規則。它會追蹤失敗的登入嘗試次數,並根據 Active Directory 中設定的規則做出反應。預設狀態下會停用離線支援,因此必須在 YaST 領域成員模組中明確啟用。

如同在 Windows 中一樣,若領域控制器無法使用,使用者仍可透過喪失連線前取得的有效 Kerberos 票證,存取 AD 伺服器外的網路資源。但除非領域控制器連線,否則無法變更密碼。與 AD 伺服器喪失連線時,使用者無法存取儲存於該伺服器上的任何資料。當工作站徹底從網路上斷線,稍候再與公司網路連線時,SUSE Linux Enterprise 會在使用者鎖定與解除鎖定桌面 (如,使用桌面螢幕保護程式) 時,立刻取得新的 Kerberos 票證。