LDAPS

LDAPS 是轻量级目录访问协议 (LDAP) 的安全版本,其中 LDAP 通信使用 TLS/SSL 加密。

默认情况下,客户端和服务器应用程序之间的 LDAP 通信未加密。LDAPS 使您能够保护 Linux VDA 和 LDAP 服务器之间的 LDAP 查询内容。

以下 Linux VDA 组件对 LDAPS 具有依赖性:

  • Broker agent: Linux VDA registration with a Delivery Controller™
  • 策略服务:策略评估

配置 LDAPS 涉及:

  • 在 活动目录 (AD)/LDAP 服务器上启用 LDAPS
  • 导出根 CA 供客户端使用
  • 在 Linux 虚拟投递代理上启用或禁用 LDAPS 功能
  • 为第三方平台配置 LDAPS
  • 配置 SSSD 服务
  • 配置 温拜德
  • 配置 森特里菲
  • 配置 奎斯特

注意:

您可以运行以下命令为您的 LDAP 服务器设置监视周期。默认值为 15 分钟。至少将其设置为 10 分钟。

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "ListOfLDAPServersMonitorPeroid" -t "REG_DWORD" -d "0x0000000f" --force
<!--NeedCopy-->

在 活动目录/LDAP 服务器上启用 LDAPS

您可以通过安装格式正确的证书来启用 LDAP over SSL (LDAPS),该证书可来自 Microsoft 证书颁发机构 (CA) 或非 Microsoft CA。

提示:

当您在域控制器上安装企业根 CA 时,LDAPS 会自动启用。

有关如何安装证书和验证 LDAPS 连接的详细信息,请参阅如何使用第三方证书颁发机构启用 LDAP over SSL

当您拥有多层证书颁发机构层次结构时,您不会自动拥有相应的证书用于域控制器上的 LDAPS 身份验证。

有关如何使用多层证书颁发机构层次结构为域控制器启用 LDAPS 的信息,请参阅LDAP over SSL (LDAPS) 证书 一文。

启用根证书颁发机构供客户端使用

客户端必须使用 LDAP 服务器信任的 CA 颁发的证书。要为客户端启用 LDAPS 身份验证,请将根 CA 证书导入到受信任的密钥库中。

有关如何导出根 CA 的详细信息,请参阅 Microsoft 支持网站上的如何导出根证书颁发机构证书

在 Linux 虚拟投递代理上启用或禁用 LDAPS

要在 Linux VDA 上启用或禁用 LDAPS,请运行 enable_ldaps.sh 脚本(以管理员身份登录时)。要在非交互模式下运行 enable_ldaps.sh 脚本,请将以下变量导出到您的环境中:

#CTX_LDAPS_KEYSTORE_PASSWORD=

#CTX_LDAPS_LDAP_SERVERS=
<!--NeedCopy-->
  • 要启用带根 CA 证书的 LDAP over SSL/TLS(支持 LDAP 通道绑定):

     /opt/Citrix/VDA/sbin/enable_ldaps.sh -Enable pathToRootCA
     <!--NeedCopy-->
    
  • 回退到不使用 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 手册页

温绑定

The Winbind LDAP query uses the ADS method. Winbind supports only the StartTLS method on port 389. Affected configuration files are /etc/samba/smb.conf and /etc/openldap/ldap.conf (for Amazon Linux 2, RHEL, Rocky Linux, CentOS, and SUSE) or /etc/ldap/ldap.conf (for Debian and Ubuntu). Change the files as follows:

  • smb.conf

    ldap ssl = start tls ldap ssl ads = yes client 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 不支持端口 636 上的 LDAPS。但是,它在端口 389 上提供安全加密。有关详细信息,请参阅 Centrify 站点

奎斯特

Quest Authentication Service 不支持端口 636 上的 LDAPS,但它使用不同的方法在端口 389 上提供安全加密。

故障排除

使用此功能时可能会出现以下问题:

  • LDAPS 服务可用性

    验证 AD/LDAP 服务器上 LDAPS 连接是否可用。默认端口为 636。

  • 当 LDAPS 启用时,Linux VDA 的注册过程未能成功

    验证 LDAP 服务器和端口是否配置正确。首先检查根 CA 证书,并确保它与 AD/LDAP 服务器匹配。

  • 意外的注册表更改

    如果您在未使用 enable_ldaps.sh 的情况下意外更新了 LDAPS 相关密钥,这可能会破坏 LDAPS 组件的依赖关系。

  • 通过 Wireshark 或任何其他网络监控工具,LDAP 流量未通过 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,并设置密码以保护密钥库。如果忘记密码,可以重新运行脚本以创建密钥库。