第 5 章 配置 SSSD 以使用 LDAP 并需要 TLS 身份验证
完成这个步骤,将 Red Hat Enterprise Linux (RHEL) 系统配置为 OpenLDAP 客户端。
使用以下客户端配置:
- RHEL 系统验证存储在 OpenLDAP 用户帐户数据库中的用户。
- RHEL 系统使用系统安全服务守护进程 (SSSD) 服务检索用户数据。
- RHEL 系统通过 TLS 加密的连接与 OpenLDAP 服务器通信。
您还可以使用此流程将 RHEL 系统配置为 Red Hat Directory Server 的客户端。
先决条件
- OpenLDAP 服务器安装并配置了用户信息。
- 您在要配置为 LDAP 客户端的主机上具有 root 权限。
-
在您要配置为 LDAP 客户端的主机上,已创建并配置了
/etc/sssd/sssd.conf
文件,以将ldap
指定为autofs_provider
和id_provider
。 -
您有来自发布 OpenLDAP 服务器的证书颁发机构的 root CA 签名证书链的 PEM 格式副本,存储在名为
core-dirsrv.ca.pem
的本地文件中。
流程
安装必要的软件包:
# dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
将身份验证供应商切换到
sssd
:# authselect select sssd with-mkhomedir
将包含 root CA 签名证书链的
core-dirsrv.ca.pem
文件从颁发 OpenLDAP 服务器的 SSL/TLS 证书的证书颁发机构链复制到/etc/openldap/certs
文件夹。# cp core-dirsrv.ca.pem /etc/openldap/certs
将 LDAP 服务器的 URL 和后缀添加到
/etc/openldap/ldap.conf
文件中:URI ldap://ldap-server.example.com/ BASE dc=example,dc=com
在
/etc/openldap/ldap.conf
文件中,向/etc/openldap/certs/core-dirsrv.ca.pem
添加指向 TLS_CACERT 参数的行:# When no CA certificates are specified the Shared System Certificates # are in use. In order to have these available along with the ones specified # by TLS_CACERTDIR one has to include them explicitly: TLS_CACERT /etc/openldap/certs/core-dirsrv.ca.pem
在
/etc/sssd/sssd.conf
文件中,将您的环境值添加到ldap_uri
和ldap_search_base
参数中,并将ldap_id_use_start_tls
设为True
:[domain/default] id_provider = ldap autofs_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://ldap-server.example.com/ ldap_search_base = dc=example,dc=com ldap_id_use_start_tls = True cache_credentials = True ldap_tls_cacertdir = /etc/openldap/certs ldap_tls_reqcert = allow [sssd] services = nss, pam, autofs domains = default [nss] homedir_substring = /home …
在
/etc/sssd/sssd.conf
中,修改[domain]
部分中的ldap_tls_cacert
和ldap_tls_reqcert
值来指定 TLS 身份验证要求:… cache_credentials = True ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem ldap_tls_reqcert = hard …
更改
/etc/sssd/sssd.conf
文件的权限:# chmod 600 /etc/sssd/sssd.conf
重启并启用 SSSD 服务和
oddjobd
守护进程:# systemctl restart sssd oddjobd # systemctl enable sssd oddjobd
可选:如果您的 LDAP 服务器使用已弃用的 TLS 1.0 或 TLS 1.1 协议,请将客户端系统上的系统范围的加密策略切换到 LEGACY 级别,以允许 RHEL 使用这些协议进行通信:
# update-crypto-policies --set LEGACY
如需了解更多详细信息,请参阅红帽客户门户网站中的 RHEL 8 中的强加密默认值和弱加密算法 知识库中的文章以及 系统中的
update-crypto-policies (8)
手册页。
验证
验证您可以使用
id
命令和指定 LDAP 用户从 LDAP 服务器检索用户数据:# id ldap_user uid=17388(ldap_user) gid=45367(sysadmins) groups=45367(sysadmins),25395(engineers),10(wheel),1202200000(admins)
系统管理员现在可以使用 id
命令从 LDAP 查询用户。该命令返回一个正确的用户 ID 和组群成员。