文/刘京
(东方公司物探培训中心 河北省涿州市 072750)
企业办公网(以下简称企业网)内有多台内网服务器,这些服务器上分别运行着DNS(域名解析服务器)、企业网站、人力资源、ERP等系统,DNS服务器负责两项工作,一个是将来自企业内网用户对互联网域名解析的请求转发至互联网上的DNS服务器并将结果返回给内网用户,另一个是负责企业内部网站的域名注册与解析工作,但其上注册的域名只适用于企业网,企业网内所有终端计算机通过内部域名直接访问内部网站和相关应用系统,访问互联网上的资源则需要通过架设在企业网上的代理服务器实现。如图1所示。
办公用户在访问互联网时需要事先在终端计算机的浏览器中设置代理服务器的地址和端口号,这部分用户设置起来相对容易,但为了同时能正常访问企业内部网站还要在“例外”地址表中设置若干地址,由于企业网内部的网站和各应用系统都有后缀不同的内部域名,这些域名需要在设置代理服务器的时候全部排除才能正常访问,设置参数时需要将所有内部网站对应的域名后缀逐一添加到浏览器的例外地址表中,操作过程十分繁琐。如图2所示。
在浏览器中“例外”地址列表中的参数对于一般用户来说设置起来比较困难,并且有以下问题:
(1)普通用户获取这些参数很不方便。
(2)参数冗长,操作时容易出错,设错会导致访问企业网站失败或部分企业网站访问失败的情况。
(3)当企业网内部域名发生调整改变时所有终端计算机上的设置无法自动更新,需要逐台手工更新。上述问题给办公用户和单位网络管理员造成了很多不必要的麻烦,降低了工作效率。
PAC——Proxy Auto-Configuration,即代理服务器自动配置技术。这项技术通过一个被称为PAC脚本的文本文件来实现代理服务器的所有配置,这个文本文件实际上是一段JavaScript脚本,里面的代码决定了用户浏览器的访问请求是直接发送到网上还是通过代理服务器发出去。
PAC脚本由管理员编写并保存在网络内的WEB服务器上,网络上的所有终端计算机可以访问到这个脚本并需要在浏览器的配置中指向它,从而实现代理服务器参数统一配置集中下发的功能。当用户通过浏览器发出请求时先下载并运行PAC脚本,由脚本根据用户的请求和本地参数,比如说用户端的IP地址、用户访问的网址来决定是否使用代理服务器,使用哪一台代理服务器等操作。用户在浏览器配置中只需输入PAC脚本的URL即可,无需输入代理服务器的其他任何参数。如图3所示。
图1:企业办公网逻辑结构图
图2:终端计算机浏览器代理服务器参数设置
WPAD——Web Proxy Auto-Discovery Protocol,即网络代理自动发现协议,WPAD协议结合DHCP模式可以实现终端计算机上的浏览器自动发现网络中PAC脚本的URL,这个模式下用户在浏览器中无需再输入PAC脚本的URL,只需要点选图3中的“自动检测设置”即可,进一步省略了用户的配置操作,但前提是终端计算机使用DHCP地址模式。如图4所示。
WPAD运行过程:
(1)用户PC从DHCP服务器获取IP地址、DNS服务器基本网络参数,另外获取PAC脚本的完整URL,注意DHCP 服务器需要支持252选项。
(2)PAC脚本的URL中如使用了内部域名包则需向DNS服务器发出解析请求,换成IP地址,如是IP地址则可忽略该步。
(3)当用户使用浏览器发出访问网站请求时浏览器先下载并执行PAC脚本,PAC脚本则根据用户的请求进行判定和引导,如是内部域名或内网IP地址则直接访问企业内网,否则交给代理服务器处理。
图3:IE浏览器中PAC脚本配置
图4:WPAD原理示意图
图5:网络开启DHCP Snooping
(4)代理服务器向互联网转发来自用户浏览器的请求。
(5)用户收到代理服务器的回复,访问成功。
根据单位情况编写了PAC脚本并上传至内网的WEB服务器上,配置DNS服务器用于内部服务器域名注册和解析,配置DHCP服务器的252选项用于向客户PC发放PAC URL,这里将DHCP相关配置和PAC脚本展示如下。
单位的DHCP服务器是由核心交换机CISCO 4503兼任,在CISCO 4503 上的DHCP配置如下:
用户PC在获取IP地址的同时也获取到PAC脚本存放的URL,其中www.net.pgpc为保存PAC脚本的WEB服务器的内部域名。
PAC脚本是一个JavaScript函数,确定网络浏览器的请求(HTTP,HTTPS和FTP)是否直接去目的地或转发到Web代理服务器,代码如下:
在极大简化终端计算机代理服务器配置的同时,WPAD协议运行中的安全问题也显现了出来,企业内网的攻击者可以创建一个非法DHCP服务器,在向终端计算机下发IP地址的同时提供一个恶意PAC脚本的网址,并将用户流量引至一个有效的非法代理服务器上从而实现中间人攻击。
解决这个问题需要在所有交换机上开启DHCP Snooping模式,只对交换机上特定端口开启DHCP信任,来自其他端口的DHCP应答一律阻断,这种模式杜绝了非法DHCP服务器的接入干扰,确保用户能从合法DHCP服务器上得到正确的PAC URL即可保证后续的所有动作都是安全的。如图5所示。
这个模式要求所有接入交换机都是可管理且支持DHCP Snooping操作的。
以CISCO 2960为例给出相关配置:
在浏览器代理服务器配置上PAC技术实现了统一管理、集中下发、自动配置的功能,无需用户输入或关注任何代理服务器的参数。这极大方便了终端用户,同时也大大减少了网络管理员基于代理服务器故障的维护工作量。但美中不足的是,运行在终端计算机上的非浏览器类软件(QQ、微信等程序)必需单独设置代理服务器地址和端口号才能正常使用。