电子商务环境下防火墙系统的分析与实现

2011-03-12 06:25张雨
关键词:网关路由器数据包

张雨

(哈尔滨商业大学计算机与信息工程学院,哈尔滨150028)

在知识经济快速发展的21世纪,“电子商务”无疑是当前最大的热门话题,电子商务以其高效、简捷、成本低、出现在经济生活的各个领域.它的实用价值、网络的无国界渗透,向全球贸易、经济、科技、政治、法律等各界提出无法回避的挑战.电子商务作为计算机应用技术与现代经济贸易活动结合的产物,已经成为人类跨入知识经济新纪元的重要标志之一.然而电子商务的安全却是一个日益凸显且非常严重的问题,严重影响和制约着其发展[1].

1 电子商务中的防火墙技术

防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合,是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力[2].防火墙是提供信息安全服务,实现网络和信息安全的基础设施.

在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全,如图1所示.

图1 防火墙逻辑位置示意图

防火墙有以下3种类型:

1)数据包过滤型防火墙

数据包过滤技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制表[3].通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、协议状态等因素,或它们的组合来确定是否允许该数据包通过.数据包过滤防火墙逻辑简单,价格便宜,易于安装和使用,网络性能和透明性好,通常安装在路由器上.路由器是内部网络与Internet连接必不可少的设备,因此,在原有网络上增加这样的防火墙几乎不需要任何额外的费用.

2)应用级网关型防火墙

应用级网关是在网络应用层上建立协议过滤和转发功能.它针对特定的网络应用服务协议使用指定的数据过滤逻辑,并在过滤的同时,对数据包进行必要的分析、登记和统计,形成报告.应用级网关型防火墙的工作流程如图2所示.

图2 应用级网关型防火墙的工作流程

数据包过滤和应用网关防火墙有一个共同的特点,就是仅仅依靠特定的逻辑判定是否允许数据包通过[4].一旦满足逻辑,则防火墙内外的计算机系统建立直接联系,防火墙外部的用户便有可能直接了解防火墙内部的网络结构和运行状态,有利于实施非法访问和攻击.

3)代理服务型防火墙

代理服务也称链路级网关或TCP通道,也有人将它归于应用级网关一类[5].代理服务是针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术,其特点是将所有跨越防火墙的网络通信链路分为两段.防火墙内外计算机系统间应用层的“链接”,由两个终止代理服务器上的“链接”来实现,外部计算机的网络链路只能到达代理服务器,从而起到了隔离防火墙内外计算机系统的作用.此外,代理服务也对过往的数据包进行分析、注册登记,形成报告,同时当发现被攻击迹象时会向网络管理员发出警报,并保留攻击痕迹.使用代理服务型防火墙的网络结构如图3所示.

图3 代理服务型防火墙的网络结构

2 包过滤技术

2.1 包过滤

包过滤技术是在网络层中对数据包实施有选择的通过[6].根据系统内事先设定的过滤逻辑,检查数据流中每个数据包后,根据数据包的源地址、目的地址、TCP/UDP源端口号、TCP/UDP目的端口号及数据包头中的各种标志位等因素来确定是否允许数据包通过,其核心是安全策略即过滤算法的设计[7].

包过滤技术作为防火墙的应用有3类:一是路由设备在完成路由选择和数据转发之外,同时进行包过滤,这是目前较常用的方式;二是在工作站上使用软件进行包过滤,这种方式价格较贵;三是在一种称为屏蔽路由器的路由设备上启动包过滤功能.

在Linux系统下,包过滤功能是内建于核心的,同时还有一些可以运用于数据包之上的技巧,不过最常用的依然是查看包头以决定是否允许通过.包过滤是一种内置于Linux内核路由功能之上的防火墙类型,其防火墙工作在网络层.

2.2 包过滤防火墙的工作原理

1)使用过滤器.数据包过滤用在内部主机和外部主机之间,过滤系统是一台路由器或是一台主机.过滤系统根据过滤规则来决定是否让数据包通过.如图4所示,用于过滤数据包的路由器被称为过滤路由器.

图4 用过滤路由器过滤数据包

