这里有没有人见过他们的 Linux 服务器由于机器凭证过期而被从 AD 域中删除?我们正在使用 sssd-1.13.3-56.el6 (Centos 6) 进行 AD 身份验证
每https://bugzilla.redhat.com/show_bug.cgi?id=1290761“,sssd 应该能够自动更新主机凭据。根据相关的 Red Hat 文档(“将 Red Hat Enterprise Linux 6 与 Active Directory 集成”),没有提及加入 AD 时应采取的任何额外配置步骤。
根据我的搜索,有些确实会运行 cron 作业来更新主机凭据”https://lists.fedorahosted.org/archives/list/[电子邮件保护]/线程/CRA43XHHDBPAENAYJ3INUWSCE2Q2NB5W/“
我们是否需要运行一个 cron 作业:“msktutil --auto-update”和“kinit -k $”?
或者 sssd 应该能够处理这个问题?
您是否在 sssd.conf 中设置了“ad_maximum_machine_account_password_age”或者将其保留为默认的 30 天。
干杯,
更新:@jhrozek,感谢您的评论。
我的配置仍然出现同样的问题。
看来票证在 5 月 28 日没有续订,服务器退出了域:
# net ads testjoin
kerberos_kinit_password [email protected] failed: Preauthentication failed
kerberos_kinit_password [email protected] failed: Preauthentication failed
Join to domain is not valid: Logon failure
Keytab 状态:
# klist -kt
Keytab name: FILE:/etc/krb5.keytab
KVNO Timestamp Principal
---- ----------------- --------------------------------------------------------
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:54 host/[email protected]
2 04/28/17 02:57:55 host/[email protected]
2 04/28/17 02:57:55 host/[email protected]
2 04/28/17 02:57:55 [email protected]
2 04/28/17 02:57:55 [email protected]
2 04/28/17 02:57:55 [email protected]
2 04/28/17 02:57:55 [email protected]
2 04/28/17 02:57:55 [email protected]
3 05/28/17 14:01:39 [email protected]
3 05/28/17 14:01:39 [email protected]
3 05/28/17 14:01:39 [email protected]
3 05/28/17 14:01:39 [email protected]
3 05/28/17 14:01:39 [email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
3 05/28/17 14:01:39 host/[email protected]
这看起来像是在 5 月 28 日更新了票,但不知何故服务器帐户被删除了?
已安装 SSSD 和 ADCLI 包:
# rpm -qa | grep sssd
sssd-client-1.13.3-56.el6.x86_64
sssd-ipa-1.13.3-56.el6.x86_64
sssd-proxy-1.13.3-56.el6.x86_64
python-sssdconfig-1.13.3-56.el6.noarch
sssd-common-pac-1.13.3-56.el6.x86_64
sssd-krb5-1.13.3-56.el6.x86_64
sssd-krb5-common-1.13.3-56.el6.x86_64
sssd-ldap-1.13.3-56.el6.x86_64
sssd-common-1.13.3-56.el6.x86_64
sssd-ad-1.13.3-56.el6.x86_64
sssd-1.13.3-56.el6.x86_64
# rpm -qa | grep adcli
adcli-0.8.1-1.el6.x86_64
并且,sssd.conf:
[sssd]
domains = stage.example.com
services = nss, pam, ssh
config_file_version = 2
default_domain_suffix = main.example.com
full_name_format = %1$s@%2$s
re_expression = (((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
[domain/stage.example.com
id_provider = ad
auth_provider = ad
access_provider = ad
chpass_provider = ad
cache_credentials = false
ad_domain = stage.example.com
ldap_id_mapping = true
krb5_realm = STAGE.example.com
default_shell = /bin/bash
ad_gpo_access_control = permissive
override_homedir = /home/admin/%u
和 krb5.conf:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = STAGE.EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = true
clockskew = true
proxiable = true
[realms]
STAGE.EXAMPLE.COM = {
kdc = 172.31.1.252
kdc = 172.31.0.252
admin_server = 172.31.1.252
admin_server = 172.31.0.252
}
[domain_realm]
stage.example.com = STAGE.EXAMPLE.COM
.stage.example.com = STAGE.EXAMPLE.COM
有什么建议可以解决这个问题吗?
答案1
这应该会自动发生,但是您需要安装 adcli。sssd 只需 forks 并 execs adcli 即可执行更新。
答案2
这个问题困扰了我几个月之后,我才弄清楚我的问题是什么。
我没有为我的服务器命名server.my.domain.com
,而是只是server
。更改名称、离开并重新加入领域后,adcli update
运行没有问题。
答案3
您可能还想将您的 AD 服务器配置为 NTP 时间的源,因为如果您的客户端机器的时钟相差太大,它们将无法进行身份验证/更新,而且现在一切都是虚拟化的,没有自己的 RTC 硬件,这种情况可能会更频繁地发生。
答案4
另外,请确保您的 krb5.conf 将设置ticket_lifetime
为正确的值。我遇到了这个问题,最终是因为我将票证有效期设置为 krb5.conf 默认值 24 小时,而默认域策略 TGT 有效期默认配置为 10 小时。设置ticket_lifetime = 10h
对我来说是票证。