Windows

當使用者儲存在 AD 中時,Windows 機器能否使用 Kerberos 對 Samba 進行身份驗證?

  • November 5, 2012

我知道標題可能不太清楚,但我想不出更好的了。

我們有兩個域,我們稱它們example.comsubnet.example.com. 前者由 Active Directory 伺服器管理,並包含一些伺服器以及所有 Windows 客戶端。後者容納了許多 Unix 機器(主要是 Solaris)。SUBNET.EXAMPLE.COM從領域到存在單向信任EXAMPLE.COM

使用此設置,通常的東西可以正常工作,例如 ssh 登錄、NFSv4 等。

現在,我想做的是在subnet.example.com. Windows 使用者應該能夠訪問這些伺服器上的文件。

我在 Samba 中設置了 Kerberos 身份驗證,它可以在任何 Linux 客戶端上完美執行。當我有一個 Kerberos TGT 時,我可以訪問這些機器smbclient,如果我放棄它,它就會停止工作。使用者映射完全按預期工作。這些機器cifs/hostname在 MIT Kerberos 伺服器中有條目。

但是,Windows 客戶端無法做到這一點。查看 Samba 日誌時,我可以看到 Samba 伺服器嘗試與 AD 伺服器通信,但由於 Samba 伺服器尚未加入 AD 域,因此不允許這樣做。

所以,我聽到你問:“你為什麼不直接加入 AD 域?” . 答案是我不能這樣做,因為子網上的系統是正在安裝和重新安裝的測試系統,通常每天多次,我們不希望有 AD 管理員配置它(並刪除它們以及)每次安裝或離線測試系統時。

此外,對於 Linux 客戶端來說,一切都很完美,這讓我相信應該有可能讓它以某種方式工作。

所以,我的問題是:這甚至可能嗎?Windows 中是否有一些限制阻止它們成為普通 Kerberos 領域中的客戶端?如果是這樣,解決此問題的最佳方法是什麼?

我解決了這個問題。問題是 Windows 客戶端不知道它subnet.example.com屬於不同的領域。解決方案是將此通知客戶。可以使用以下兩個命令來完成,我相信這類似於在krb5.confUnix 系統上添加域資訊:

ksetup /addkdc SUBNET.EXAMPLE.COM hostname.of.kerberos.server
ksetup /addhosttorealmmap .subnet.example.com SUBNET.EXAMPLE.COM

在我這樣做之後,客戶端身份驗證按預期工作。

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