2)过滤器的实现.数据包过滤一般使用过滤路由器来实现,这种路由器与普通的路由器有所不同.普通的路由器只检查数据包的目的地址,并选择一个达到目的地址的最佳路径.它处理数据包是以目的地址为基础的,存在着两种可能性:若路由器可以找到一条路径到达目的地址则发送出去;若路由器不知道如何发送数据包则发送一个“数据不可达”的数据包给发送者.过滤路由器会进一步检查数据包,除了决定是否有到达目的地址的路径外,还要决定是否应该发送数据包,“应该与否”是由路由器的过滤策略决定并强行执行的.

2.3 包过滤器操作的基本过程

包过滤器的操作流程如图5所示.

图5 包过滤操作流程图

3 包过滤防火墙的实现

在Linux系统下,包过滤功能是内建于核心的,同时还有一些可以运用于数据包之上的技巧.本文在Linux系统环境下为图6所示的网络结构建立一个包过滤防火墙.这个网络结构假设内部网有有效的Internet地址.为了将内部网段192.168.80.0/24与Internet隔离,在内部网络和Internet之间使用了包过滤防火墙.防火墙的内网接口是eth1 (198.168.80.254),防火墙的Internet接口是eth0 (198.199.37.254).另外,内网中有3台服务器对外提供服务,WWW服务器:IP地址为198.168.80.251;FTP服务器:IP地址为198.168.80.252;E _mail服务器:IP地址为198.168.80.253.

图6 包过滤防火墙结构图

下面采用编辑并执行可执行脚本的方法建立此防火墙.具体过程如下.

1)在/etc/rc.d/目录下用touch命令建立空的脚本文件,执行chmod命令添加可执行权限.

#touch/etc/rc.d/filter-firewall

#chmod u+x/etc/rc.d/filter-firewall

2)编辑/etc/rc.d/rc.local文件,在末尾加上/ etc/rc.d/filter-firewall以确保开机时能自动执行该脚本.

#echo“/etc/rc.d/filter-firewall”>>/etc/rc.d/rc.local

3)使用文本编辑器编辑/etc/rc.d/filter-firewall文件,插入如下内容:

#!/bin/bash

#在屏幕上显示信息

echo“Starting iptables rules…”

#开启内核转发功能

echo“1”>/proc/sys/net/ipv4/ip_forward

#定义变量

IPT=/sbin/iptables

WWW-SERVER=198.168.80.251

FTP-SERVER=198.168.80.252

EMAIL-SERVER=198.168.80.253

IP_RANGE=“198.168.80.0/24”

#刷新所有的链的规则

$IPT–F

#首先禁止转发任何包,然后再一步步设置允许通过的包,所以首先设置防火墙FORWARD链的策略为DROP

$IPT–P FORWARD DROP

#下面设置关于服务器的包过滤规则.由于服务器/客户机交互是双向的,所以不仅仅要设置数据包出去的规则,还要设置数据包返回的规则

#1)下面建立针对来自Internet数据包的过滤规则

#①WWW服务

#服务端口为80,采用tcp或utp协议

#规则为:eth0=>允许目的为内部网WWW服务器的包

$IPT–A FORWORD–p tcp–d$WWWSERVER–dport www–i eth0–j ACCEPT

#②FTP服务

#服务端口为:命令端口21,数据端口20.FTP服务采用tcp协议.规则为:eth0=>允许目的为内部网FTP服务器的包

$IPT–A FORWORD–p tcp–d$FTPSERVER–dport ftp–i eth0–j ACCEPT

#③EMAIL服务

#包含两个协议,一个是smtp,另一个是pop3.出于安全性考虑,通常只提供对内的pop3服务.所以在这里我们只考虑针对smtp的安全性问题

#smtp端口25,采用tcp协议

#规则为:eth0=>允许目的为内部网E_mail服务器的smtp请求

$IPT– A FORWORD– p tcp– d$EMAIL-SERVER–dport smtp–i eth0–j ACCEPT

#2)下面设置针对Intranet客户的过滤规则

