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 的格式正确的证书来启用通过 SSL 的 LDAP (LDAPS)。
提示:
在域控制器上安装企业根 CA 时,LDAPS 会自动启用。
有关如何安装证书和验证 LDAPS 连接的详细信息,请参阅 How to enable LDAP over SSL with a third-party certification authority。
- 如果您具有多层证书颁发机构层次结构,则不会自动拥有用于域控制器上 LDAPS 身份验证的相应证书。
有关如何使用多层证书颁发机构层次结构为域控制器启用 LDAPS 的信息,请参阅 LDAP over SSL (LDAPS) Certificate 一文。
启用根证书颁发机构以供客户端使用
客户端必须使用 LDAP 服务器信任的 CA 颁发的证书。要为客户端启用 LDAPS 身份验证,请将根 CA 证书导入到受信任的密钥库中。
有关如何导出根 CA 的详细信息,请参阅 Microsoft 支持网站上的 How to export Root Certification Authority Certificate。
在 Linux VDA 上启用或禁用 LDAPS
要在 Linux VDA 上启用或禁用 LDAPS,请运行以下脚本(以管理员身份登录时):
此命令的语法包括:
-
使用提供的根 CA 证书启用通过 SSL/TLS 的 LDAP:
/opt/Citrix/VDA/sbin/enable_ldaps.sh -Enable pathToRootCA <!--NeedCopy--> -
使用通道绑定启用通过 SSL/TLS 的 LDAP:
/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 的第三方软件组件也可能需要安全 LDAP,例如 SSSD、Winbind、Centrify 和 Quest。以下各节介绍了如何使用 LDAPS、STARTTLS 或 SASL 签名和密封来配置安全 LDAP。
-
提示:
-
并非所有这些软件组件都倾向于使用 SSL 端口 636 来确保安全 LDAP。而且大多数情况下,LDAPS(通过 SSL 在端口 636 上运行的 LDAP)无法与端口 389 上的 STARTTLS 共存。
SSSD
根据选项在端口 636 或端口 389 上配置 SSSD 安全 LDAP 流量。有关详细信息,请参阅 SSSD LDAP Linux man page。
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 组件的依赖关系。
-
LDAP 流量未通过 Wireshark 或任何其他网络监视工具通过 SSL/TLS 加密
默认情况下,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,并设置密码以保护密钥库。如果您忘记了密码,可以重新运行脚本以创建密钥库。