在 Windows 登录之前配置始终可用的 VPN
本节介绍了使用高级策略在 Windows 登录前配置始终可用的 VPN 的详细信息。
必备条件
- Citrix Gateway 和 VPN 插件的版本必须为 13.0.41.20 及更高版本。
- 要使解决方案正常运行,需要 Citrix ADC Advanced Edition 及更高版本。
- 您只能使用高级策略来配置功能。
- VPN 虚拟服务器必须已启动并正在运行。
高级配置步骤
在 Windows 登录前始终可用的 VPN 配置涉及以下高级步骤:
- 设置计算机级通道
- 设置用户级通道(可选)
- 启用用户身份验证
- 配置 VPN 虚拟服务器并将证书密钥绑定到虚拟服务器。
- 创建身份验证配置文件
- 创建身份验证虚拟服务器
- 创建验证策略
- 将策略绑定到身份验证配置文件
计算机级通道
使用设备证书作为身份建立通往 Citrix Gateway 的计算机级通道。设备证书必须安装在计算机存储下的客户端计算机中。这仅适用于 Windows 登录前始终开启服务。
有关设备证书的更多详细信息,请参阅 使用设备证书进行身份验证。
重要提示:
如果 Citrix Gateway 设备上的 VPN 虚拟服务器配置在非标准端口(443 以外)上,则计算机级通道将无法按预期工作。
使用设备证书设置计算机级通道
使用 GUI 进行基于设备证书的身份验证配置
- 在配置选项卡上,导航到 Citrix Gateway > 虚拟服务器。
- 在 Citrix Gateway 虚拟服务器页面上,选择现有虚拟服务器,然后单击 编辑。
- 在 VPN 虚拟服务器页面上,单击编辑图标。
-
单击“设备证书的 CA”部分旁边的“添加”,然后单击“确定”。
注意: 请勿选中启用设备证书复选框。
-
要将 CA 证书绑定到虚拟服务器,请单击 证书部分下的 CA证书。单击SSL 虚拟服务器 CA 证书绑定页面下的 **添加 绑定** 。
注意:
- 设备证书的使用者公用名 (CN) 字段不能为空。如果设备尝试使用空的 CN 设备证书登录,则会使用用户名为“匿名”创建其 VPN 会话。在 IIP 中,如果多个会话具有相同的用户名,则以前的会话将断开连接。因此,启用 IIP 后,您会注意到由于公用名为空而对功能造成的影响。
- 所有可能 对颁发给客户端的设备证书进行签名的 CA 证书(根证书和中间证书)都必须绑定在步骤 4 和 5 中的虚拟服务器 的 CA 证书绑 定部分以及虚拟服务器的 CA 证书绑定部分下。有关将 CA 证书与中级/从属证书关联的详细信息,请参阅 安装、链接和更新证书。
- 如果配置了多个设备证书,将为 VPN 连接尝试使用有效期最长的证书。如果此证书允许 EPA 成功扫描,则会建立 VPN 连接。如果此证书在扫描过程中失败,则使用下一个证书。此过程将一直持续到尝试所有证书为止。
-
单击 单击以选择 以选择所需的证书。
-
选择所需的 CA 证书。
-
单击绑定。
- 创建身份验证虚拟服务器。
- 在“VPN 虚拟服务器”页面的“身份验证配置文件”下,单击“添加”。
- 在“创建身份验证配置文件”页面上,提供身份验证配置文件的名称,然后单击“添加”。
- 在身份验证虚拟服务器页面上,提供身份验证虚拟服务器的名称。选择“IP 地址类型”作为“不可寻址”, 然后单击“确定”。 注意: 身份验证虚拟服务器始终保持关闭状态。
- 创建身份验证策略。
- 在高级身份验证策略下,单击身份验证策略内部。
- 在策略绑定页面上,单击 选择策略 旁边的 添加。
- 在“创建身份验证策略”页面上;
- 输入高级身份验证策略的名称。
- 从“操作类型”列表中选择 EPA 。
- 单击 操作 旁边的 添加。
- 在创建身份验证 EPA 操作页面上;
- 输入要创建的 EPA 操作的名称。
- 在“表达式”字段
sys.client_expr("device-cert_0_0")
中输入。 - 单击创建。
- 在“创建身份验证策略”页面上;
- 输入身份验证策略的名称。
- 在 表达式 字段中输入 is_aosservice 。
- 单击创建。
-
在策略绑定页面上,在 优先级 中输入 100 ,然后单击 绑定。
使用 CLI 配置基于设备证书的身份验证
-
将 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-->
-
添加身份验证虚拟服务器。
add authentication authnProfile <name> {-authnVsName <string>} <!--NeedCopy-->
示例
add authentication authnProfile always_on -authnVsName always_on_auth_server <!--NeedCopy-->
-
创建身份验证 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 ``` -
创建身份验证策略
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
命令显示 Citrix ADC 设备上的设备通道。
用户级通道
使用 GUI 将计算机级通道替换为用户级通道
注意: 表达式 is_aoservice.not
适用于 Citrix Gateway 版本 13.0.41.20 及更高版本。
- 为用户身份验证配置策略。
- 导航到 Citix Gateway > 虚拟服务器 ,然后在 高级设置中单击 身份验证配置文件。
- 配置身份验证配置文件。
- 在“身份验证虚拟服务器”页面上,在身份验证策略中单击。
-
在选择操作中,单击编辑绑定,然后将策略绑定的 GoTo 表达式更改为 NEXT 而非 END。
-
单击“绑定”,然后在“身份验证策略”页面中,选择身份验证策略,然后单击“添加绑定”。
-
在策略绑定页面上,单击 选择策略 旁边的 添加。
在“创建身份验证策略”页面上;
- 输入要创建的“无身份验证”策略的名称。
- 选择操作类型作为 No_AUTHN。
- 在“表达式”字段中输入 is_aoservice.not 。
- 单击创建。
-
在 Select Action(选择操作)中,单击 Edit Binding(编辑绑定)。
- 在策略绑定页面上,在 优先级 中输入 110。单击 选择下一个因素旁边 的 添加。
- 在“身份验证策略标签”页上,输入策略标签的描述性名称,选择登录架构,然后单击 继续。
- 在 选择策略中,单击 添加 并创建 LDAP 身份验证策略。
- 单击“创建”, 然后单击“绑定”。
- 单击“完成”, 然后单击“绑定”。
在“身份验证策略”页面中, 下一个因素 列显示已配置的下一个因素策略。
- 您可以将 LDAP 策略配置为身份验证策略的下一个因素。
- 在“创建身份验证策略”页面上,输入 LDAP 策略的名称。
- 选择“操作类型”作为 LDAP。
- 输入 操作 作为配置的 LDAP 操作。
注意:
- 有关创建登录架构 XML 文件的信息,请参阅 登录架构 XML 文件。
- 有关创建策略标签的信息,请参阅 对策略标签进行身份验证。
- 有关创建 LDAP 身份验证策略的信息,请参阅 使用配置实用程序配置 LDAP 身份验证。
使用 CLI 将计算机级通道替换为用户级通道
-
将策略绑定到身份验证虚拟服务器
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
-
添加带有操作
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
-
添加下一个因素并将策略标签绑定到下一个因素。
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
-
配置 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 | 用户要连接到的 Citrix 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 | 分号分隔的域列表,负责在启用位置检测时检查计算机是否在Intranet中。示例: citrite.net,cgwsanity.net
|
有关这些注册表项的详细信息,请参阅 始终开启。
注意:
配置 Always On 服务时,客户端会忽略在 Citrix Gateway 虚拟服务器或 Citrix ADC 上配置的 Always On 配置文件。因此,在配置始终可用的服务时,请确保还启用了
locationDetection
和AlwaysOn
VPN 注册表。 ```