我有一个 Samba 4.6.2 samba ActiveDirectory 成员服务器。每个月左右,所有客户端都会失去连接到所有共享的能力。我可以通过离开域、删除机器帐户并重新加入域来解决此问题,但我必须每隔几周执行一次显然是错误的。我认为这是机器帐户密码过期问题,但运行 adcli update并没有帮助。我尝试更改机器密码过期的组策略,但这也无济于事。
- Centos 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 [email protected] 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/[email protected] 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/[email protected] 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 以及sssd
和pam
configs。而且不只是
adcli
.realmd
,winbind
, 和smbd
本身无法与 Windows Active Directory 服务器正常工作,导致某些客户端(例如 iOS 设备)无法连接。我发现的唯一解决方法是构建一个“库存” samba 堆栈,并从最新发布源构建 adcli+reamld,然后在 CentOS samba 堆栈上使用它。您还必须禁用 /etc/yum.conf 中所有 samba 组件的更新,否则您的本地 samba 安装将被 CentOS 破坏。您的 yum.conf 文件至少需要:请注意,卸载 CentOS 的 samba 是不切实际的,因为许多其他软件包都依赖于它。