連接到 Active Directory(可能使用 winbind)
我試圖弄清楚如何將 Linux 環境身份驗證系統集成到 Windows server 2012,我找到了一種使用
winbind
.我搜尋了Google,有幾個頁面介紹瞭如何從同步時間到配置一些配置文件。
我在 Linux 中設置主機名和主機,如下所示。
[/等/主機] 192.168.XXX.XX1 test1.example.com 範例 ## Windows IP 192.168.XXX.XX2 test1 ## Linux IP [/etc/主機名] 測試1
我設置了一個具有以下屬性的 Active Directory,並且有兩個帳戶。
電腦名稱:TEST1 域名:example.com 帳戶 1:管理員 帳戶 2:測試人員 1
所以,我將Linux環境DNS設置為AD的IP地址。可以查看“resolv.conf”中的資訊。
[root ~]# nslookup example.com 伺服器:192.168.xxx.xx1 地址:192.168.xxx.xx1#53 名稱:example.com 地址:192.168.xxx.xxx
在“nsswitch.conf”中,我只在“文件”旁邊添加了“winbind”字樣。
密碼:文件 winbind 影子:文件 sss winbind 組:文件 winbind
在“krb5.conf”中,我更改了查找部分和預設領域。
[libdefaults] dns_lookup_realm = 真 dns_lookup_kdc = 真 default_realm = 範例.COM [領域] DOMAIN.COM = { kdc = example.com admin_server = example.com } [domain_realm] .domain.com = EXAMPLE.COM domain.com = EXAMPLE.COM
最後,我設置了
smb.conf
. 但是,有很多不同的方法可以設置它,所以我不確定。剛剛選擇了其中一個 Google 頁面。當我嘗試使用“管理員”ID 連接到 Windows Server 時,它顯示以下錯誤:
[root ~]# 網路廣告加入 -U 管理員 gse_get_client_auth_token:gss_init_sec_context 因 [未指定的 GSS 故障而失敗。次要程式碼可能會提供更多資訊:消息流已修改](2529638953) kinit 成功,但 ads_sasl_spnego_gensec_bind(KRB5) 使用使用者 [Administrator] 領域 [EXAMPLE.COM] 的 ldap/test1.example.com 失敗:嘗試登錄無效。這可能是由於使用者名或身份驗證資訊錯誤造成的。 加入域失敗:連接AD失敗:嘗試登錄無效。這可能是由於使用者名或身份驗證資訊錯誤造成的。
我被困在這一步,我在Google中找不到解決方法。我需要編輯一些文件
/etc/pam.d
嗎?使用工具’testparm’ about
smb.conf
後,最後我找不到任何問題,但現在使用“net ads testjoin”時顯示以下消息。ads_connect:目前沒有可用於服務登錄請求的登錄伺服器。
撤消所有更改並從 AD 中刪除電腦帳戶。取出
winbind
包裝。安裝合適的軟體包選擇。在基於 Debian 的系統上,您可以使用
apt-get install samba smbclient sssd realmd dnsutils policykit-1 packagekit sssd-tools sssd libnss-sss libpam-sss adcli
.
sssd
如果無法啟動,請不要擔心。它需要使用realm
命令進行配置,我們稍後會解決這個問題。確保您的本地基於 Linux 的系統在其 DNS 伺服器上有您的 DC。不要添加任何額外的 DNS 伺服器,除非它是您的 Active Directory 環境的一部分。如果您只是編輯
/etc/resolv.conf
並忽略“請勿編輯此文件”警告,您的更改可能會被覆蓋。此時,您的系統將無法對任何人進行身份驗證,甚至可能最終脫離域。(此時使用者往往會不高興。)確保您的本地時間與 Active Directory 中的時間相匹配,因為 Kerberos 不會在大於約 5 分鐘(300 秒)的偏差下工作。
對於您的本地域
contoso.com
,以 root 身份執行這三個命令:domain=contoso.com # The FQDN itself. Not machine.FQDN realm discover "$domain" # If this fails, stop and recheck everything realm join "$domain" # [--user <ad_username>] [--computer-ou <ou>]
如果您需要為 提供一個 AD 帳戶名稱
realm join
,請使用realm join --user <ad_username> "$domain"
,其中<ad_username>
表示不合格sAMAccountName
。即使您不是域管理員,您自己的 AD 帳戶也應該為至少十個客戶端工作,但administrator
如果您知道其密碼,這是一個有用的選擇。該--computer-ou
選項允許您指定帳戶的初始 OU。除非您知道其正確值(不要猜測),否則請將此留空。修復
sssd.conf
文件。ad_hostname
對於某些版本來說,這是解決錯誤所必需的。LDAP 組嵌套級別允許sssd
處理嵌套組的成員資格。sed -i "/^ad_domain /s/$/\nad_hostname = $(hostname).$domain/" /etc/sssd/sssd.conf ( echo; echo 'ldap_group_nesting_level = 5'; echo 'ldap_use_tokengroups = false' ) >>/etc/sssd/sssd.conf service sssd restart