#本例中防火墙位于网关的位置,所以主要是防止来自Internet的攻击.不能防止来自Intranet的攻击

#假如网络中的服务器都是基于Linux的,也可以在每一部服务器上设置.相关的过滤规则来防止来自Intranet的攻击.对于Internet对Intranet客户的返回包,定义如下规则

#①允许Intranet客户采用被动模式访问Internet的FTP服务器

$IPT–A FORWORD–p tcp–s 0/0– sport ftp-data–d$IP_RANGE–i eth0–j ACCEPT

#②接受来自Internet的非连接请求tcp包

$IPT–A FORWORD–p tcp–d 198.168.80.0/24!–syn–i eth0–j ACCEPT

#③接受所有udp包,主要是针对oicq等使用udp的服务

$IPT–A FORWORD–p utp–d 198.168.80.0/24–i eth0–j ACCEPT

#3)然后接受来自整个Intranet的数据包过滤,定义如下规则

$IPT–A FORWORD–s 198.168.80.0/24–i eth0–j ACCEPT

#处理IP碎片.#接受所有的IP碎片,但采用limit匹配扩展对其单位时间可以通过的.IP碎片数量进行限制,以防止IP碎片攻击

$IPT–A FORWORD–f–m limit—limit 100/s——limit–burst 100–j ACCEPT

#说明:对不管来自哪里的IP碎片都进行限制,允许每秒通过100个IP碎片.该限制触发的条件是100个IP碎片

#设置icmp包过滤.icmp包通常用于网络测试等,故允许所有的icmp包通过.但是黑客常常采用icmp进行攻击,如ping of death等.所以我们采用limit匹配扩展加以限制

$IPT–A FORWORD–p icmp–m limit——limit 1/s——limit–burst 100–j ACCEPT

#说明:对不管来自哪里的icmp包都进行限制,允许每秒通过一个包.该限制触发的条件是10个包

4)执行脚本,使之立刻生效

#/etc/rc.d/filter-firewall

至此,包过滤防火墙设置完毕.通过执行上面的脚本,建立了一个相对完整的防火墙.该防火墙只对外开放了有限的几个端口,同时提供了客户对Internet的无缝访问,并且对IP碎片攻击和icmp的ping of death提供了有效的防护手段.

4 结语

防火墙技术是目前用来实现电子商务安全措施的一种主要手段,它主要是用来拒绝未经授权的用户访问,阻止未经授权的用户存取敏感数据,同时允许合法用户不受妨碍地访问网络资源,如果使用得当,可以在很大程度上提高网络安全性能.但是没有一种技术可以百分之百解决网络上的信息安全问题,基于Linux的包过滤防火墙同样存在安全隐患.因此网络安全单靠防火墙技术是不够的,还需要有一些其他技术和非技术的因素要考虑,它是由一系列工作组成,需要从电子商务安全管理、安全技术体系和法律等多方面开展工作和研究.

[1] 曹汉平,冯启明,吴春蕾.Linux防火墙技术研究[J].武汉理工大学学报,2001,2:120-122.

[2] 张凤斌,王胜文.基于包过滤技术的防火墙设计[J].哈尔滨理工大学学报,1998,6:14-17.

[3] 王家业,荆继武,朱森存.包过滤防火墙的安全研究[J].计算机科学,1999(26):34-36.

[4] 吴文刚,王庆生.基于Linux包过滤防火墙技术发展研究[J].太原理工大学学报,2003,5:132-134.

[5] 韩珂.基于linux下的包过滤防火墙ipchains与iptables的分析研究[J].中原工学院学报,2010,6:59-63.

[6] 陈一飞.Linux防火墙中的包过滤技术[J].安徽建筑工业学院学报,2005,6:87-90.

[7] 李 岚,齐楚焕,刘新禹,等.电子商务系统中移动Agent动态路由策略的研究[J].哈尔滨商业大学学报:自然科学版,2011,27(1):89-91.

猜你喜欢
网关路由器数据包
买千兆路由器看接口参数
维持生命
基于Jpcap的网络数据包的监听与分析
路由器每天都要关
路由器每天都要关
SmartSniff
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计