我有一个带有单个 AD 服务器的 Linux 环境。看起来之前的系统管理员使用 kerberos 和 sssd 设置了 ldap。最近我们进行了 IP 更改,更改了 AD 和所有 Linux 服务器上的 IP。现在我无法在我的 Linux 服务器上识别或获取任何 AD 用户,这阻止了我的用户登录 Linux 服务器。我的环境中出现以下错误“sssd_be:GSSAPI 错误:未指定的 GSS 故障。次要代码可能提供更多信息(Kerberos 数据库中未找到服务器)”
任何帮助都将不胜感激。仅供参考,我们在这个环境中不使用 dns,所有配置文件都相同,只是提到了 IP,但已更改为反映新 IP
我已经在论坛中搜索过类似的问题,但似乎没有什么可以解决我的问题。
运行科学计算 Linux 6
smb.conf
[global]
netbios name = 10xxxx
server string = <hostname>
workgroup = <DOMAIN>
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = <DOMAIN>.COM
security = ADS
log file = /var/log/samba/log.%m
max log size = 50
idmap uid = 20000-29999
idmap gid = 20000-29999
idmap config <DOMAIN>:backend = ad
idmap config <DOMAIN>default = yes
idmap config <DOMAIN>:range = 10000000-29999999
idmap config <DOMAIN>:schema_mode = rfc2307
winbind nss info = rfc2307
winbind enum users = no
winbind enum groups = no
winbind separator = +
winbind use default domain = yes
winbind nested groups = yes
/etc/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 = <DOMAIN>.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
rdns = false
forwardable = true
default_tgs_enctypes = des-cbc-crc aes256-cts-hmac-sha1-96 arcfour-hmac
default_tkt_enctypes = des-cbc-crc aes256-cts-hmac-sha1-96 arcfour-hmac
[realms]
<DOMAIN>.COM = {
kdc = 10.x.x.x
admin_server = 10.x.x.x
}
[domain_realm]
.<domain>.com = <DOMAIN>.COM
<domain>.com = <DOMAIN>.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
答案1
我可以使用 ldapsearch 进行查询。SSSD 找不到用户
不同之处在于,您使用普通的用户名/密码进行身份验证,而 SSSD 则尝试使用 Kerberos 及其“机器凭据”(每个 AD 成员机器都有)。
每个接受 Kerberos 身份验证的服务器(包括 AD 的 LDAP 服务器)都由基于客户端使用的域名(或 IP 地址,尽管 AD 不正式支持)的“主体名称”标识。例如,当连接到dc1.example.com
LDAP 客户端时,将尝试获取 Kerberos 票证ldap/dc1.example.com@YOUR_REALM
。(SSH 将使用host/…
,SMB 将使用cifs/…
。)
如果您的环境不使用 DNS(没有充分的理由),那么以前的系统管理员必须已将 IP 地址的主体名称直接添加到 AD DC,并且您需要更改它们以匹配您的新网络。
使用非 Kerberos 身份验证连接到 AD LDAP 服务器(可能需要 TLS/LDAPS),例如使用 Apache Directory Studio 或其他 LDAP 客户端,然后找到属于 LDAP 服务器本身的计算机帐户。编辑其servicePrincipalName
属性(多值)以获取正确的名称。(如果服务器运行 Samba,您也可以使用samba-tool spn add
。)
(没有必要更新密钥表因为 Samba LDAP 服务器也是 AD DC,并且将直接从 AD 数据库获取密钥。)