Active-Directory

無法使用 samba 工具 net 或 realm/sssd 加入域

  • May 20, 2016

在 rhel7 伺服器上,我試圖將伺服器加入域,但出現以下故障:

net ads join -S domain.example.org -U name
Enter name's password:
Failed to join domain: failed to set machine kerberos encryption types: Insufficient access

pam、krb5、samba、dns 以及遠端活動目錄伺服器中的對象的相關設置配置正確,這意味著系統將使用 rhel6 和 ubuntu 14.04 成功綁定。

關於我遇到的具體錯誤,我無法找到太多資訊。我試圖在 krb5.conf 中設置allow_weak_crypto=true只是為了看看它是否與此有關,但它沒有效果。

我遵循了https://technet.microsoft.com/en-us/library/bb463167.aspx中的一些故障排除提示,但沒有運氣,我嘗試過的東西似乎工作正常。

具體來說,我能夠執行以下操作,這意味著我可以獲得使用者的初始憑據:

kinit name
Password for name@domain.example.org: 

我還可以使用ktutil生成一個 keytab 文件,當我將它移動到 /etc/krb5.keytab klist -e時,它會顯示正確的內容。但網路廣告加入不斷失敗。

編輯:檢查 rhel7 samba 源包後,我在README.dc中發現以下內容:

一旦 Samba AD DC 對 MIT Kerberos KDC 的支持準備就緒,我們就會提供 Samba AD DC 功能。

我懷疑這可能是問題所在,我必須等到它準備好。

Edit2:使用領域和 sssd 似乎有同樣的問題。做完之後:

realm -v join --user=example ad.example.org

我發現以下錯誤:

* LANG=C /usr/sbin/adcli join --verbose --domain ad.example.org --domain-realm AD.EXAMPLE.ORG --domain-controller 192.0.2.11 --login-type user --login-user example --stdin-password
! Insufficient permissions to set encryption types on computer account: CN=example,OU=w,OU=x,DC=ad,DC=example,DC=org: 00002098: SecErr: DSID-03150BB9, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

請注意,這適用於 rhel6。我也無權更改 AD 伺服器或我在那裡的帳戶。

rhel版本為7.2,相關包在以下版本:

Name        : realmd
Version     : 0.16.1
--
Name        : adcli
Version     : 0.7.5
--
Name        : krb5-workstation
Version     : 1.13.2
--
Name        : samba-common
Version     : 4.2.3

journalctl -e SYSLOG_IDENTIFIER=realmd的淨化輸出:

Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain name: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using computer account name: HOST
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain realm: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Calculated computer account name from fqdn: HOST
Jan 21 14:56:20 host.example.org realmd[25796]:  * Generated 120 character computer password
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using keytab: FILE:/etc/krb5.keytab
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using fully qualified name: host.example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain name: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using computer account name: HOST
Jan 21 14:56:20 host.example.org realmd[25796]:  * Using domain realm: example.org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Looked up short domain name: AD
Jan 21 14:56:20 host.example.org realmd[25796]:  * Found computer account for HOST$ at: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Set computer password
Jan 21 14:56:20 host.example.org realmd[25796]:  * Retrieved kvno '87' for computer account in directory: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
Jan 21 14:56:20 host.example.org realmd[25796]:  ! Insufficient permissions to set encryption types on computer account: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org: 00002098: SecErr: DSID-03150BB9, problem 4003 (INSUFF_ACCESS_RIGHTS),  
Jan 21 14:56:20 host.example.org realmd[25796]:  * Modifying computer account: userAccountControl
Jan 21 14:56:20 host.example.org realmd[25796]:  * Modifying computer account: operatingSystem, operatingSystemVersion, operatingSystemServicePack
Jan 21 14:56:20 host.example.org realmd[25796]:  ! Couldn't set operatingSystem, operatingSystemVersion, operatingSystemServicePack on computer account: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org: Insufficient access
Jan 21 14:56:20 host.example.org realmd[25796]:  * Updated existing computer account: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
Jan 21 14:56:20 host.example.org realmd[25796]:  * Discovered which keytab salt to use
Jan 21 14:56:20 host.example.org realmd[25796]:  * Added the entries to the keytab: HOST$@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:20 host.example.org realmd[25796]:  * Added the entries to the keytab: HOST/HOST@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:20 host.example.org realmd[25796]:  * Added the entries to the keytab: HOST/host.example.org@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:21 host.example.org realmd[25796]:  * Added the entries to the keytab: RestrictedKrbHost/HOST@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:21 host.example.org realmd[25796]:  * Added the entries to the keytab: RestrictedKrbHost/host.example.org@AD.EXAMPLE.ORG: FILE:/etc/krb5.keytab
Jan 21 14:56:21 host.example.org realmd[25796]: process exited: 25879
Jan 21 14:56:21 host.example.org realmd[25796]:  * /usr/bin/systemctl enable sssd.service
Jan 21 14:56:21 host.example.org realmd[25796]: process started: 25880
Jan 21 14:56:21 host.example.org realmd[25796]: Created symlink from /etc/systemd/system/multi-user.target.wants/sssd.service to /usr/lib/systemd/system/sssd.service.
Jan 21 14:56:21 host.example.org realmd[25796]: process exited: 25880
Jan 21 14:56:21 host.example.org realmd[25796]:  * /usr/bin/systemctl restart sssd.service
Jan 21 14:56:21 host.example.org realmd[25796]: process started: 25894
Jan 21 14:56:22 host.example.org realmd[25796]: process exited: 25894
Jan 21 14:56:22 host.example.org realmd[25796]:  * /usr/bin/sh -c /usr/sbin/authconfig --update --enablesssd --enablesssdauth --enablemkhomedir --nostart && /usr/bin/systemctl enable oddjobd.service && /usr/bin/systemctl start oddjobd.se
Jan 21 14:56:22 host.example.org realmd[25796]: process started: 25901
Jan 21 14:56:23 host.example.org realmd[25796]: process exited: 25901
Jan 21 14:56:23 host.example.org realmd[25796]:  * Successfully enrolled machine in realm
Jan 21 14:56:23 host.example.org realmd[25796]: released daemon: current-invocation
Jan 21 14:56:23 host.example.org realmd[25796]: client gone away: :1.3100
Jan 21 14:56:23 host.example.org realmd[25796]: released daemon: :1.3100
Jan 21 14:57:23 host.example.org realmd[25796]: quitting realmd service after timeout
Jan 21 14:57:23 host.example.org realmd[25796]: stopping service

