43-应用代理典型配置
本章节下载: 43-应用代理典型配置 (1.20 MB)
代理服务器是一种重要的服务器安全功能,主要工作在开放系统互联(OSI)模型的会话层或应用层,从而起到上网行为控制、提高访问速度以及保护内网安全等作用。在一般情况下,企业设置代理服务器一般都是基于以下几点原因考虑。当前代理功能支持HTTP代理、SOCKS4代理、SOCKS5代理三种方式。
代理服务器是一种重要的服务器安全功能,主要工作在开放系统互联(OSI)模型的会话层或应用层,从而起到上网行为控制、提高访问速度以及保护内网安全等作用。
在一般情况下,企业设置代理服务器一般都是基于以下几点原因考虑:
· 控制员工互联网使用:阻断与工作无关内容,提高工作效率;
· 保障隐私权益:某些代理服务器将更改Web请求包括的IP地址和其他标识信息,保护用户隐私。
· 节省带宽和提升访问速度:如果多次请求或者多个请求是同样的内容,可以跳过从真实服务器取数据的过程,而是直接从代理服务器缓存中获取,提升访问速度。
· 提高安全性:代理服务器支持配置加密Web请求,还可以阻止已知恶意软件站点通过代理服务器进行任何访问,保护企业内网安全。
· 访问被阻止资源:代理服务器允许用户规避公司或政府施加的内容限制(例如查找技术资料需要访问谷歌等境外网站)。
在隐私性和安全性要求较高的环境中,内网终端和服务器不允许和互联网直接通信,必须通过代理设备,保障上网终端的隐私安全,保障业务系统外联尤其是第三方业务互连的隐私安全,避免被攻击。
HTTP代理与SOCKS代理的区别:
· HTTP代理:最简单的一种代理形式,能够代理客户机的HTTP访问,上网浏览网页使用的都是HTTP协议,通常的HTTP代理端口为80、3128或8080端口。
· SOCKS代理:SOCKS代理与HTTP等其他类型的代理不同,它只是简单地传递数据包,而并不关心是何种应用协议,既可以是HTTP协议,也可以是FTP协议,或者其他任何协议,所以SOCKS代理服务器比其他类型的代理服务器速度要快得多。
· SOCKS代理又分为SOCKS4和 SOCKS5,二者不同的是SOCKS4代理只支持TCP协议(即传输控制协议),而SOCKS5代理则既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端远程域名解析等。SOCK4能做到的SOCKS5都可得到,但SOCKS5能够做到的SOCKS则不一定能做到。目前SOCKS5是最常用的一种SOCKS代理。
本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。
· 代理支持的功能模块:控制策略、审计策略、流量控制策略、认证策略、源NAT、白名单、IP-sec VPN、安全中心、用户模块、DNS、用户限额、会话控制、IP-MAC绑定。
· 代理不支持的功能模块:广告推送、应用缓存、APP动态缓存、负载均衡策略、链路负载均衡、策略路由、VRF、SSL证书推送(对HTTP应用不生效)、共享接入、移动终端、SSL VPN、故障监控中心、终端插件推送、DOS攻击防护、扫描攻击防御、ALG。
· SOCKS代理下,访问HTTP网站不推送SSL证书,访问HTTPS可推送证书。
· PAC只支持配置在浏览器上,SOCKS代理工具不支持配置PAC。
· 某些业务端口比如34567、8000、8001、8002等不能配置成代理端口。
· 第三方RADIUS、LDAP用户通过代理认证不会录入用户组。
· HPPT代理不能同时代理IPv4和IPv6,IPv4、IPv6只能同时代理一个。
· SOCKS4代理不支持IPv6,不支持代理UDP。
· SOCKS代理可以配置在浏览器上,则只对浏览器的访问请求生效。
· PAC只支持配置在浏览器上,SOCKS代理工具不支持配置PAC。
· HTTP代理认证用户名不支持冒号,代理认证是采用的HTTP Basic认证方式,根据rfc 2617协议规定,Basic认证用户名不支持冒号。
· SOCKS代理工具Proxifier的使用限制:
¡ 推荐使用的开源SOCKS代理工具Proxifier不支持配置中文名称,使用SOCKS5代理认证时,建议用户不使用中文名进行认证,HTTP代理支持中文认证。
¡ 使用SOCKS代理工具Proxifier,使用Proxifier访问某些FTP server时,出现访问之后文件夹显示不出来的问题,是profixer代理工具的局限性的原因。改为使用filezilla自己的代理,即可解决。
· 代理支持FTP被动模式,不支持主动模式。
· SOCKS4代理不支持远程域名解析,SOCKS4A代理支持解析域名的IP;SOCKS4和SOCKS4A对于设备的代理功能没有区别,在用户的代理工具上勾选使用SOCKS4A扩展(远程主机名解析功能)、通过代理解析主机名称,就会使用代理解析DNS,不勾选就是SOCKS4代理,不支持解析域名的IP。
· SOCKS4代理不支持认证,若设备的代理服务开启了认证,客户端通过SOCKS4代理上网,是无法认证的,不能上网。若需要上网,则需要取消勾选设备代理服务的认证。
· 代理策略目的域名配置为域名时,客户端发出的连接一定要是域名(一般客户端可配置),否则匹配不上代理策略。
· 第三方代理软件和应用自带代理设置可能存在自身问题导致代理业务不通。
· 代理需要配合DNS代理使用,在设备上必须配置有效的DNS。
· 代理流量需要触发控制策略恶意URL需注意以下三点。
¡ 需开启用户识别模式,即在“用户管理>认证管理>高级选项>全局配置”中,配置用户的识别模式。
¡ HTTP能被阻断,能弹恶意URL页面,但是需要将代理地址在浏览器中排除。
¡ HTTPS能被阻断,但是不能弹恶意URL页面。
· 代理策略配置指定IP上网为内网IP时,需要开启源NAT,否则不能上网。若配置的是自动选择,则可以不需要配源NAT,因为自动选择是通过出接口的IP上网。
· HTTP代理/SOCKS代理支持启用代理认证功能,代理认证支持三类:本地用户、第三方的LDAP和RADIUS用户。如启用第三方用户认证需要在“认证管理>高级选项”页面进行配置。
· 代理认证的用户必须为已配置密码的用户,不支持无密码用户认证。
· 代理认证和设备的认证策略分别是两套独立的认证系统,代理流量不会经过设备的认证策略。
· 代理走解密策略需要使能tcpstack enable和sslproxy-optimize enable用户态协议栈SSL解密功能,默认是开启的。
· 白名单用户通过代理上网,不会匹配代理策略,是直接放通的。
· 二级代理设备场景下,如果在二级代理设备上配置IP-MAC绑定策略,需要配置一级代理的IP和MAC,不能配置真实客户端PC的IP、MAC。
· 如果PC配置了HTTP代理或者SOCKS代理之后,不能访问设备的页面,需要用户在配置代理地址时,将代理设备地址排除。
· 代理无流量超时下线时间默认是15分钟,可通过user-app-proxy timeout enable <1-144000>命令修改超时下线时间;通过user-app-proxy force-logout enable <1-144000> 命令配置代理强制重登录时间。
如图1所示,某公司内网研发、销售、行政部门的IP地址网段分别为10.1.0.0/16、10.2.0.0/16、10.3.0.0/16,设备以路由模式部署在网络中,内网用户通过设备ge0口出去访问外网。使用代理功能对研发网络进行控制,允许研发网络通过代理上网,只能访问指定网站。
· 设备网络基础配置,配置接口地址、路由、NAT策略。
· 配置控制策略,仅允许代理地址上网,其他IP不允许上网
· 开启设备代理,配置设备的代理策略,只允许访问某些指定网站。
· 用户客户端上配置代理地址,通过代理上网。
本举例是在R6616版本上进行配置和验证的。
(1) 设备网络基础配置,配置接口地址、路由、NAT策略
进入“网络配置>接口配置>物理接口”页面,配置物理接口地址,如图2所示。
进入“网络配置>路由管理>静态路由”页面,如图3所示,配置静态路由。
进入“策略配置>NAT转换策略>源NAT”页面,如图4所示,配置源NAT。
(2) 进入“策略配置>对象管理>地址对象”,点击<新建>按钮,配置“代理地址”地址对象。
图5 配置地址对象
(3) 进入“策略配置>控制策略”,点击<新建>按钮,新建一条控制策略,动作为允许,源地址选择已配置的地址对象。
图6 配置控制策略
(4) 进入“网络配置>基础网络>代理上网>代理服务”页面,开启设备代理,如下图所示。
图7 开启代理服务并配置端口
(5) 配置HTTP代理策略,只允许访问某些指定网站。
进入“网络配置>基础网络>代理上网>代理策略”页面,点击“新建>HTTP”,进入HTTP代理配置页面,点击“选择地址对象”选择地址对象,如下图所示。
图8 选择地址对象
目的地址选择“指定”,并配置目的域名,动作配置为“允许”,如下图所示。
图9 配置目的域名
点击“提交”完成HTTP代理配置,配置完成后如下图所示。
图10 代理策略配置完成
(6) 新建SOCKS4、SOCKS5代理。进入“网络配置>基础网络>代理上网>代理策略”页面,点击“新建>SOCKS4”新建SOCKS4代理,点击“新建>SOCKS5”新建SOCKS5代理,配置完成后如下图所示。
图11 新建SOCKS、SOCKS5代理
详细步骤请参考客户端代理上网配置举例。
(1) 用户PC访问百度时,弹出认证页面,如图12所示;通过认证后代理用户上线,进入在线用户页面可以查看在线用户记录,如图13所示。
(2) 在用户PC上抓包查看,如图14所示,用户访问百度是直接向代理地址发请求,而不是通常的直接向目的地址发请求。
图14 用户PC抓包记录
(3) 进入“网络配置>基础网络>代理上网>代理策略”,可以查看代理策略的匹配次数,如图15所示。
因为代理策略配置只允许目的地址为baidu,所以被代理直接中断连接,如图16所示。
客户端可以用多种设置代理的方式,如:应用软件自带、系统自带、第三方代理软件。
(1) 打开Windows设置,选择“代理服务器设置”,如下图所示。
(2) 手动设置代理,开启“使用代理服务器”,配置代理服务器的地址、端口,如下图所示。
(3) Microsoft edge或者Google Chorme浏览器默认使用的是系统代理,火狐浏览器可以选中设置使用系统代理或者自带设置代理,如下图所示。
此处以SOCKS代理客户端Proxifier为例进行说明。
(1) 打开代理软件后,选择“配置文件>代理服务器”,编辑代理服务器。
(2) 点击“添加”,配置代理服务器的地址、端口、协议(SOCKS4/SOCKS5),若设备界面上SOCKS代理开启了认证,则此处需要选择SOCKS5,并输入用户名密码校验。SOCKS4代理是不支持认证的。
(3) 配置代理规则,选择“配置文件>代理规则”,编辑代理规则,新增一条代理规则,目标主机填写代理服务器的设备IP,动作为Direct放行,表示不代理设备本身。
(4) 默认会有一条Default代理规则,动作指向SOCKS代理10.1.1.1,表示用户的其他上网行为通过SOCKS5代理10.1.1.1。
(5) 选择“配置文件>名称解析”,选择“通过代理解析主机名称”。
有些软件自带代理配置,自带有SOCKS客户端功能,可在网络设置中配置SOCKS代理。此处以QQ为例进行说明。
(1) 打开QQ软件,选择“设置”。
(2) 选择代理类型、代理地址和端口。
如图17所示,主机A通过设备使用代理服务上网,需要访问国外服务器上的服务,但是国内代理服务器不能直接访问国外服务器,通过在设备上配置二级代理,指向二级代理服务器,代理访问国外服务器上的服务。
(1) 在设备上启动HTTP代理服务;
(2) 在设备上配置二级代理服务器;
(3) 在设备上指定HTTP策略中的二级代理服务器;
(4) 在二级代理上启动HTTP代理服务;
(5) 在客户端主机上配置HTTP代理为一级代理设备的地址。
本举例是在R6616版本上进行配置和验证的。
(1) 启用HTTP代理服务
进入“网络配置>基础网络>代理上网>代理服务”页面,启用HTTP代理服务,如下图所示。
图18 启用HTTP代理服务页面
(2) 配置二级代理服务器
进入“网络配置>基础网络>代理上网>二级代理服务器”,单击“新建”,配置二级代理服务器。
图19 二级代理服务器配置页面
(3) 配置二级代理策略。
进入“策略配置>对象管理>地址对象”,点击<新建>按钮,配置地址对象。
图20 配置地址对象
进入“网络配置>基础网络>代理上网>代理策略”页面,选择“新建>HTTP”,配置二级代理策略,勾选“二级代理服务器”,在下拉列表中选择已创建的二级代理服务器。
图21 配置二级代理策略页面
只有HTTP代理策略可配置二级代理。新建二级代理策略之前需要先新建二级代理服务器。
(4) 在二级代理服务器上启动HTTP代理服务。
(5) 客户端主机上配置HTTP代理为一级代理设备的地址和端口。
详细步骤请参考客户端代理上网配置举例。
(1) 用户PC访问时,弹出认证页面,如代理用户认证所示;通过认证后代理用户上线,进入在线用户页面可以查看在线用户记录,如代理用户上线所示。
(2) 此时在一级代理设备出口抓包,可看到一级代理设备将请求发给了二级代理设备,而不是通常的直接向目的地址发请求。
某公司内网研发网段为10.1.0.0/16,研发网段的办公PC全部配置PAC自动脚本,用户客户端上配置代理地址,通过设备的代理上网。
图24 PAC配置举例组网图
(1) 在设备上开启HTTP代理服务;
(2) 在设备上开启自动配置(PAC)脚本;
(3) 在设备上编辑PAC脚本;
(4) 在设备上配置HTTP代理策略;
(5) 在客户端引用PAC脚本。
本举例是在R6616版本上进行配置和验证的。
(1) 在设备上开启HTTP代理服务、开启自动配置(PAC)脚本。
进入“网络配置>基础网络>代理上网>代理服务”页面,启用HTTP代理服务,并配置端口;勾选“启用自动配置(PAC)脚本”,如下图所示。
图25 配置代理服务
(2) 单击“编辑脚本”,编辑PAC脚本,如下图所示。配置10.1.0.0/16网段的PC通过代理服务器10.1.1.1上网,其他网段PC不走代理。
图26 编辑PAC脚本
PAC定义了浏览器如何自动选择适当的代理服务区来访问网站的一些方法。
PAC文件简单格式如下:
function FindProxyForURL(url, host) {
if(shExpMatch(url,"*.baidu.com/*")){
return "PROXY 127.0.0.1:8080";}
}
参数含义如下:
· 函数名:function FindProxyForURL(url, host),为固定内容。
· If条件里的内容代表访问的条件。
· return里面的内容代表满足条件的请求是否走代理,以及走哪个代理。Return返回的数据类型有:
¡ PROXY host:port,表示通过Host:Port的HTTP代理上网。
¡ SOCKS host:port,表示通过Host:Port的socks代理上网。
¡ DIRECT,不经过任何代理直接访问。
return可进行串联,例:return "PROXY 127.0.0.1:8080; SOCKS 127.0.0.1:9090; DIRECT";如果代理挂了或者访问超时,依次类推使用后边的配置。
· 上述functions对大小写不敏感。
(3) 配置HTTP代理策略。
进入“策略配置>对象管理>地址对象”,点击<新建>按钮,配置地址对象。
图27 配置地址对象
进入“网络配置>基础网络>代理上网>代理策略”页面,选择“新建>HTTP”,配置HTTP代理策略。
图28 配置HTTP代理策略
(4) 在客户端主机上打开Windows设置,选择“代理服务器设置”,如下图所示。
图29 进入代理服务器设置
(5) 开启“使用设置脚本”,配置PAC脚本地址,如下图所示。
PAC脚本地址的格式为:http://代理地址/proxy/proxy.pac
图30 设置PAC脚本地址
用户PC访问时,弹出认证页面,如图31所示;通过认证后代理用户上线,进入在线用户页面可以查看在线用户记录,如图32所示。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!