Gateway

在 Windows 登录之前配置始终可用的 VPN

本节介绍了使用高级策略在 Windows 登录前配置始终可用的 VPN 的详细信息。

必备条件

  • NetScaler Gateway 和 VPN 插件的版本必须为 13.0.41.20 及更高版本。
  • 要使解决方案正常运行,需要 NetScaler Advanced Edition 及更高版本。
  • 您只能使用高级策略来配置功能。
  • VPN 虚拟服务器必须已启动并正在运行。

高级配置步骤

在 Windows 登录前始终可用的 VPN 配置涉及以下高级步骤:

  1. 设置计算机级通道
  2. 设置用户级通道(可选)
  3. 启用用户身份验证
    1. 配置 VPN 虚拟服务器,安装 CA 证书,并将证书密钥绑定到虚拟服务器。
    2. 创建身份验证配置文件
    3. 创建身份验证虚拟服务器
    4. 创建验证策略
    5. 将策略绑定到身份验证配置文件

计算机级通道

使用设备证书作为身份建立通往 NetScaler Gateway 的计算机级通道。设备证书必须安装在计算机存储下的客户端计算机中。这仅适用于 Windows 登录前始终开启服务。

有关设备证书的更多详细信息,请参阅 使用设备证书进行身份验证

重要:

如果 NetScaler Gateway 设备上的 VPN 虚拟服务器配置在非标准端口(443 以外)上,则计算机级通道将无法按预期工作。

使用设备证书设置计算机级通道

使用 GUI 进行基于设备证书的身份验证配置

  1. 配置选项卡上,导航到 NetScaler Gateway> 虚拟服务器
  2. 在“NetScaler Gateway 虚拟服务器”页面上,选择现有虚拟服务器,然后单击“编辑”。
  3. 在“证书”下,单击 CA 证书

  4. CA 证书绑定页面上,单击“选择 CA 证书”字段旁边的“添加”,更新所需信息,然后单击“安装”。

    安装 CA 证书

  5. VPN 虚拟服务器页面上,单击编辑图标。

  6. 在“基本设置”部分中,单击“更多”。

  7. 单击“设备证书 CA”部分旁边的“添加”,然后单击“确定”。

    为设备证书添加 ca

    注意:请勿选中“启用设备证书”复选框。

  8. 要将 CA 证书绑定到虚拟服务器,请单击 证书部分下的 CA证书。单击SSL 虚拟服务器 CA 证书绑定页面下的 **添加 绑定** 。

    注意:

    • 设备证书的使用者公用名 (CN) 字段不能为空。如果设备尝试使用空的 CN 设备证书登录,则会使用用户名为“匿名”创建其 VPN 会话。在 IIP 中,如果多个会话具有相同的用户名,则以前的会话将断开连接。因此,启用 IIP 后,您会注意到由于公用名为空而对功能造成的影响。
    • 所有可能 对颁发给客户端的设备证书进行签名的 CA 证书(根证书和中间证书)都必须绑定在步骤 4 和 5 中的虚拟服务器CA 证书绑 定部分以及虚拟服务器的 CA 证书绑定部分下。有关将 CA 证书与中级/从属证书关联的详细信息,请参阅 安装、链接和更新证书
    • 如果配置了多个设备证书,将为 VPN 连接尝试使用有效期最长的证书。如果此证书允许 EPA 成功扫描,则会建立 VPN 连接。如果此证书在扫描过程中失败,则使用下一个证书。此过程将一直持续到尝试所有证书为止。
  9. CA 证书绑定页面上,选择证书。

  10. 单击绑定

  11. 创建身份验证虚拟服务器。
    1. VPN 虚拟服务器页面上,导航到高级设置 > 身份验证配置文件,然后单击添加
    2. 在“创建身份验证配置文件”页面上,为身份验证配置文件指定名称,然后单击“创建”。 创建身份验证配置文件
    3. 在“身份验证虚拟服务器”页面上,为身份验证虚拟服务器分配一个名称。 将 IP 地址类型选择为不可寻址,然后单击“确定”。 选择不可寻址的 IP 类型

    注意:

    身份验证虚拟服务器始终保持关闭状态。

  12. 创建身份验证策略。
    1. “安全”>“AAA 应用程序流量”>“身份验证虚拟服务器”页面的“高级身份验证策略”部分,选择身份验证策略并单击“添加绑定”。
    2. 在“策略绑定”页面上,单击“选择策略”字段旁边的“添加”。
    3. 在“创建身份验证策略”页面上;
      1. 为高级身份验证策略分配一个名称。
      2. 从“操作类型”列表中选择 EPA
      3. 单击 操作 旁边的 添加选择 EPA 操作类型
    4. 在创建身份验证 EPA 操作页面上;
      1. 为 EPA 操作指定名称。
      2. 在“表达式”字段 sys.client_expr("device-cert_0_0") 中输入。
      3. 单击创建

        创建表达式

  13. 在“创建身份验证策略”页面上;
    1. 为身份验证策略指定名称。
    2. 表达式 字段中输入 is_aosservice
    3. 单击创建

      创建表达式 2

  14. 在策略绑定页面上,在 优先级 中输入 100 ,然后单击 绑定

