Linux

使用 AD/Kerberos 進行身份驗證/授權的 Linux 伺服器是否需要電腦帳戶?

  • April 13, 2018

我對使用 Active Directory (AD) 和 Kerberos 的 Linux 伺服器是否需要創建電腦帳戶感到困惑?

作為機器的 Linux 伺服器是否需要加入 AD 域,並且在這樣做時有一個電腦帳戶來獲得來自 AD 的身份驗證/授權服務?

以下是一些要求:

  • 能夠使用來自 Linux 伺服器的 AD 進行基於使用者和組成員身份的身份驗證。
  • 能夠將本地 linux UID/GID 號碼映射到 AD 使用者和組名(今天我們使用的是非 AD LDAP 伺服器,我們為使用者和組帳戶保留 UID/GID 號碼。理想情況下,我想繼續這種做法)。
  • 能夠將 linux Sudoer 權限映射到 AD 組。
  • 使用像 SSSD 這樣的開源或社區工具/外掛,而不是像 Centrify 這樣的付費商業產品。

我擔心在 AD 中為基於私有云的伺服器創建/刪除大量 linux 電腦帳戶的痛苦,這些伺服器可能不會存在那麼久;但我想要使用 AD 的中央使用者帳戶儲存的好處。

注意:我在 2008R2 功能級別使用 RHEL 和 Centos 6-7 linux 伺服器和帶有 AD 的 Windows Server 2012。

這裡有兩個不同的考慮因素:

1)身份驗證(密碼驗證)

2)授權(身份映射/組成員資格等)

對於客戶端:

您可以通過 Kerberos 從匿名客戶端(無域加入/主機憑據)進行身份驗證(密碼檢查)。但是,您將無法在沒有主機憑據 (/etc/krb5.keytab) 的情況下進行 GSSAPI SSO 和 KDC 驗證。

對於授權,您需要能夠對 AD-DC 執行 LDAP 綁定/查找。通常 AD 不允許匿名 LDAP 綁定,因此您需要某種客戶端憑據。明確創建和維護的服務帳戶或主機憑據(由域加入創建/維護)。

在您的 ldap.conf 或 sssd.conf 文件中,您可以列出明確的服務帳戶憑據或告訴它使用主機憑據。如果您有主機憑據並在 sssd 中使用“廣告”id_provider,您將獲得諸如自動主機憑據維護等優勢。

請注意,如果您想將 AD 用於您的授權服務,您需要將 rfc2307 樣式資訊(例如 uidNumber、gidNumber 等)添加到您想在 Unix/Linux 客戶端上使用的每個使用者帳戶。

對於伺服器:

如果他們要提供任何基於 Kerberized/GSSAPI 的服務,那麼他們必須擁有主機憑據(已加入域)並在 AD 的電腦帳戶中擁有有效的 UPN/SPN 記錄。將 AD 視為提供 Kerberos KDC 功能。

例如:

如果您有一個 Kerberized NFSv4 文件伺服器,那麼不僅需要有一個“host/FQDN”SPN,而且在伺服器上的帳戶和 krb5.keytab 文件中還需要有一個“nfs/FQDN”SPN。

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