APP下载

透明代理在防火墙中的应用和测试方法研究

2018-09-26李旋李毅

网络空间安全 2018年3期
关键词:防火墙代理

李旋 李毅

摘 要:工作于透明代理模式下的防火墙可以实现深度内容检测、应用层控制等功能,且提升了防火墙的自身安全性。文章从代理的原理入手,分析了防火墙的透明模式原理和其常用的实现方式,并给出了防火墙透明模式的测试方法。在透明模式的基础上,阐述了防火墙透明代理的概念,分析了测试防火墙透明代理时遇到的问题,并给出一种有效的测试透明代理的方法。

关键词:防火墙;代理;透明代理

中图分类号:TP391 文献标识码:A

1 引言

随着网络安全法的不断推进,网络安全的重要性已关系到了国计民生。防火墙作为网络的边界设备,网络安全的第一道大门,受到的网络攻击从来都没有停止过。网络安全技术在于网络攻击博弈的不断发展之中,防火墙也已经由第一代发展为第二代,其安全功能不断的增加,安全性也不断增强,操作配置也不断地变得简易。

透明代理因其獨特的安全功能,被广大防火墙厂商应用于产品中,进行会话管理、应用协议、应用内容的访问控制,所以防火墙的透明代理功能不能被忽视。防火墙的透明代理属于代理服务的类型,具有普通代理服务器的工作原理和实现机制,但又具有其特殊性。本文从代理技术的实现方式入手,对透明模式、防火墙的透明代理进行说明,并设计防火墙的透明代理测试方法,用已对防火墙的透明代理功能进行研究和测试[1-3]。

2 代理技术

2.1 代理

代理(Proxy),也称网络代理,是一种允许一个网络终端(一般为客户端)与另一个网络终端(一般为服务器)进行非直接的通信的网络服务。代理一般通过代理服务器(Proxy Server)实现,一般情况下,代理服务器可以对客户端的任何网络请求进行代理,如HTTP、FTP、SSH等协议。

以Web服务为例,当不使用代理服务时,用户使用客户端浏览器去连接服务器端的Internet站点取得网络服务,发送服务请求信号,以期得到服务器应答,服务器收到客户端的请求后,对客户端回送应答信号,客户端和服务器端通过三次握手建立连接。当使用代理服务时,代理服务器在逻辑上介于客户端和服务器端之间,客户端浏览器在发送服务请求时,先将请求发送至代理服务器,由代理服务器再对服务器端进行请求,而且代理服务器接收服务器回送的应答信号,并将该应答发回给客户端浏览器。在一次请求服务中,代理服务器分别与客户端和服务器建立了三次握手,形成一个中间人[4]。

2.2 HTTP代理

2.2.1 公共代理资源

网络上具有很多开放的HTTP代理资源,本节以HTTP为例,使用公网资源对网络代理进行简单的分析。在使用这些资源之前一般需要对客户端浏览器进行设置,对于IE11浏览器,在Internet选项-连接-局域网设置-代理服务器菜单的窗口中填入公共的代理资源(IP地址)。在访问HTTP服务器时,即可使用该代理服务器进行服务访问。目前还可以通过安装浏览器插件的方式来实现代理功能,插件能够自动和动态的设置代理,与手动设置的原理一致。

在公共代理资源中选取一个代理服务器,本节中选择了61.160.250.25的IP地址,尝试访问URL为www.mctc.org.cn的网站,该网站IP地址解析结果为202.127.0.113;在使用代理服务器前后,分别对该网站进行访问,并在客户端使用网络协议分析工具进行数据包分析,图1显示了使用代理前的访问结果,图2显示了使用代理后的访问结果,可以清楚的看到在设置代理服务器之前,客户端使用本机地址直接访问网站,而设置了代理服务器之后,客户端与代理服务器之间建立了通信连接,由代理服务器(IP:61.160.250.25)返回服务器的应答。

由于本节中均使用的是公网资源,无法获知代理服务器与HTTP服务器之间的交互信息,因此在下一节中通过自己搭建的代理服务器对HTTP服务器进行访问,分别查看客户端、代理服务器和HTTP服务器三者之间的信息交互。

2.2.2 简易代理服务器

使用代理服务器软件搭建一个代理服务器,拓扑如图3所示,代理服务器的IP地址为192.168.20.80,端口号设为8080。与上一节相同,在不采用代理服务时,客户端访问HTTP服务器,通过网络协议分析工具进行数据包分析,结果如图4所示。在采用代理服务时,客户端访问HTTP服务器,通过网络协议分析工具分别在客户端和服务器端进行数据包分析,结果如图5和图6所示。