使用 CLI 配置基于设备证书的身份验证

  1. 在 VPN 虚拟服务器上安装 CA 证书。

    add ssl certkey ckp -cert t_CA.cer
    <!--NeedCopy-->
    
  2. 将 CA 证书绑定到 VPN 虚拟服务器。

    bind ssl vserver <vServerName> -certkeyName <string> -ocspCheck ( Mandatory | Optional )
    <!--NeedCopy-->
    

    示例

    bind ssl vserver TestClient -CertkeyName ag51.xm.nsi.test.com -CA -ocspCheck Mandatory
    <!--NeedCopy-->
    
  3. 添加身份验证虚拟服务器。

    add authentication authnProfile <name>  {-authnVsName <string>}
    <!--NeedCopy-->
    

    示例

    add authentication authnProfile always_on -authnVsName always_on_auth_server
    <!--NeedCopy-->
    
  4. 创建身份验证 EPA 操作。

    add authentication epaAction <name> -csecexpr <expression>
    <!--NeedCopy-->
    

    Example

    ``` add authentication epaAction epa-act -csecexpr sys.client_expr("device-cert_0_0") -defaultgroup epa_pass ```

  5. 创建身份验证策略

    add authentication Policy <name> -rule <expression> -action <string>
    

    示例:

    add authentication Policy always_on_epa_auth -rule is_aoservice -action epa_auth
    

重要提示:

  • 计算机级通道配置现已完成。要在 Windows 登录后设置用户级通道,请参阅 用户级通道部分。

  • 在客户端计算机上,设备证书采用.pfx 格式。.pfx 证书安装在 Windows 计算机上,因为 Windows 可以理解 .pfx 格式。此文件包含证书和密钥文件。此证书必须与绑定到虚拟服务器的域相同。可以使用客户端证书向导生成.pfx 和服务器证书和密钥。这些证书可与证书颁发机构一起使用以生成带有服务器证书和域的相应.pfx。证书.pfx安装在个人文件夹的计算机帐户中。该 show aaa session 命令显示 NetScaler 设备上的设备通道。

用户级通道

使用 GUI 将计算机级通道替换为用户级通道

注意: 该表达式适用 is_aoservice.not 于 NetScaler Gateway 版本 13.0.41.20 及更高版本。

  1. 为用户身份验证配置策略。
    1. 导航到 NetScaler Gateway > 虚拟服务器,然后选择虚拟服务器。
    2. Advanced Settings(高级设置)中,单击 Authentication Profile(身份验证配置文件)。
    3. 配置身份验证配置文件。
    4. 配置 > 安全 > AAA 应用程序流量 > 身份验证虚拟服务器页面上 ,选择身份验证策略。
    5. 选择操作中,单击编辑绑定,然后将策略绑定的 GoTo 表达式更改为 NEXT 而非 END

      绑定策略

      绑定策略

    6. 单击“绑定”,然后在“身份验证策略”页面中,单击“添加绑定”。

      绑定策略 2

    7. 在策略绑定页面上,单击 选择策略 旁边的 添加bind policy2 在“创建身份验证策略”页面上;
      1. 输入要创建的“无身份验证”策略的名称。
      2. 选择操作类型作为 No_AUTHN
      3. 在“表达式”字段中输入 is_aoservice.not
      4. 单击创建`No-auth-policy`
  2. Select Action(选择操作)中,单击 Edit Binding(编辑绑定)。

    Edit-binding-user-tunnel

  3. 在策略绑定页面上,在 优先级 中输入 110。单击 选择下一个因素旁边添加
    1. 在“身份验证策略标签”页上,输入策略标签的描述性名称,选择登录架构,然后单击 继续
    2. 选择策略中,单击 添加 并创建 LDAP 身份验证策略。
    3. 单击“创建”, 然后单击“绑定”。
    4. 单击“完成”, 然后单击“绑定”。

    在“身份验证策略”页面中, 下一个因素 列显示已配置的下一个因素策略。

    `Alwayson-complete-configuration`

  4. 您可以将 LDAP 策略配置为身份验证策略的下一个因素。
    1. 在“创建身份验证策略”页面上,输入 LDAP 策略的名称。
    2. 选择“操作类型”作为 LDAP
    3. 输入 操作 作为配置的 LDAP 操作。

    注意:

