Linux Virtual Delivery Agent

LDAPS

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

  • 默认情况下,客户端和服务器应用程序之间的 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

注意:

您可以运行以下命令为 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) Certificate 一文。

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

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

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

在 Linux VDA 上启用或禁用 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 的一些第三方软件组件也可能需要安全 LDAP,例如 SSSD、Winbind、Centrify 和 Quest。以下各节介绍如何使用 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/samba/smb.conf/etc/openldap/ldap.conf(适用于 Amazon Linux 2、RHEL、Rocky Linux、CentOS 和 SUSE)或 /etc/ldap/ldap.conf(适用于 Debian 和 Ubuntu)。按如下方式更改文件:

  • 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

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 中,并设置密码以保护密钥库。如果您忘记了密码,可以重新运行脚本以创建密钥库。

LDAPS