简介
本文档介绍如何防止网络安全设备(WSA)成为开放式代理。
环境
Cisco WSA,AsyncOS的所有版本
WSA可被视为开放代理的两个方面是:
- 不驻留在网络上的HTTP客户端可以通过代理。
- 使用HTTP CONNECT请求通过隧道传输非HTTP流量的客户端。
其中每个场景具有完全不同的含义,将在下一节中更详细地讨论。
不驻留在网络上的HTTP客户端可以通过
默认情况下,WSA将代理发送给它的任何HTTP请求。这假设请求位于WSA侦听的端口上(默认值为80和3128)。 这可能会造成问题,因为您可能不希望来自任何网络的任何客户端能够使用WSA。如果WSA使用公有IP地址并且可从Internet访问,则这将会是一个大问题。
有两种方法可以解决此问题:
- 在WSA的上游使用防火墙来阻止未经授权的源访问HTTP。
- 创建策略组以仅允许所需子网上的客户端。此策略的简单演示如下:
策略组1:适用于子网10.0.0.0/8(假设这是您的客户端网络)。 添加所需的操作。
默认策略:阻止所有协议 — HTTP、HTTPS、FTP over HTTP
可以在策略组1上方创建更详细的策略。只要其他规则仅适用于相应的客户端子网,所有其他流量将捕获底部的“拒绝所有”规则。
使用HTTP CONNECT请求通过隧道传输非HTTP流量的客户端
HTTP CONNECT请求用于通过HTTP代理传输非HTTP数据。HTTP CONNECT请求的最常见用途是通过HTTPS流量建立隧道。要使显式配置的客户端访问HTTPS站点,它必须首先向WSA发送HTTP CONNECT请求。
CONNECT请求的示例如下:连接http://www.website.com:443/ HTTP/1.1
这会告知WSA客户端希望通过WSA隧道连接到端口443上的http://www.website.com/。
HTTP CONNECT请求可用于通过隧道传输任何端口。由于潜在的安全问题,默认情况下WSA仅允许对这些端口的CONNECT请求:
20、21、443、563、8443、8080
如果出于安全原因,需要添加其他CONNECT隧道端口,建议将其添加到仅应用于需要此额外访问权的客户端IP子网的额外策略组中。每个策略组中都在Applications > Protocol Controls下找到允许的CONNECT端口。
通过开放代理发送的SMTP请求示例如下所示:
myhost$ telnet proxy.mydomain.com 80
Trying xxx.xxx.xxx.xxx...
Connected to proxy.mydomain.com.
Escape character is '^]'.
CONNECT smtp.foreigndomain.com:25 HTTP/1.1
Host: smtp.foreigndomain.com
HTTP/1.0 200 Connection established
220 smtp.foreigndomain.com ESMTP
HELO test
250 smtp.foreigndomain.com