淨廣告的淨化輸出-P 狀態:

objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
objectClass: computer
cn: host
distinguishedName: CN=host,OU=w,OU=x,DC=ad,DC=example,DC=org
instanceType: 4
whenCreated: 2012
whenChanged: 2016
uSNCreated: 1687590
memberOf: CN=group,OU=groups,OU=w,DC=ad,DC=example,DC=org
uSNChanged: 1212121212
name: host
objectGUID: x
userAccountControl: 6
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 1
lastLogoff: 0
lastLogon: 1
localPolicyFlags: 0
pwdLastSet: 1
primaryGroupID: 600
objectSid: S-1-5-21
accountExpires: 9
logonCount: 1
sAMAccountName: HOST$
sAMAccountType: 8
dNSHostName: host.ad.example.org
servicePrincipalName: RestrictedKrbHost/HOST
servicePrincipalName: RestrictedKrbHost/host.ad.example.org
servicePrincipalName: HOST/host.ad.example.org
servicePrincipalName: HOST/HOST
objectCategory: CN=Computer,CN=Schema,CN=Configuration,DC=ad,DC=example,DC=org
isCriticalSystemObject: FALSE
dSCorePropagationData: 2
dSCorePropagationData: 3
dSCorePropagationData: 4
dSCorePropagationData: 5
dSCorePropagationData: 6
lastLogonTimestamp: 1

你為什麼用網路?您應該使用 samba-tool 加入域

samba-tool domain join domain.example.org DC -Uadministrator --realm=domain.example.org

net 在 samba 4 中不再真正使用,除了共享和其他一些東西。

不要亂用 kerberos 加密設置。

我有同樣的問題,realm加上adcli是解決方案。 realm預設使用 samba-common 後端。獲取 realmd 和 adcli 包,然後使用

# realm join --membership-software=adcli -U <username> <domain>

您甚至不必adcli直接使用。請注意,會發生相同的權限錯誤,但您繼續加入域,而不是在加密類型拒絕時失敗。

這讓我被捆綁了好幾個星期。該項目最終被推遲,直到我弄明白為止。從我的痛苦中學習。

不幸的是,據我所知adcli,似乎沒有任何方法可以在不更改 AD 的情況下驗證加入。要驗證,您可以備份 /etc/samba/smb.conf 並將其替換為(只是):

realm = <REALM>
workgroup = <WORKGROUP>

然後執行net ads -P status以獲取從 AD 中提取的有關您新註冊的機器帳戶的大量資訊。您可以ldapsearch通過使用 Windows 工具搜尋或詢問您的 AD 管理員對 DC 執行相同操作,但我不知道哪些選項可用於 LDAP,我喜歡自給自足。

通常 adcli/net 會註冊一台機器,但 sssd_ad 不能很好地用於開箱即用的身份管理。我發現尤其是在 RIDS 超過 200000 或已從舊版本更新多次的企業 AD 環境中,通常會出現問題。如果您從net ads status命令中獲得結果但仍無法獲取使用者資訊,請查找 sssd 和 sssd_ad 的問題。 systemctl status sssd.service是一個很好的起點。但是,針對 Id 映射和身份驗證的 sssd_ad 故障排除不在您原始問題的範圍內。

額外的信用閱讀:

freedesktop.org 上的領域文件。

freedesktop.org 上的 adcli 文件

sssd_ad 的手冊頁

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