用例:通过使用 ICAP 远程恶意软件检查,确保企业网络安全
Citrix Secure Web Gateway (SWG) 设备充当代理并拦截所有客户端流量。设备使用策略评估流量并将客户端请求转发到资源所在的源服务器。设备解密来自源服务器的响应,并将纯文本内容转发到 ICAP 服务器进行反恶意软件检查。ICAP 服务器会回应一条消息,指示 “无需适应”、错误或已修改的请求。根据来自 ICAP 服务器的响应,请求的内容将转发到客户端,或发送适当的消息。
对于此使用案例,您必须在 Citrix SWG 设备上执行一些常规配置、代理和 SSL 拦截相关的配置以及 ICAP 配置。
一般配置
配置以下实体:
- NSIP 地址
- 子网 IP (SNIP) 地址
- 域名服务器
- CA 证书-密钥对用于为 SSL 截获签名服务器证书
代理服务器和 SSL 截获配置
配置以下实体:
- 代理服务器以显式模式拦截所有出站 HTTP 和 HTTPS 流量。
- SSL 配置文件来定义连接的 SSL 设置,例如密码和参数。
- 用于定义截获流量的规则的 SSL 策略。设置为 true 以拦截所有客户端请求。
有关更多详细信息,请参阅以下主题:
在以下示例配置中,反恶意软件检测服务位于www.example.com
。
常规配置示例:
add ns ip 192.0.2.5 255.255.255.0
add ns ip 198.51.100.5 255.255.255.0 -type SNIP
add dns nameServer 203.0.113.2
add ssl certKey ns-swg-ca-certkey -cert ns_swg_ca.crt -key ns_swg_ca.key
<!--NeedCopy-->
代理服务器和 SSL 截获配置示例:
add cs vserver explicitswg PROXY 192.0.2.100 80 –Authn401 ENABLED –authnVsName explicit-auth-vs
set ssl parameter -defaultProfile ENABLED
add ssl profile swg_profile -sslInterception ENABLED
bind ssl profile swg_profile -ssliCACertkey ns-swg-ca-certkey
set ssl vserver explicitswg -sslProfile swg_profile
add ssl policy ssli-pol_ssli -rule true -action INTERCEPT
bind ssl vserver explicitswg -policyName ssli-pol_ssli -priority 100 -type INTERCEPT_REQ
<!--NeedCopy-->
会计师协会配置示例:
add service icap_svc 203.0.113.225 TCP 1344
enable ns feature contentinspection
add icapprofile icapprofile1 -uri /example.com -Mode RESMOD
add contentInspection action CiRemoteAction -type ICAP -serverName icap_svc -icapProfileName icapprofile1
add contentInspection policy CiPolicy -rule "HTTP.REQ.METHOD.NE("CONNECT")" -action CiRemoteAction
bind cs vserver explicitswg -policyName CiPolicy -priority 200 -type response
<!--NeedCopy-->
配置 SNIP 地址和 DNS 名称服务器
-
在 Web 浏览器中,键入 NSIP 地址。例如
http://192.0.2.5
。 -
在 User Name(用户名)和 Password(密码)中,键入管理员凭据。此时将显示以下屏幕。如果未出现以下屏幕,请跳至代理设置部分。
-
单击内部子网 IP 地址部分,并输入 IP 地址。
-
单击完成。
-
在主机名、DNS IP 地址和时区部分中单击,并为这些字段输入值。
-
单击 完成 ,然后单击 继续 。
配置代理设置
-
导航到 Secure Web Gateway > Secure Web Gateway 向导。
-
点击 开始 ,然后点击 继续 。
-
在“代理设置”对话框中,输入显式代理服务器的名称。
-
对于 Capture Mode(捕获模式),请选择 Explicit(显式)。
-
输入 IP 地址和端口号。
-
单击继续。
配置 SSL 拦截设置
-
选择 Enable SSL Interception(启用 SSL 拦截)。
-
在 SSL 配置文件中,选择现有配置文件或单击 “+” 以添加新的前端 SSL 配置文件。在此配置文件中启用 SSL 会话拦截 。如果您选择现有配置文件,请跳过下一步。
-
单击 确定,然后单击 完成。
-
在 选择 SSL 拦截 CA 证书密钥对中,选择现有证书或单击 “+” 以安装用于 SSL 拦截的 CA 证书密钥对。如果选择现有证书,请跳过下一步。
-
单击 安装 ,然后单击 关闭 。
-
添加用于拦截所有流量的策略。单击 Bind(绑定)。单击“添 加”以添加新策略或选择现有策略。如果选择现有策略,请单击“插入”,然后跳过后续三个步骤。
-
输入策略的名称,然后选择“高级”。在表达式编辑器中,输入 true。
-
对于 操作,请选择 拦截。
-
单击创建。
-
单击 继续 四次,然后单击 完成 。
配置会计师协会设置
-
导航至“负载平衡”>“服务”,然后单击“添加”。
-
键入名称和 IP 地址。在协 议中,选择 TCP。在 港口,键入 1344。单击确定。
-
导航到 Secure Web Gateway > Proxy Virtual Servers(代理虚拟服务器)。添加代理虚拟服务器或选择虚拟服务器,然后单击“编辑”。输入详细信息后,点击 确定。
再次点 击确定 。
-
在“高级设置”中,单击“策略”。
-
在“选择策略”中,选择“内容检查”。单击继续。
-
在 选择策略中,单击“+”符号以添加策略。
-
输入策略的名称。在 操作中,单击“+”符号以添加操作。
-
键入操作的名称。在“服务 器名称”中,键入之前创建的 TCP 服务的名称。在会 计师协会配置文件中,单击“+”符号以添加会计师协会配置文件。
-
键入配置文件名称 URI。在 模式下,选择 REQMOD。
-
单击创建。
-
在创建 ICAP 操作页面上,单击创建。
-
在创建 ICAP 策略页面的表达式编辑器中,输入 true。然后,单击创建。
-
单击 Bind(绑定)。
-
如果提示启用内容检查功能,请选择 是。
-
单击完成。
在 RESPMOD 中 Citrix SWG 设备和 ICAP 服务器之间的 ICAP 事务示例
从 Citrix SWG 设备向 ICAP 服务器发出请求:
RESPMOD icap://10.106.137.15:1344/resp ICAP/1.0
Host: 10.106.137.15
Connection: Keep-Alive
Encapsulated: res-hdr=0, res-body=282
HTTP/1.1 200 OK
Date: Fri, 01 Dec 2017 11:55:18 GMT
Server: Apache/2.2.21 (Fedora)
Last-Modified: Fri, 01 Dec 2017 11:16:16 GMT
ETag: "20169-45-55f457f42aee4"
Accept-Ranges: bytes
Content-Length: 69
Keep-Alive: timeout=15, max=100
Content-Type: text/plain; charset=UTF-8
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
<!--NeedCopy-->
从 ICAP 服务器向 Citrix SWG 设备发出响应:
ICAP/1.0 200 OK
Connection: keep-alive
Date: Fri, 01 Dec, 2017 11:40:42 GMT
Encapsulated: res-hdr=0, res-body=224
Server: IWSVA 6.5-SP1_Build_Linux_1080 $Date: 04/09/2015 01:19:26 AM$
ISTag: "9.8-13.815.00-3.100.1027-1.0"
X-Virus-ID: Eicar_test_file
X-Infection-Found: Type=0; Resolution=2; Threat=Eicar_test_file;
HTTP/1.1 403 Forbidden
Date: Fri, 01 Dec, 2017 11:40:42 GMT
Cache-Control: no-cache
Content-Type: text/html; charset=UTF-8
Server: IWSVA 6.5-SP1_Build_Linux_1080 $Date: 04/09/2015 01:19:26 AM$
Content-Length: 5688
<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"/>
…
…
</body></html>
<!--NeedCopy-->