LDAPS
LDAPS 是轻量目录访问协议 (LDAP) 的安全版本,其中 LDAP 通信使用 TLS/SSL 进行加密。
- 默认情况下,客户端和服务器应用程序之间的 LDAP 通信未加密。LDAPS 使您能够保护 Linux VDA 与 LDAP 服务器之间的 LDAP 查询内容。
以下 Linux VDA 组件依赖于 LDAPS:
- 代理代理:Linux VDA 向 Delivery Controller™ 注册
-
策略服务:策略评估
-
配置 LDAPS 涉及:
- 在 Active Directory (AD)/LDAP 服务器上启用 LDAPS
- 导出根 CA 以供客户端使用
- 在 Linux VDA 上启用/禁用 LDAPS
- 为第三方平台配置 LDAPS
- 配置 SSSD
- 配置 Winbind
- 配置 Centrify
- 配置 Quest
注意:
您可以运行以下命令来设置 LDAP 服务器的监视周期。默认值为 15 分钟。请至少将其设置为 10 分钟。
/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "ListOfLDAPServersMonitorPeroid" -t "REG_DWORD" -d "0x0000000f" --force <!--NeedCopy-->
在 AD/LDAP 服务器上启用 LDAPS
您可以通过安装来自 Microsoft 证书颁发机构 (CA) 或非 Microsoft CA 的格式正确的证书来启用 LDAP over SSL (LDAPS)。
提示:
当您在域控制器上安装企业根 CA 时,LDAPS 会自动启用。
有关如何安装证书和验证 LDAPS 连接的详细信息,请参阅 如何使用第三方证书颁发机构启用 LDAP over SSL。
- 当您拥有多层证书颁发机构层次结构时,域控制器上不会自动拥有用于 LDAPS 身份验证的相应证书。
有关如何使用多层证书颁发机构层次结构为域控制器启用 LDAPS 的信息,请参阅 LDAP over SSL (LDAPS) 证书 一文。
启用根证书颁发机构以供客户端使用
客户端必须使用 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 格式。如果启用 LDAPS 未能成功创建 Python3 虚拟环境,请按照 创建 Python3 虚拟环境 中的说明手动创建。
要解决使用 pip 工具时可能遇到的 SSL 连接错误,请考虑将以下受信任主机添加到 /etc/pip.conf 文件中:
[global] -
trusted-host =pypi.orgfiles.pythonhosted.org - 回退到不带 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
根据选项配置 SSSD 安全 LDAP 流量,端口为 636 或 389。有关详细信息,请参阅 SSSD LDAP Linux 手册页。
Winbind
Winbind LDAP 查询使用 ADS 方法。Winbind 仅支持端口 389 上的 StartTLS 方法。受影响的配置文件是 /etc/samba/smb.conf 和 /etc/openldap/ldap.conf(适用于 RHEL)或 /etc/ldap/ldap.conf(适用于 Ubuntu)。按如下方式更改文件:
-
smb.conf
ldap ssl = start tlsldap ssl ads = yesclient ldap sasl wrapping = plain -
ldap.conf
TLS_REQCERT never
或者,您可以通过 SASL GSSAPI 签名和密封配置安全 LDAP,但它不能与 TLS/SSL 共存。要使用 SASL 加密,请更改 smb.conf 配置:
ldap ssl = off
ldap ssl ads = no
client ldap sasl wrapping = seal
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 服务器匹配。
-
意外的注册表更改
如果您在未使用 enable_ldaps.sh 的情况下意外更新了与 LDAPS 相关的密钥,则可能会破坏 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 中,并设置密码以保护密钥库。如果您忘记了密码,可以重新运行脚本以创建密钥库。