使用 CLI 将计算机级通道替换为用户级通道

  1. 将策略绑定到身份验证虚拟服务器

    bind authentication vserver <name> -policy <name> -priority  <positive_integer> -gotoPriorityExpression <expression>
    

    示例

    bind authentication vserver alwayson-auth-vserver -policy alwayson-auth-pol -priority 100 -gotoPriorityExpression NEXT
    
    
  2. 添加带有操作 NO_AUTH 和表达式 is_aoservice.not, 的身份验证策略,并将其绑定到策略。

    add authentication Policy <name> -rule <expression> -action <string>
    
    bind authentication vserver <name> -policy <name> -priority <positive_integer> -gotoPriorityExpression <expression>
    

    示例

    add authentication Policy alwayson-usertunnel-pol -rule is_aoservice.not -action NO_AUTHN
    
    bind authentication vserver alwayson-auth-vserver -policy alwayson-usertunnel-pol -priority 110
    
  3. 添加下一个因素并将策略标签绑定到下一个因素。

    add authentication policylabel <labelName> -loginSchema <string>
    
    bind authentication  policylabel <string>  -policyName <string>  -priority <positive_integer> -gotoPriorityExpression <expression> -nextFactor <string>
    

    示例

    add authentication policylabel user-tunnel-auth-label -loginSchema singleauth_alwayson
    
    bind authentication policylabel user -policyName alwayson-usertunnel-pol -priority 100
    
  4. 配置 LDAP 策略并将其绑定到用户通道策略标签。

    
    add authentication policy <name>  -rule <expression>  -action <string>
    
    bind authentication vserver <vserver_name> -policy <string>  -priorit < positive integer>  gotoPriorityExpression <string>
    

    示例

    add authentication Policy LDAP_new -rule true -action LDAP_new
    
    bind authentication policylabel user-tunnel-auth-label -policyName LDAP_new -priority 100 -gotoPriorityExpression NEXT
    

客户端配置

AlwaysOn, locationDetection, and suffixList registries 是可选的,只有在需要位置检测功能时才需要。

要访问注册表项项,请导航到以下路径:计算机>HKEY_LOCAL_MACHINE>SOFTWARE>Citrix>Secure Access Client

注册表项 注册表类型 值和描述
AlwaysOnService REG_DWORD 1 => 建立计算机级通道但不建立用户级通道;2 => 建立计算机级通道和用户级通道
AlwaysOnURL REG SZ 用户要连接到的 NetScaler Gateway 虚拟服务器的 URL。示例: https://xyz.companyDomain.com 重要: 只有一个 URL 负责计算机级通道和用户级通道。AlwaysOnURL 注册表可帮助服务和用户级组件工作,并根据设计连接单独的通道,即计算机级通道和用户级通道
AlwaysOn REG_DWORD 1 => 在 VPN 失败时允许网络访问;2=> VPN 失败时阻止网络访问
AlwaysOnAllowlist REG_SZ 计算机在严格模式下运行时必须列入白名单的 IP 地址或 FQDN 的分号分隔列表。示例: 8.8.8.8;linkedin.com
UserCertCAList REG_SZ 以逗号或分号分隔的根 CA 名称列表,即证书的颁发者名称。在 AlwaysOn 服务的上下文中使用,客户可以在此服务中指定要从中选择客户证书的 CA 列表。示例cgwsanity.net;xyz.gov.in
locationDetection REG_DWORD 1 => 启用位置检测;0 => 禁用位置检测
suffixList REG SZ 分号分隔的域列表,负责在启用位置检测时检查计算机是否在内联网中。示例: citrite.net,cgwsanity.net

有关这些注册表项的详细信息,请参阅 始终开启

注意:

配置“始终可用”服务时,客户端会忽略在 NetScaler Gateway 虚拟服务器或 NetScaler 上配置的“始终开启”配置文件。因此,在配置始终可用的服务时,请确保还启用了 locationDetectionAlwaysOn VPN 注册表。 ```

在 Windows 登录之前配置始终可用的 VPN