我正在尝试使用 SSSD 在 CentOS 8.2 机器上配置 LDAP 客户端。
该服务器不使用 TLS 或 SSL。
我修改了以下配置文件:
/etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss, pam
domains = default
reconnection_retries = 3
sbus_timeout = 30
[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
offline_credentials_expiration = 60
[domain/default]
ldap_schema = rfc2307
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://[...]
ldap_search_base = dc=[...]
ldap_id_use_start_tls = False
ldap_tls_cacertdir = /etc/openldap/cacerts
cache_credentials = True
ldap_tls_reqcert = never
ldap_search_timeout = 50
ldap_network_timeout = 60
/etc/openldap/ldap.conf
URI ldap://[...]
BASE dc=[...]
TLS_CACERTDIR /etc/openldap/cacerts
我还运行了这个命令来选择 SSSD:
$ authselect select sssd --force
并重新启动SSD服务。
当我与 LDAP 用户执行操作时id <user>
,它会返回我期望的信息。
但是,当我尝试使用此计算机上的 LDAP 用户登录时,输入密码后出现的只是以下错误:
Permission denied, please try again.
查看 LDAP 服务器日志时,有以下几行:
Nov 27 16:50:23 slapd[22838]: conn=7291 fd=34 ACCEPT from IP=193.51.99.18:40034 (IP=0.0.0.0:389)
Nov 27 16:50:23 slapd[22838]: conn=7291 op=0 SRCH base="" scope=0 deref=0 filter="(objectClass=*)"
Nov 27 16:50:23 slapd[22838]: conn=7291 op=0 SRCH attr=* altServer namingContexts supportedControl supportedExtension supportedFeatures supportedLDAPVersion supportedSASLMechanisms domainControllerFunctionality defaultNamingContext lastUSN highestCommittedUSN
Nov 27 16:50:23 slapd[22838]: conn=7291 op=0 SEARCH RESULT tag=101 err=0 nentries=1 text=
Nov 27 16:50:23 slapd[22838]: get_filter: conn 7291 unknown attribute type=sudoHost (17)
Nov 27 16:50:23 slapd[22838]: get_ssa: conn 7291 unknown attribute type=sudoHost (17)
Nov 27 16:50:23 slapd[22838]: get_ssa: conn 7291 unknown attribute type=sudoHost (17)
Nov 27 16:50:23 slapd[22838]: get_ssa: conn 7291 unknown attribute type=sudoHost (17)
Nov 27 16:50:23 slapd[22838]: get_ssa: conn 7291 unknown attribute type=sudoHost (17)
Nov 27 16:50:23 slapd[22838]: get_ssa: conn 7291 unknown attribute type=sudoHost (17)
Nov 27 16:50:23 slapd[22838]: conn=7291 op=1 SRCH base="dc=[...]" scope=2 deref=0 filter="(&(?objectClass=sudoRole)(|(&(!(?sudoHost=
*))(cn=defaults))(?sudoHost=ALL)(?sudoHost=[...])(?sudoHost=[...])(?sudoHost=10.0.0.254)(?sudoHost=10.0.0.0/24)(?sudoH
ost=10.75.1.18)(?sudoHost=10.75.1.0/25)(?sudoHost=193.51.99.18)(?sudoHost=193.51.99.0/24)(?sudoHost=10.0.1.254)(?sudoHost=10.0.1.0/24)(?sud
oHost=192.168.122.1)(?sudoHost=192.168.122.0/24)(?sudoHost=+*)(|(?sudoHost=*\5C*)(?sudoHost=*?*)(?sudoHost=*\2A*)(?sudoHost=*[*]*))))"
Nov 27 16:50:23 slapd[22838]: conn=7291 op=1 SRCH attr=objectClass objectClass cn sudoCommand sudoHost sudoUser sudoOption sudoRunA
s sudoRunAsUser sudoRunAsGroup sudoNotBefore sudoNotAfter sudoOrder modifyTimestamp
Nov 27 16:50:23 slapd[22838]: conn=7291 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
据我所知,服务器不理解客户端正在寻找的一些属性,但我不确定,而且我没有找到有关此类错误的任何信息。
有人知道这里可能是什么问题吗?谢谢!
答案1
sssd 不支持通过未加密连接进行 LDAP 身份验证。
来自 sssd-ldap(5) 手册页:
如果您想针对 LDAP 服务器进行身份验证,则需要 TLS/SSL 或 LDAPS。sssd 不支持通过未加密通道进行身份验证。如果 LDAP 服务器仅用作身份提供者,则不需要加密通道。有关使用 LDAP 作为访问提供者的更多信息,请参阅“ldap_access_filter”配置选项。