4.2. 配置 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
# dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedirCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将身份验证供应商切换到
sssd:authselect select sssd with-mkhomedir
# authselect select sssd with-mkhomedirCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将包含 root CA 签名证书链的
core-dirsrv.ca.pem文件从颁发 OpenLDAP 服务器的 SSL/TLS 证书的证书颁发机构链复制到/etc/openldap/certs文件夹。cp core-dirsrv.ca.pem /etc/openldap/certs
# cp core-dirsrv.ca.pem /etc/openldap/certsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 LDAP 服务器的 URL 和后缀添加到
/etc/openldap/ldap.conf文件中:URI ldap://ldap-server.example.com/ BASE dc=example,dc=com
URI ldap://ldap-server.example.com/ BASE dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/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
# 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.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/etc/sssd/sssd.conf文件中,将您的环境值添加到ldap_uri和ldap_search_base参数中,并将ldap_id_use_start_tls设为True:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/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 …
… cache_credentials = True ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem ldap_tls_reqcert = hard …Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改
/etc/sssd/sssd.conf文件的权限:chmod 600 /etc/sssd/sssd.conf
# chmod 600 /etc/sssd/sssd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启并启用 SSSD 服务和
oddjobd守护进程:systemctl restart sssd oddjobd systemctl enable sssd oddjobd
# systemctl restart sssd oddjobd # systemctl enable sssd oddjobdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果您的 LDAP 服务器使用已弃用的 TLS 1.0 或 TLS 1.1 协议,请将客户端系统上的系统范围的加密策略切换为 LEGACY 级别,以允许 RHEL 使用这些协议进行通信:
update-crypto-policies --set LEGACY
# update-crypto-policies --set LEGACYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多详细信息,请参阅红帽客户门户网站上的 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_user> uid=17388( <ldap_user>) gid=45367(sysadmins) groups=45367(sysadmins),25395(engineers),10(wheel),1202200000(admins)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
系统管理员现在可以使用 id 命令从 LDAP 查询用户。该命令返回一个正确的用户 ID 和组群成员。