Active-Directory

CentOS 7:訪問 AD 成員 samba 共享時再次出現故障

  • September 29, 2019

我有一個 Samba 4.6.2 samba ActiveDirectory 成員伺服器。每個月左右,所有客戶端都會失去連接到所有共享的能力。我可以通過離開域、刪除機器帳戶並重新加入域來解決此問題,但我必須每隔幾週執行一次顯然是錯誤的。我認為這是機器帳戶密碼過期問題,但執行 adcli update並沒有幫助。我嘗試更改機器密碼過期的組策略,但這也無濟於事。

  • 數百 7,4,1708
  • 桑巴 4.6.2
  • sssd-krb5-1.15.2
  • 固態硬碟 1.15.2-50
  • 領域-0.16.1-9

客戶端的錯誤消息是

"\\cheetoes is not accessible. You might not have permissions to use this network resource. Contact the administrator of this server to find out if you have access permissions.
Login Failure: The target account name is incorrect"

在伺服器端,在啟動時,log.smbd 包含:

[2018/05/09 12:03:41.622878,  0] ../source3/libads/kerberos_util.c:74(ads_kinit_password)
 kerberos_kinit_password CHEETOES$@HYMESRUZICKA.ORG failed: Preauthentication failed
[2018/05/09 12:03:41.622923,  1] ../source3/libads/sasl.c:821(ads_sasl_spnego_bind)
 ads_sasl_spnego_gensec_bind(KRB5) failed for ldap/true-companion.hymesruzicka.org with user[CHEETOES$] realm=[HYMESRUZICKA.ORG]: Preauthentication failed

每個客戶端的日誌顯示:

[2018/05/09 12:06:58.259646,  1] ../source3/librpc/crypto/gse.c:646(gse_get_server_auth_token)
 gss_accept_sec_context failed with [Unspecified GSS failure.  Minor code may provide more information: Request ticket server cifs/CHEETOES.hymesruzicka.org@HYMESRUZICKA.ORG not found in keytab (ticket kvno 3)]
[2018/05/09 12:06:59.099902,  1] ../source3/librpc/crypto/gse.c:646(gse_get_server_auth_token)
 gss_accept_sec_context failed with [Unspecified GSS failure.  Minor code may provide more information: Request ticket server cifs/CHEETOES.hymesruzicka.org@HYMESRUZICKA.ORG not found in keytab (ticket kvno 3)]

在我重新加入後,我沒有立即收到客戶端故障,也沒有在 log.smbd 中出現“Preauthentication failed”錯誤。我特別困惑為什麼重新加入有效,但只是暫時的。

CentOS 7 建構的 Samba 在 Active Directory 上下文中非常糟糕。當嘗試使用“更新”子命令時,Samba 4.8.3 的 CentOS 建構會導致adcli核心轉儲。adcli也無法正確加入或離開域,並破壞 /etc/samba/smb.conf 以及sssdpamconfigs。

而且不只是adcli. realmd, winbind, 和smbd本身無法與 Windows Active Directory 伺服器正常工作,導致某些客戶端(例如 iOS 設備)無法連接。我發現的唯一解決方法是建構一個“庫存” samba 堆棧,並從最新發布源建構 adcli+reamld,然後在 CentOS samba 堆棧上使用它。您還必須禁用 /etc/yum.conf 中所有 samba 組件的更新,否則您的本地 samba 安裝將被 CentOS 破壞。您的 yum.conf 文件至少需要:

exclude=adcli-* libsmbclient-* libwbclient* python-smbc-* realmd-* samba-* samba-client-* samba-client-libs-* samba-common-* samba-common-libs-* samba\
-common-tools-* samba-libs-* samba-python-* samba-winbind-* samba-winbind-clients-* samba-winbind-modules-*  

請注意,解除安裝 CentOS 的 samba 是不切實際的,因為許多其他軟體包都依賴於它。

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