配置 LDAPS
安全 LDAP (LDAPS) 允许您为 Active Directory 管理的域启用安全轻量级目录访问协议,以通过 SSL(安全套接字层)/TLS(传输层安全)提供通信。
- 默认情况下,客户端和服务器应用程序之间的 LDAP 通信未加密。使用 SSL/TLS 的 LDAP (LDAPS) 使您能够保护 Linux VDA 和 LDAP 服务器之间的 LDAP 查询内容。
以下 Linux VDA 组件依赖于 LDAPS:
- Broker 代理:Linux VDA 向 Delivery Controller™ 注册
-
策略服务:策略评估
-
配置 LDAPS 涉及:
- 在 Active Directory (AD)/LDAP 服务器上启用 LDAPS
- 导出根 CA 供客户端使用
- 在 Linux VDA 上启用/禁用 LDAPS
- 为第三方平台配置 LDAPS
- 配置 SSSD
- 配置 Winbind
- 配置 Centrify
- 配置 Quest
在 AD/LDAP 服务器上启用 LDAPS
您可以通过安装来自 Microsoft 证书颁发机构 (CA) 或非 Microsoft CA 的格式正确的证书来启用 LDAP over SSL (LDAPS)。
提示:
当您在域控制器上安装企业根 CA 时,LDAP over SSL/TLS (LDAPS) 会自动启用。
有关如何安装证书和验证 LDAPS 连接的详细信息,请参阅 Microsoft 支持站点上的如何通过第三方证书颁发机构启用 LDAP over SSL。
当您拥有多层(例如两层或三层)证书颁发机构层次结构时,您不会自动拥有用于域控制器上 LDAPS 身份验证的相应证书。
有关如何为使用多层证书颁发机构层次结构的域控制器启用 LDAPS 的信息,请参阅 Microsoft TechNet 站点上的 LDAP over SSL (LDAPS) Certificate 文章。
启用根证书颁发机构供客户端使用
客户端必须使用来自 LDAP 服务器信任的 CA 的证书。要为客户端启用 LDAPS 身份验证,请将根 CA 证书导入到受信任的密钥库。
- 有关如何导出根 CA 的详细信息,请参阅 Microsoft 支持网站上的如何导出根证书颁发机构证书。
在 Linux VDA 上启用或禁用 LDAPS
要在 Linux VDA 上启用或禁用 LDAPS,请运行以下脚本(以管理员身份登录时):
此命令的语法包括以下内容:
-
使用提供的根 CA 证书启用 LDAP over SSL/TLS:
/opt/Citrix/VDA/sbin/enable_ldaps.sh -Enable pathToRootCA <!--NeedCopy--> -
使用通道绑定启用 LDAP over SSL/TLS:
/opt/Citrix/VDA/sbin/enable_ldaps.sh -Enablecb pathToRootCA <!--NeedCopy-->注意:
用于通道绑定的根 CA 证书必须采用 PEM 格式。在启用通道绑定之前,请务必创建 Python3 虚拟环境。有关详细信息,请参阅创建 Python3 虚拟环境。
-
回退到不带 SSL/TLS 的 LDAP
/opt/Citrix/VDA/sbin/enable_ldaps.sh -Disable
<!--NeedCopy-->
专用于 LDAPS 的 Java 密钥库位于 /etc/xdl/.keystore 中。受影响的注册表项包括:
HKLM\Software\Citrix\VirtualDesktopAgent\ListOfLDAPServers
HKLM\Software\Citrix\VirtualDesktopAgent\ListOfLDAPServersForPolicy
HKLM\Software\Citrix\VirtualDesktopAgent\UseLDAPS
HKLM\Software\Policies\Citrix\VirtualDesktopAgent\Keystore
HKLM\Software\Citrix\VirtualDesktopAgent\EnableChannelBinding
<!--NeedCopy-->
-
为第三方平台配置 LDAPS
-
除了 Linux VDA 组件之外,遵循 VDA 的多个第三方软件组件(例如 SSSD、Winbind、Centrify 和 Quest)可能还需要安全 LDAP。以下各节介绍如何使用 LDAPS、STARTTLS 或 SASL 签名和密封来配置安全 LDAP。
-
提示:
-
并非所有这些软件组件都倾向于使用 SSL 端口 636 来确保安全 LDAP。而且在大多数情况下,LDAPS(端口 636 上的 LDAP over SSL)无法与端口 389 上的 STARTTLS 共存。
-
SSSD
-
根据选项在端口 636 或端口 389 上配置 SSSD 安全 LDAP 流量。有关详细信息,请参阅 SSSD LDAP Linux 手册页。
-
Winbind
Winbind LDAP 查询使用 ADS 方法。Winbind 仅支持端口 389 上的 StartTLS 方法。受影响的配置文件是 /etc/openldap/ldap.conf 中的 ldap.conf 和 /etc/samba/smb.conf 中的 smb.conf。按如下方式更改文件:
ldap.conf:
TLS_REQCERT never
smb.conf:
ldap ssl = start tls
ldap ssl ads = yes
client ldap sasl wrapping = plain
<!--NeedCopy-->
或者,可以通过 SASL GSSAPI 签名和密封配置安全 LDAP,但它不能与 TLS/SSL 共存。要使用 SASL 加密,请更改 smb.conf 配置:
smb.conf:
ldap ssl = off
ldap ssl ads = no
client ldap sasl wrapping = seal
<!--NeedCopy-->
Centrify
Centrify 不支持端口 636 上的 LDAPS。但是,它确实在端口 389 上提供了安全加密。有关详细信息,请参阅 Centrify 站点。
Quest
Quest Authentication Service 不支持端口 636 上的 LDAPS,但它使用不同的方法在端口 389 上提供安全加密。
故障排除
使用此功能时可能会出现以下问题:
-
LDAPS 服务可用性
验证 AD/LDAP 服务器上 LDAPS 连接是否可用。默认情况下,端口为 636。
-
启用 LDAPS 后 Linux VDA 注册失败
验证 LDAP 服务器和端口是否配置正确。首先检查根 CA 证书,并确保它与 AD/LDAP 服务器匹配。
-
意外的注册表更改
如果 LDAPS 相关密钥在未使用 enable_ldaps.sh 的情况下意外更新,则可能会破坏 LDAPS 组件的依赖关系。
-
Wireshark 或任何其他网络监控工具未通过 SSL/TLS 加密 LDAP 流量
默认情况下,LDAPS 已禁用。运行 /opt/Citrix/VDA/sbin/enable_ldaps.sh 以强制启用它。
-
Wireshark 或任何其他网络监控工具没有 LDAPS 流量
LDAP/LDAPS 流量在 Linux VDA 注册和组策略评估时发生。
-
通过在 AD 服务器上运行 ldp connect 无法验证 LDAPS 可用性
使用 AD FQDN 而不是 IP 地址。
-
通过运行 /opt/Citrix/VDA/sbin/enable_ldaps.sh 脚本无法导入根 CA 证书
提供 CA 证书的完整路径,并验证根 CA 证书类型是否正确。它应该与大多数受支持的 Java Keytool 类型兼容。如果它未列在支持列表中,您可以先转换类型。如果遇到证书格式问题,我们建议使用 base64 编码的 PEM 格式。
-
使用 Keytool -list 无法显示根 CA 证书
当您通过运行
/opt/Citrix/VDA/sbin/enable_ldaps.sh启用 LDAPS 时,证书将导入到 /etc/xdl/.keystore,并设置密码以保护密钥库。如果您忘记密码,可以重新运行脚本以创建密钥库。