通过测试,不使用代理时,客户端PC(IP:192.168.20.50)直接访问HTTP服务器(IP:192.168.20.41),并且访问的目的端口为服务器上开放的HTTP标准80端口。设置代理后,客户端PC(IP:192.168.20.50)则访问了代理服务器(IP:192.168.20.80),并且访问的目的端口是代理服务器开放的8080端口,而在服务器端则是由代理服务器(IP:192.168.20.80)对HTTP服务器发起的访问,结果与上一节一致,且反应了HTTP代理服务器的全部工作过程。

3 防火墙的透明代理

3.1 透明模式和透明代理

3.1.1 透明模式

目前大多数的防火墙均具有代理的功能,可以在网络中作为代理服务器,完成深度内容检测、应用层控制等功能,在对防火墙的代理功能进行测试之前,本章对防火墙的代理实现机制进行研究。上文对代理进行了简要介绍,由于需要在客户端配置代理服务器,因此针对客户端用户而言,这种代理方式并不是透明的。但是在部署防火墙时,代理一般使用透明方式部署,即客户端并不知道代理服务器的存在[5-8]。

工作在透明模式下的防火墙就如同一台二层设备,内外网口无需配置IP地址直接接入网络中,同时解析所有通过它的数据包,用户并不知道防火墙的存在。透明模式防火墙常用的工作方式有ARP代理和网桥方式[9-11],通过如图7所示的拓扑图对以上两种方式进行介绍。

(1)ARP代理工作方式

在ARP代理工作方式下,主机A要访问主机C时,主机A先发送ARP广播请求,询问路由器R相关的MAC地址信息,但由于路由器被防火墙隔断,因此防火墙F从eth0口收到该ARP请求,并替代路由器R回应,这个包中防火墙F告知主机A路由器R的IP所对应的MAC地址(实际是eth0的MAC地址)。主机A收到防火墙F回应的报文后,将MAC地址写入ARP缓存,然后发往路由器R的IP报文就封装在已eth0的MAC地址为目的的数据帧中发出去;防火墙收到报文后,根据内部的路由配置将该数据报文从eth1口发送给路由器R,此时防火墙还不知道路由器R的MAC地址,防火墙会从eth1发送ARP广播报文找到路由器R的MAC地址,从而正确的将主机A的请求发送至主机C;主机C回复的信息通过同样的方式将数据穿过防火墙F返回给主机A。

(2)网桥工作方式

在网桥的工作方式下,主机A要访问主机C时,同样先发送ARP广播请求,防火墙F的桥接口得知,从eth0口可以到达A的MAC对应的网络接口,从而更新自己的桥接器接口表,并把这个ARP请求从eth1口发送出去,主机A的ARP请求被发送至路由器R,路由器将应答报文返回给防火墙F的eth1口,从而更新自己的桥接器接口表,即eth1口可以到达路由器R的MAC对应的网络接口;根据防火墙F的桥接口信息,主机A可以穿透防火墙访问主机C。

以上是防火墙透明模式比较常用的两种工作机制,当防火墙处在透明模式的情况下,测试防火墙是否采用透明代理方法较为简单:首先防火墙并没有在网络接口上配置IP地址;其次在防火墙上先配置一些访问控制规则,如果通过防火墙的数据报文能够命中访问控制列表中的规则,说明防火墙工作在透明模式下;最后通过分析在防火墙内外网口获取的网络数据报文的IP地址和MAC的方式进一步还可以确定防火墙透明模式的实现机制。

3.1.2 透明代理

上一小节对防火墙的透明模式进行了介绍和测试方法说明,本节对防火墙路由模式下透明代理进行介绍。

防火墙在路由模式下除了能够实现包过滤等功能,还具有路由功能,内外网口分别配置了IP地址,且在客户端访问服务器的时候并不改变网络数据报的源、目的IP地址,因此无法通过内外网口是否配置了IP地址和内外网口的网络数据报文的IP地址和MAC来判断产品是否开启了代理功能[12,13]。

3.2 透明代理的测试方法

3.2.1 测试工具和环境

本文开始已经说明,代理的特点是替代客户端向服务器发起访问,因此本節通过检查防火墙是否将客户端的一个访问会话分割成两个来对防火墙的透明代理功能进行测试。测试过程中的网络环境如图8所示。

在图8中,防火墙F配置为路由模式,内部网络接口eth0的IP地址设为10.10.10.1,外部网络接口eth1的IP地址设为10.74.82.1,同时防火墙F开启SNAT(原地址转换)策略,将内部网络地址在访问外部网络服务时转换为外部网络IP地址10.74.82.153。被访问的外部主机B的IP地址为173.37.147.230。在内部网络和外部网络区分别使用网络协议分析工具对防火墙内外网口的网络报文进行侦听。

3.2.2 测试过程和结果

针对上一节的网络拓扑和配置,测试过程分几步。

步骤一:分别在内部网络和外部网络的主机C和主机D上开启Wireshark网络协议分析工具。

