苏守宝, 王池社, 刘 钰, 刘 晶
(金陵科技学院 计算机工程学院, 江苏 南京 211169)
一种开放源代码的防火墙技术及其实验设计
苏守宝, 王池社, 刘 钰, 刘 晶
(金陵科技学院 计算机工程学院, 江苏 南京 211169)
防火墙技术是计算机网络安全领域的重要内容之一。一些专用硬件防火墙作为实验设备具有价格昂贵、内部技术不透明等缺点。文中利用Linux OS下的IPtables、Squid以及其它开放源代码软件,灵活地使用Linux主机实现各种防火墙技术,包括使用IPtables实现包过滤防火墙、NAT代理、IP地址伪装、Squid代理服务器、代理认证、代理服务访问统计系统及其实验设计。
计算机网络安全; 防火墙; 实验设计; 开放源代码
防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。防火墙技术作为一种重要的网络安全技术,已经广泛开设于计算机网络、计算机网络安全技术、信息安全等课程中[1-3]。防火墙是不同网络或网络安全域之间信息的唯一出入口,通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,有选择地接受外部访问,对内部强化设备监管、控制对服务器与外部网络的访问,在被保护网络和外部网络之间架起一道屏障,以防止发生不可预测的、潜在的破坏性侵入,作为主机安全的攻击方和防御方,病毒、木马与安全软件产品都在使用不同层次的rootkit技术进行信息的窃取与防护[4-5]。通常有硬件防火墙和软件防火墙,控制手段包括包过滤、状态检测、代理服务、地址翻译技术等。夏跃伟等[6-7]针对网络威胁类型和攻击手段设计了包过滤防火墙、屏蔽主机防火墙和屏蔽子网防火墙,利用IPtables实现了基本的防火墙策略及其规则生成系统,康海燕等[8]设计并实现了一种基于rootkit的主动防御监控扩展框架,刘飞霞等[9-10]通过对WiMAX网络产品的分析,Linux内核中Netfilter/Iptables防火墙设置分析。肖淇等[11-12]对由基于规则的分段技术得到的片段进行自定义的排序, 设计了一种基于MapReduce模型的防火墙策略规则冲突检测算法。荀仲恺等[13]针对低特权级的虚拟域中防火墙容易受到攻击的问题,利用 SR-IOV 规范的高性能数据传输特性和对接收数据包的过滤功能,使虚拟域直接与真实网卡交互,提出一种高性能的虚拟机防火墙设计方案,通过在高特权级的Xen中部署监控模块,对虚拟域中的防火墙进行实时监控,以防止防火墙被非法访问和恶意篡改,保证防火墙的安全。
近年来,移动应用、云安全及智能防火墙技术等也逐渐得到重视[8,11,14]。但学习防火墙技术不仅仅是学习书本上空洞的理论和抽象的安全策略,要使学生真正掌握好该技术,需要大量的实践环节加以理解、掌握和应用,提高学生的专业实践能力。如果利用专用的防火墙硬件作为实验设备,不仅具有价格昂贵、内部技术不透明的缺点,而且不能真正地让学生了解防火墙的体系结构、原理及技术,并加以灵活运用。由于Linux操作系统源代码的开放性,提供了一个防火墙框架Netfiher,使得Linux成为研究防火墙技术的一个很好平台。因此本文利用Linux OS下的开放源代码软件IPtables及Squid,灵活地使用Linux主机实现各种防火墙技术,设置了若干防火墙技术实验项目,给出了实验环境的搭建。
包过滤防火墙[2,9]一般在路由器上实现,用以过滤用户定义的内容,可以在网络层或数据链路层截获数据,使用一些规则来确定是否转发或丢弃各个数据包。本文中将以Linux OS下的IPtables软件为例来说明包过滤防火墙实验设计,其实验环境搭建如图1所示。
图1 包过滤防火墙实验平台的搭建
在该环境中只需要1台用于运行IPtables防火墙的Linux主机,3台Windows主机分别连接到防火墙主机的3块网卡(NIC)上,分别用来模拟Internet区域、DMZ和私有网络。为了满足实验的要求,在这3台Windows主机上必须安装的一些软件如各种服务器软件并加以配置使其正确运行。在该实验环境中,设计满足如下网络安全要求的防火墙实验要求:
(a) 允许网络接口eth1、eth2相连接的LAN1和LAN2之间相互通信。
(b) LAN1和LAN2的任何主机可以使用internet中的任何服务(Web,E-mail,Ftp等)。
(c) 来自internet的主机不能访问1023以下的LAN1和LAN2中的内部端口。
(d) 拒绝全部从eth0进入的ICMP通信。
(e) 允许internet中的主机访问LAN1中的DNS服务、WEB服务、FTP服务,其它服务如telnet等禁止。
通过该实验不仅让学生掌握通过防火墙实现包过滤,也可使学生掌握IPtables的防火墙规则编写方法、IPtables中的表和链的概念,防火墙在网络系统中的部署、安装、配置和测试方法等,为以后真正利用防火墙来保护网络奠定坚实的基础。
网络地址翻译(NAT)[4,15]也是一种重要的防火墙技术,它隐藏了内部的网络结构,外部攻击者无法确定内部网络的连接状态。通过设置规则,在不同的时候,内部网络向外连接使用的地址都可以不同,给外部攻击者造成了困难。同样NAT通过定义各种映射规则,可以屏蔽外部的连接请求,并可以将外部连接请求映射到不同的主机上。NAT实验环境如图2所示,可以设计如下实验。
图2 网络地址翻译NAT实验环境搭建
(1) 利用NAT进行IP地址伪装。将向外部网络上提供服务的服务器在物理上放置于私用网络中,假如私用网络中的一台服务器的IP地址为192.168.1.3/24,如果要对外部网络提供Web服务,就可以利用IPtables进行IP地址伪装,当外部网络中的主机对210.45.144.254进行Web请求时,该防火墙就转向私用网络中的192.168.1.3的服务器进行Web请求。可以使用下面的IPtables规则加以实现。
#IPtables -t nat -A PREROUTING -p tcp -d 210.45.144.254 --dport 80 -j DNAT --to-destination 192.168.1.3
(2) 使用NAT代理访问外部服务。使私有网络中的主机通过NAT代理访问外部网络中的服务,可以使用下面的IPtables规则加以实现。
#IPtables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 210.45.144.254
代理服务器防火墙[7,10]的原理是所有内部主机的请求都发送到代理服务器,由代理服务器发送Internet请求,当响应的包达到时,代理服务器将其发送到发出初始请求的内部主机上。
使用应用层防火墙即代理服务器是另一种创建网络边界的方法,并能用更具体的方式过滤通信,通过增加规则过滤网页内容,可以过滤掉地址中包含某些单词的Web页请求。另外还有降低带宽成本,提高网络性能,实现负载平衡的优点。
实验项目利用Squid Web代理缓存服务器[7]来实现。图3是实现该实验项目的平台。
图3 应用层防火墙实验平台搭建
在以上的实验环境中,设计满足如下要求的实验:
(a) Windows Client通过Squid代理服务器访问www服务器或ftp服务器。
(b) 设置规则(如关键词)进行URL的内容过滤。
(c) 在squid.conf中定义ACL(访问控制列表)用于源IP地址、IP地址范围,目标IP地址、IP地址范围进行访问时的允许或拒绝。
(d) 实现代理认证,即对使用代理服务器的客户端进行Username/Password身份认证。
(e) 实现Squid代理服务器访问报告生成器。Squid代理服务器访问统计系统可以利用Sarg软件加以实现,该软件可以从http://sarg.sourceforge.net/sarg.php下载sarg-2.3.1.tar.gz源代码软件包。该软件通过访问Squid的日志文件access.log实现用户访问情况统计、站点访问统计、拒绝访问统计、认证失败统计、访问流量统计、访问时间统计等各种信息统计。
文中利用Linux OS下的IPtables、Squid以及其它开放源代码软件,灵活地使用Linux主机实现各种防火墙技术,包括使用IPtables实现包过滤防火墙、NAT代理、IP地址伪装、Squid代理服务器、代理认证、代理服务访问统计系统等,设置了若干防火墙技术实验项目,给出了实验环境的搭建。在节约实验设备硬件投资的情况下,使学生更深入地掌握防火墙原理、技术及实现,并提高学生的专业实践能力。
[1] Damon E, Mache J, Weiss R,etal. Cyber Security Education: The Merits of Firewall Exercises [J]. Emerging Trends in ICT Security, 2014, 5(3):507-516.
[2] 郑 伟.基于防火墙的网络安全技术的研究[D].长春:吉林大学, 2012.
[3] 夏 晴.浅析开源软件在网络信息安全体系中的应用[J]. 计算机软件与应用, 2013,30(1):84-87.
[4] 彭 飞.基于rootkit的主动防御技术研究与实现[D].成都:电子科技大学, 2013.
[5] Liang X Y, Xia C H, Jiao J,etal. Modeling and global conflict analysis of firewall policy [J]. China Communications, 2014, 11(5):23-34.
[6] 夏跃伟,牛文倩,刘金广.基于Linux平台防止IP欺骗的SYN攻击防火墙的设计与实现[J].现代电子技术, 2014, 37(9):83-85.
[7] 张秀岭,万 旻,骆建彬,等. Linux下基于Squid的多能代理系统与透明网关解决方案[J]. 计算机应用, 2013, 34(5):534-539.
[8] 康海燕,樊 扬.基于Android手机智能防火墙的研究与设计[J].北京信息科技大学学报(自然科学版), 2014, 29(2):36-40.
[9] 刘飞霞. Linux内核中Netfilter/Iptables防火墙设置分析[D]. 西安:西安电子科技大学, 2012.
[10] 叶惠卿.基于Linux Iptables防火墙规则生成的研究与实现[D]. 广州:中山大学, 2010.
[11] 肖 淇,秦云川,阳王东,等.一种基于MapReduce的防火墙策略冲突并行化检测及消解模型[J]. 计算机科学, 2013, 40(3):10-13.
[12] Fern K M, Sharipah S. Expert Rules of Firewall: A Technique to Construct and Modified a Set of Rules [J]. International Journal of Information and Education Technology, 2015, 5(12): 951-956.
[13] 荀仲恺,黄 皓,金胤丞.基于SR-IOV的虚拟机防火墙设计与实现[J].计算机工程, 2014, 40(5):32-35.
[14] Moruse V S, Manjrekar A A. Software defined network based firewall technique [J]. International Journal of Computer Engineering & Technology, 2013, 4(2): 598-606.
[15] 邹航,李梁,王柯柯,等. 整合ACL和NAT的网络安全实验设计[J].实验室研究与探索, 2011, 30(4):50-53.
欢迎赐稿,欢迎订阅,欢迎刊登广告。
An Experiment Design for Firewall Techniques Based on Open Source Code
SUShou-bao,WANGChi-she,LIUYu,LIUJing
(School of Computers Engineering, Jinling Institute of Technology, Nanjing 211169, China)
The firewall technology is one of the important contents in the field of computer network security. Some special hardware firewalls used in the experimental equipment have some disadvantages, such as expensive cost, its internal technical protection etc.Some kinds of firewall technology including the use of IPtables to realize packet filter firewall, NAT agent, IP address camouflage, a Squid proxy server, proxy, proxy service access statistics system have designed experimentally by using Linux OS IPtables, Squid and other open source software.
computer network security; firewall; experiment design; open source code
2015-01-08
教育部人文社会科学(工程科技人才培养专项)研究项目(13JDGC018);安徽省省级质量工程重点(2012JYXM433)
苏守宝(1965-),男,博士,教授,主要研究群智能计算与网络安全等。Tel.:025-86188957; E-mail:showbo@jit.edu.cn
TP 316
A
1006-7167(2015)08-0124-03