NetScaler Gateway
重要提示:
我们建议您在应用这些更改之前创建 NetScaler 快照或保存 NetScaler 配置。
-
要创建新的 NetScaler Gateway,请使用 ns_gateway_secure_access.sh.
要更新现有 NetScaler Gateway,请使用 ns_gateway_secure_access_update.sh.
-
将这些脚本上传到 NetScaler 机器。 您可以使用 WinSCP 应用程序或 SCP 命令。 例如,
*scp ns_gateway_secure_access.sh nsroot@nsalfa.fabrikam.local:/var/tmp*
。例如,
*scp ns_gateway_secure_access.sh nsroot@nsalfa.fabrikam.local:/var/tmp*
注意:
- 建议使用 NetScaler /var/tmp 文件夹来存储临时数据。
- 确保文件以 LF 行尾保存。 FreeBSD 不支持 CRLF。
- 如果您看到错误
-bash: /var/tmp/ns_gateway_secure_access.sh: /bin/sh^M: bad interpretationr: No such file or directory
,则表示行尾不正确。 您可以使用任何富文本编辑器(例如 Notepad++)转换脚本。
- SSH 到 NetScaler 并切换到 shell(在 NetScaler CLI 上输入“shell”)。
-
使上传的脚本可执行。 使用 chmod 命令来执行此操作。
chmod +x /var/tmp/ns_gateway_secure_access.sh
-
在 NetScaler shell 上运行上传的脚本。
-
输入所需参数。 有关参数列表,请参阅 先决条件.
对于身份验证配置文件和 SSL 证书,您必须提供 NetScaler 上现有资源的名称。
生成一个包含多个 NetScaler 命令的新文件(默认为 var/tmp/ns_gateway_secure_access)。
注意:
在脚本执行期间,会检查 NetScaler 和安全私有访问插件的兼容性。 如果 NetScaler 支持 Secure Private Access 插件,则该脚本将启用 NetScaler 功能,以支持 smartaccess 标记、发送改进以及在访问资源受到限制时重定向到新的拒绝页面。 有关智能标签的详细信息,请参阅 支持智能访问标签.
/nsconfig/rc.netscaler 文件中保留的 Secure Private Access 插件功能允许在重新启动 NetScaler 后保持启用状态。
![NetScaler 配置 2](/en-us/citrix-secure-private-access/media/spaop-configure-netscaler2.png)
-
切换到 NetScaler CLI 并使用批处理命令从新文件运行生成的 NetScaler 命令。 举个例子;
batch -fileName /var/tmp/ns_gateway_secure_access -outfile
/var/tmp/ns_gateway_secure_access_output
NetScaler 逐个运行文件中的命令。 如果一个命令失败,它会继续执行下一个命令。
如果资源存在或步骤 6 中输入的某个参数不正确,则命令可能会失败。
-
确保所有命令均成功完成。
注意:
如果出现错误,NetScaler 仍会运行剩余的命令并部分创建/更新/绑定资源。 因此,如果由于某个参数不正确而出现意外错误,建议从开始重新进行配置。
使用现有配置在 NetScaler Gateway 上配置 Secure Private Access
您还可以使用现有 NetScaler Gateway 上的脚本来支持安全私有访问。 但是,该脚本不会更新以下内容:
- 现有的 NetScaler Gateway 虚拟服务器
- 绑定到 NetScaler Gateway 的现有会话操作和会话策略
确保在执行之前检查每个命令并创建网关配置的备份。
NetScaler Gateway 虚拟服务器上的设置
添加或更新现有的 NetScaler Gateway 虚拟服务器时,请确保将以下参数设置为定义的值。
添加虚拟服务器:
- tcp配置文件名称:nstcp_default_XA_XD_profile
- 部署类型:ICA_STOREFRONT(仅适用于
add vpn vserver
命令) - icaOnly:关闭
更新虚拟服务器:
- tcp配置文件名称:nstcp_default_XA_XD_profile
- icaOnly:关闭
示例:
要添加虚拟服务器,请执行以下操作:
add vpn vserver _SecureAccess_Gateway SSL 999.999.999.999 443 -Listenpolicy NONE -tcpProfileName nstcp_default_XA_XD_profile -deploymentType ICA_STOREFRONT -vserverFqdn gateway.mydomain.com -authnProfile auth_prof_name -icaOnly OFF
要更新虚拟服务器,请执行以下操作:
set vpn vserver _SecureAccess_Gateway -icaOnly OFF
有关虚拟服务器参数的详细信息,请参阅 vpn-session操作.
NetScaler Gateway 会话操作
会话操作通过会话策略绑定到网关虚拟服务器。 创建会话操作时,请确保将以下参数设置为定义的值。
-
transparentInterception
: 关闭 -
SSO
: 开启 -
ssoCredential
: 主要 -
使用MIP
: NS -
useIIP
: 关闭 -
icaProxy
: 关闭 -
wihome
:"https://storefront.mydomain.com/Citrix/MyStoreWeb"
- 用真实商店 URL 替换。 存储路径/Citrix/MyStoreWeb
是可选的。 -
客户端选择
: 关闭 -
ntDomain
: mydomain.com - 用于 SSO(可选) -
defaultAuthorizationAction
: 允许 -
authorizationGroup
: SecureAccessGroup(确保创建此组,用于绑定安全私人访问特定的授权策略) -
clientlessVpnMode
: 开启 -
clientlessModeUrlEncoding
: 透明 -
安全浏览
: 已启用 -
Storefronturl
:"https://storefront.mydomain.com"
-
sfGatewayAuthType
: 域
示例:
要添加会话操作:
add vpn sessionAction AC_OS_SecureAccess_Gateway -transparentInterception OFF -SSO ON -ssoCredential PRIMARY -useMIP NS -useIIP OFF -icaProxy OFF -wihome "https://storefront.mydomain.com/Citrix/MyStoreWeb" -ClientChoices OFF -ntDomain mydomain.com -defaultAuthorizationAction ALLOW -authorizationGroup SecureAccessGroup -clientlessVpnMode ON -clientlessModeUrlEncoding TRANSPARENT -SecureBrowse ENABLED -storefronturl "https://storefront.mydomain.com" -sfGatewayAuthType domain
要更新会话操作,请执行以下操作:
set vpn sessionAction AC_OS_SecureAccess_Gateway -transparentInterception OFF -SSO ON
For details on session action parameters, see <https://developer-docs.netscaler.com/en-us/adc-command-reference-int/13-1/vpn/vpn-sessionaction>.
将 Secure Private Access 插件绑定到 VPN 虚拟服务器。
bind vpn vserver spaonprem -appController "https://spa.example.corp"
与 ICA 应用程序的兼容性
为支持 Secure Private Access 插件而创建或更新的 NetScaler Gateway 也可用于枚举和启动 ICA 应用程序。 在这种情况下,您必须配置 Secure Ticket Authority (STA) 并将其绑定到 NetScaler Gateway。 注意:STA 服务器通常是 Citrix Virtual Apps and Desktops DDC 部署的一部分。
有关详细信息,请参阅以下主题:
- 在 NetScaler Gateway 上配置 Secure Ticket Authority
- 常见问题解答:Citrix Secure Gateway/ NetScaler Gateway Secure Ticket Authority
支持智能访问标签
在以下版本中,NetScaler Gateway 会自动发送标记。 您不必使用网关回调地址来检索智能访问标签。
- 13.1-48.47 及更高版本
- 14.1–4.42 及更高版本
智能访问标签将作为标头添加到 Secure Private Access 插件请求中。
使用切换开关 ns_vpn_enable_spa_onprem
或 ns_vpn_disable_spa_onprem
以在这些 NetScaler 版本上启用/禁用此功能。
-
您可以使用命令 (FreeBSD shell) 进行切换:
nsapimgr_wr.sh -ys call=ns_vpn_enable_spa_onprem
-
通过运行以下命令 (FreeBSD shell) 为 HTTP callout 配置启用 SecureBrowse 客户端模式。
nsapimgr_wr.sh -ys call=toggle_vpn_enable_securebrowse_client_mode
-
如果访问被拒绝,则启用重定向到 “Access restricted” 页面。
nsapimgr_wr.sh -ys call=toggle_vpn_redirect_to_access_restricted_page_on_deny
-
使用 CDN 上托管的 “Access restricted” 页面。
nsapimgr_wr.sh -ys call=toggle_vpn_use_cdn_for_access_restricted_page
-
要禁用,请再次运行相同的命令。
-
要验证切换开关是打开还是关闭,请运行
nsconmsg
命令。 -
要在 NetScaler Gateway 上配置智能访问标签,请参阅 配置上下文标记.
在 NetScaler 上保留安全私有访问插件设置
要在 NetScaler 上保留 Secure Private Access 插件设置,请执行以下操作:
- 创建或更新文件 /nsconfig/rc.netscaler。
-
将以下命令添加到文件中。
nsapimgr_wr.sh -ys call=ns_vpn_enable_spa_onprem
nsapimgr_wr.sh -ys call=toggle_vpn_enable_securebrowse_client_mode
nsapimgr_wr.sh -ys call=toggle_vpn_redirect_to_access_restricted_page_on_deny
nsapimgr_wr.sh -ys call=toggle_vpn_use_cdn_for_access_restricted_page
- 保存该文件。
重新启动 NetScaler 时,将自动应用 Secure Private Access 插件设置。
已知限制
- 现有的 NetScaler Gateway 可以使用脚本进行更新,但单个脚本无法涵盖无限数量的可能 NetScaler 配置。
- 请勿在 NetScaler Gateway 上使用 ICA Proxy。 配置 NetScaler Gateway 时,此功能将被禁用。
- 如果您使用部署在云中的 NetScaler,则必须在网络中进行一些更改。 例如,允许 NetScaler 与某些端口上的其他组件之间的通信。
- 如果在 NetScaler Gateway 上启用 SSO,请确保 NetScaler 使用私有 IP 地址与 StoreFront 通信。 您可能必须使用 StoreFront 私有 IP 地址向 NetScaler 添加新的 StoreFront DNS 记录。
上传公共网关证书
如果无法从 Secure Private Access 计算机访问公有网关,则必须将公有网关证书上传到 Secure Private Access 数据库。
执行以下步骤以上传公有网关证书:
- 使用 admin 权限打开 PowerShell 或命令提示符窗口。
- 将目录更改为 Secure Private Access 安装文件夹下的 Admin\AdminConfigTool 文件夹(例如,cd “C:\Program Files\Citrix\Citrix Access Security\Admin\AdminConfigTool”)
-
运行以下命令:
\AdminConfigTool.exe /UPLOAD_PUBLIC_GATEWAY_CERTIFICATE <PublicGatewayUrl> <PublicGatewayCertificatePath>