步骤二:不启用防火墙F的透明代理功能时,发起主机A对主机B的TCP访问(发起邮件服务器的SMTP连接)。

步骤三:停止主机C和主机D上的网络协议分析工具的网络数据报侦听,在主机C和主机D上获取的网络报文分别如图9和图10所示。

步骤四:重复步骤一。

步骤五:启用防火墙F的透明代理,发起主机A对主机B与步骤二中同样的TCP访问。

步骤六:在主机C和主机D上获取的网络报文分别如图11和图12所示。

根据图9的结果,可以看出路由模式下主机A直接与主机B建立了三次握手的TCP连接,其第一个syn包中的Sequence number为1702199690。根据图10的结果可以看到,主机A使用SNAT转换后的IP地址与主机B建立了TCP连接,其第一个syn包中的Sequence number值同样为1702199690。说明未使用透明代理的防火墙,虽然开启了SNAT功能,其内外网络使用的是同一个连接,这与预期结果一致。

根据图11的结果,可以看出路由模式下并开启了透明代理的防火墙主机A仍然可以与主机B建立TCP连接,其第一个syn包中的Sequence number为3633652248。根据图12的结果可以看到,主机A使用SNAT转换后的IP地址与主机B建立了TCP连接,其第一个syn包中的Sequence number值为190980376。说明防火墙F使用了透明代理后,其内外网络使用的并不是同一个连接,而是由于代理的存在将会话分成了2个。通过这个实验可以证明,一般情况下,如果内外网通信数据的Sequence Number值不一致,被分割为2个会话,则防火墙开启了透明代理功能。

4 结束语

无论防火墙是工作在透明模式还是路由模式下启用透明代理功能,对于客户端的用户来说,代理功能都是透明的,但是两种方式均改变了网络的原始结构。透明模式下,由于防火墙对其他网络设备不可见,因此造成ARP解析不正常,需要通过ARP代理、网桥或者其他方法使网络数据报文能够正常通过防火墙。工作在透明模式下的防火墙因其不需要设置网络接口的IP地址,且通过其内外网数据报文的特点和自身的规则,透明代理的测试并不复杂。透明代理下,因防火墙本身具有路由功能,从内外网的IP和MAC地址无法判断防火墙是否启用了透明代理,但是通过内外网数据报文的Sequence Number值可以确定防火墙是否将会话进行了隔断,如果会话被防火墙进行了隔断,则可以判断启用的透明代理。

参考文献

[1] 伍卫民,吴和生,蔡圣闻,等.一种高效的透明代理[J].计算机应用, 2002,22 (10),26-28.

[2] 黄菊.包过滤防火墙和代理防火墙的比较[J].郑州航空工业管理学院学报, 2003,21(4),118-120.

[3] 刘军,郑传波,张凯.基于数据包过滤和透明代理相结合的防网络攻击[J].计算机工程与设计, 2005,26(5),1290-1293.

[4] 杨永群,章翔凌,黄勤龙,肖志恒.基于代理的Web应用安全管控系统设计与实现[J].网络空间安全,2017,(Z4),50-53.

[5] 朱树人,李伟琴.代理防火墙的设计与应用[J].计算机工程与科学, 2001,23(1),16-18.

[6] 陈国伟,伍小明.透明网关与透明代理结合的防火墙的设计与实现[J].计算机应用研究, 2003, (5),138-142.

[7] 袁士虎.Linux防火墙中FTP透明代理的设计和实现[J].计算机工程, 2004,30 (23),106-107.

[8] 朱萍.基于透明代理的Linux防火墙的设计与实现[J].合肥工业大学学报, 2007,30(5),576-578.

[9] 黄延学,戴冠中,朱志祥.H.323通信穿透防火墙的一种实现[J].微电子学与计算机, 2001, (6): 39-42.

[10] 刘莹莹,浅析浏览器网页安全问题[J].网络空间安全,2016,(6),60-63.

[11] 张永辉,吴小红,李俊.Linux下防火墙透明模式的原理及实现[J].微电子学与计算机, 2004,21(10),100-104.

[12] 杨晋生,金志刚,胡琳,姚伟栋.基于LINUX的代理型防火墙开发与应用[J]. 计算机工程, 2000,26(增刊),190-193.

[13] 蔡闻怡,陈一民.基于代理的SIP穿越NAT和防火墙方案[J].计算机工程, 2007,33 (22),148-150.

猜你喜欢

防火墙代理
1号异星球餐馆·不可思议的代理老板
《航空模型》团体代理招募
简单高效 玩转Windows 10防火墙设置
澳航货运代理有限公司船期表
澳航货运代理有限公司船期表
澳航货运代理有限公司船期表
复仇代理乌龟君
一张图看懂民间借贷“防火墙”
防火墙选购必读
新手设置Windows Vista自带防火墙