数据包过滤

2024-07-11

数据包过滤(通用7篇)

数据包过滤 篇1

0 引言

网络安全需要解决的主要问题是在使用互联网时如何保护单位或私人的内部网络免受外部攻击。防火墙是指一个能把内部计算机网络与互联网隔开的屏障,它由计算机硬件和特殊的软件有机结合而成,使内部计算机网络与互联网之间建立起一个安全的网关,从而保护内部计算机网络免受外部非法用户的入侵。

1 包过滤防火墙

1.1 实现原理

防火墙一般分为数据包过滤型和代理服务器型。考虑到病毒及黑客软件发出大量的网络数据包造成网络主干部分堵塞等因素,一般多可采用包过滤防火墙技术,制定相应的数据包过滤规则,对各种类型的传输协议数据包做过滤。内部的网络需要以防火墙为网关,所有内部网络所发出的数据包都会经过此防火墙,所有的数据包都需要套用包过滤规则。通过分析和查看数据包的包头信息,完成丢弃(阻拦)或接受(放行)数据包的目的。而外部数据包要进入内部网络也需要经防火墙做包过滤。

1.2 操作流程

数据包过滤是通过对数据包的IP头和TCP或UDP头的检查来实现,主要包括:IP源地址;IP目的地址;协议(TCP包、UDP包和ICMP包);TCP或UDP包的源端口;TCP或UDP包的目标端口;ICMP消息类型;TCP包头中的ACK位;数据包到达的端口;数据包出去的端口。

2 Netfilter/Iptables结构及工作原理

2.1 总体结构

Linux提供的防火墙软件包内置于Linux内核中,是一种基于包过滤型的防火墙实现技术。其中心思想是根据网络层IP包头中的源地址、目的地址及包类型等信息来控制包的流向,更彻底的过滤则是检查包中的源端口、目的端口以及连接状态等信息。

Netfilter/Iptables是与最新的2.4.x版本Linux内核集成的IP信息包过滤系统。如果Linux系统连接到LAN和或因特网和代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。Netfilter是Linux核心中一个通用架构,用于扩展各种服务的结构化底层服务。它提供一系列的表(Tables),每个表由若干链(Chains)组成,而每条链中可以由一条或数条规则(Rule)组成。它可以和其它模块(如Iptables模块和Nat模块)结合起来实现包过滤功能。Iptables是一个管理内核包过滤的工具,可以插入或删除核心包过滤表格中的规则。实际上真正来执行这些过滤规则的是Netfilter。

2.2 数据包过滤过程

Netfilter/Iptables IP信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时防火墙所遵循和组成的规则。规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在所谓的链中。

虽然Netfilter/Iptables IP信息包过滤系统被称为单个实体,但它实际上由两个组件Netfilter和Iptables组成。Netfilter组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。Iptables组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得更容易。

3 Netfilter/Iptables防火墙的应用

对于连接到网络上的Linux系统来说,防火墙是必不可少的防御机制,它只允许合法的网络流量进出系统,而禁止其它任何网络流量。为了确定网络流量是否合法,防火墙依靠它所包含的由网络或系统管理员预定义的一组规则,这些规则告诉防火墙某个流量是否合法以及对于来自某个源、至某个目的地或具有某种协议类型的网络流量要做些什么。

下面是在Linux平台下,使用Netfilter/Iptables建立的一些典型包过滤防火墙的应用。

(1)内容过滤,对数据包中含有“腾讯”、“色情”、“广告”等字段内容的所有网站进行屏蔽。

iptables-I FORWARD-m string--string"腾讯"-j DROP

iptables-I FORWARD-s 192.168.1.1-m string--string"qq.com"-j DROP

iptables-I FORWARD-d 192.168.1.0/24-m string--string"宽频影院"-j DROP

iptables-I FORWARD-s 192.168.1.0/24-m string--string"色情"-j DROP

iptables-I FORWARD-p tcp--sport 80-m string--string"广告"-j DROP

(2)并发连接,只允许每个IP同时使用5个80端口转发,超过的丢弃。主要可以限制内网用户的网络使用,对服务器而言则可以限制每个IP发起的连接数。

iptables-I FORWARD-p tcp--syn--dport 80-m connlimit--connlimit-above 5-j DROP

(3)IP范围限制,允许地址范围为192.168.1.1192.168.1.200的数据包通过。

iptables-A FORWARD-m iprange--src-range192.168.1.1-192.168.1.200-j ACCEPT

(4)封杀BT类的P2P软件,限制网络用户使用BT软件占用大量网络带宽下载网络资源。

iptables-A FORWARD-m ipp2p--edk--kazaa--bit-j DROP

iptables-A FORWARD-p tcp-m ipp2p--ares-j DROP

iptables-A FORWARD-p udp-m ipp2p--kazaa-j DROP

(5)速度匹配扩展,指定单位时间内允许通过的数据包数量,限制每小时通过100个数据包。

iptables–A INPUT–m limit–limit 100/hour

(6)WWW服务,设置Etho允许目的为内部网WWW服务的数据包。

iptables-A FORWARD-p tcp–d$WWW-SERVER–dport www–I etho–j ACCEPT

(7)ICMP包过滤,防止黑客使用ICMP进行攻击,对来自任何地方的ICMP包进行限制,允许每秒通过一个包,触发条件是10个包。

iptables-A FORWARD-p imcp-m limit–limit 1/s–limit-burst 10–j ACCEPT

(8)防火墙策略,设置防火墙FORWARD链的策略为DROP

iptables–P FORWARD DROP

4 结束语

基于Netfilter/Iptables的Linux包过滤防火墙的应用,通过制定有效的防火墙规则,不仅可以保护内部网络用户的安全,确保用户能够正常使用内部网络和互联网资源,同时也为核心网络管理人员提供一个学习和提高的机会。

摘要:随着Internet的普及,网络的安全显得尤为重要。Linux提供的基于Netfilter/iptables的防火墙,具有通用性和可扩展的特点,实现了一种性价比较高的安全方案,可以有效地阻止恶意攻击,成为很多网络管理员的选择。

关键词:Netfilter,Iptables,Linux,包过滤,防火墙

参考文献

[1]Smar Training工作室,梁如军等.Red Hat Linux9网络服务[M].北京:机械工业出社,2004.02.

[2]赵海全,曾详萍.基于Linux系统的校园网安全设计方案[J].电脑与信息技术,2004.

[3]潘瑜.基于Linux环境的网络安全防火墙和入侵检测系统的研究[J].江苏技术师范学院学报,2005.

[4]http://www.xxlinux.com/linux/article/network/security/20061025/5378.html.

浅析防火墙包过滤技术的应用 篇2

随着全球信息时代的到来,网络技术的应用也随之更加广泛,并且在网络技术和网络资源之间形成了一种相互结合的关系。比如说当今主流的几种网络应用包括 :网上银行,网络购物等。在网络技术给人们的生活带更多方便的同时,网络的安全性则成为一个不可忽视大问题,也只有网络应用安全了网络信息技术给人们带来了才是真正的方便,否则将是越来越多的烦恼,将会受到很大的损失,充分利用先进的技术和网络资源来不断提高网络安全性能,网络安全才是网络广泛应用的根本。

目前,网络安全的软硬件产品有很多包括防毒墙、IDS、VPN、邮件过滤、防火墙等,其中应用最为广泛、技术相对成熟的安全产品就是防火墙,它一般部署到外网与内网之间用于保护内网用户的安全,哪么如何部署调式防火墙成为网络管理者必须要掌握的安全技能。

1 防火墙技术简介

防火墙作为网络安全设备其主要网络安全控制手段有两种 :包过滤和应用代理。下面将对两种防火墙技术进行简述。

包过滤型防火墙技术作为一种安全控制技术应用简单、效果显著,它通过建立规则来限制网络中数据包的传输,我们可以限制含有某些源地址或是目的地址的特定数据包,可以允许或禁止这类数据包的通过,建立数据包的通行规则,通过这些规则的建立,达到网络之间安全检查的作用。包过滤技术最主要的优点是 :可以快速对整个网络系统形成保护,数据包在过滤的时候对用户完全透明,并且工作效率极高,过滤速度非常快 ;缺点是 :这种安全控制技术应用于OSI中的网络层和传输层之间,只能进行初步的安全防范,对于高层次的攻击手段,则无法防御。

应用代理型防火墙技术,这种防火墙技术是建立在OSI中的最高层应用层上的数据过滤,是针对特定的网络应用服务制定安全规则,达到对服务器等特定对象上重要数据的安全防范作用,可以有效拒绝非法请求。代理服务支持网络地址的相互转换(NAT),NAT有一对一和一对多等几种常见的代理服务应用。总之这种防火墙技术最大的特点就是完全阻断了网络通信流的数据,通过对每一种应用服务专门编制的代理程序,实现监督和控制的作用 ;缺点是 :代理工作的速度相对较慢,对于用户来说代理过程是完全隐蔽的,代理服务没有办法改进底层协议的安全性,适应能力比较弱。

2 防火墙术语

网关 :在两个设备之间提供转发服务的系统。

DMZ非军事化区 :为了配置管理方便,为提供外部服务的服务器单独留出的网段。防火墙一般配备三个连接口分别为LAN口、WAN口和DMZ口。

吞吐量 :是指在不丢包的情况下单位时间内通过防火墙的数据包数量。

最大连接数 :网络中大多数连接是指所建立的一个虚拟通道。防火墙对每个连接的处理也要耗费资源,因此最大连接数成为考验防火墙这方面能力的指标。

数据包转发率 :是指在安全规则正确配置下,对数据流量的处理速度。

另外还有SSL( 数据安全协议 ) ;网络地址转换 ;堡垒主机等常用术语。

3 基于包过滤的防火墙应用实例

某公司内部网络分为了多个网段,其中的财务网段的数据要求的安全性能比较高,只有指定用户才能进行访问,所以公司想把本网段用防火墙与其它网络隔离开,以保证财务网段数据的相对安全,要求合理布置防火墙,并对防火墙进行适当的配置。

3.1 实例分析并搭建实验环境

设备与配线拓扑结构如图1所示 :路由器两台、防火墙一台、终端计算机(两台)、RS-232电缆(一根)、RJ-45网线。

3.2 实例具体操作

3.2.1 通过 CONSOLE 口对防火墙进行命令行的管理

(1)连接防火墙

利用随机附带的串口线连接管理主机的串口和防火墙串口CONSOLE, 启动以Windows自带“超级终端”进行通讯参数设置后,进行到命令行状态准备配置防火墙。

提示 :对于Windows自带“超级终端”,选择“还原默认值”即可

(2)登录CLI界面

当设备连接成功以后,在命令行会提示输入管理员帐号和口令,第一次登陆防火墙其默认帐号”admin”和口令“firewall”。

提示 :帐号和口令所有的字母都是小写

1)输入命令”fastsetup”,进入命令行配置向导。

2)选择防火墙FE1接口的工作模式 ,输入1为路由模式 , 输入2为混合模式。选择防火墙FE2接口的工作模式,在这里我们选择1为路由模式,方法同FE1。

提示 :此时FE1和FE2的工作模式必须一致。

3)输入FE1接口的IP地址和掩码。

提示 :若FE1、FE2都是混合模式,则FE1的地址必须配置 ,FE2的地址可以不配置。

4)设置默认网关IP(若防火墙的两个网口都是混合模式,可以不配置默认网关)

输入FE1和FE2接口的IP地址和掩码。

提示 :此时FE1和FE2的IP允许在同一网段。

5)设置管理主机IP与设置安全规则的源IP和目的IP,默认为any。

6)保存配置,请执行“syscfg save”命令。

3.2.2 通过 WEB 界面进行管理

(1)安装电子钥匙程序

每个防火墙设备都会有一个合法的证书,只有完成证书的导入后防火墙才能正常工作。

(2)登录防火墙WEB界面

运行IE浏览器 , 在地址栏 输入https://192.168.10.100:6666,等待约20秒钟会弹出一个对话框提示接受证书,确认之后系统会提示输入管理员帐号和口令,输入帐号和口令登录WEB界面。

(3)根据防火墙的部署情况进行防火墙IP地址的配置。

提示 :至少要在防火墙配置时设置一个管理IP,若GE1 GE2都是混合模式,则GE1的地址必须配置,GE2的地址可以不配。

在“网络配置 >> 接口IP”,设置Ge1和Ge2的IP地址。

(4)设置透明桥

1)在做透明桥之前必把接口变成混合模式 :

2)打开透明桥选项卡,进行相关配置,完成透明桥的建立工作。

(5)添加策略路由

在“网络配置 >> 策略路由”界面中,点击,添加相应的路由信息。

(6)设置包过滤

在“安全策略 >> 安全规则”界面中,点击,进入安全规则对话框,选择相应的源地址和目标地址,并选择相应的服务类型,保存配置。

4 结束语

包过滤防火墙系统的设计与研究 篇3

随着Internet不断的发展和普及,网络信息安全问题越来越受到人的关注,也时常让人感到担忧。攻击者利用计算机硬件、软件、网络传输协议、网络设备等安全漏洞进行攻击或利用恶意代码进行攻击。网络攻击事件一旦发生就有可能导致有关的服务中断、重要商业信息失窃、研究机构的重要数据丢失甚至设计到国家机密等,其灾难性后果是不言而喻的。防火墙是网络信息安全的主要技术手段之一,个人防火墙得到了广泛的应用。

1 防火墙技术

1.1 防火墙简介[1]

防火墙是用来在安全私有网络(可信任网络)和外部不可信任网络之间的安全连接的一个设备或一组设备,提供Internet和私有网络之间连接的单点存在。

防火墙作为一个或一组实施访问控制策略的系统用来保护计算机网络免受非授权人员的骚扰与黑客的入侵,是目前最为流行也是使用最为广泛的一种网络安全技术。它在一定程度上保护了某个范围内的主机的安全。防火墙减轻了系统被用于非法和恶意目的的风险。

1.2 防火墙的技术分类[2,3]

防火墙的技术分类为:封包过滤型(包过滤技术),NAT技术,应用层闸通道型,封包检验型,状态检测技术,代理防火墙,VPN 虚拟专用网等。

2 Windows包过滤防火墙的实现技术[3,4]

2.1 Windows操作系统下的数据包拦截技术

在Windows操作系统中,网络数据包的捕获可分为2个层次,一个层次是在核心态(Kernel Mode),另一个层次是在用户态(User Mode)。

2.1.1 核心态的网络数据包拦截技术

核心态的网络数据包拦截技术通过编写网络体系结构各个层次的驱动程序在操作系统的核心层来进行数据包的拦截。主要方法有:

(1) TDI过滤驱动程序。当应用程序要发送或接收网络数据包的时候,都是通过与协议驱动所提供的接口来进行的。只需开发一个过滤驱动来截获这些交互的接口,就可以实现网络数据包的拦截。

(2) NDIS中间层驱动。中间层驱动介于协议层驱动和小端口驱动之间,它能够截获所有的网络数据包(如果是以太网那就是以太帧)。

(3) NDIS Hook Driver。这是目前大多数个人防火墙所使用的方法。Hook的概念在Windows 9x下非常流行,而且实现也很容易。

2.1.2 用户态的网络数据包拦截技术

(1) SPI方式。

Windows Socket 2.0版本引入了SPI的编程接口,它可以在Socket中插入一层,从而完成QoS、数据流加密等目的。

(2) Windows包过滤方式。

Winsock 2.0引入了SIO_RCVALL套接字的控制命令,指定套接字来接受网络接口上所有的IP分组,建立套接字,并且绑定至本地端口后,调用WSARecv捕获IP分组并利用循环处理。

(3) 替换Winsock动态链接库的方式。

将系统中的Winsock.dll文件替换成开发者自己编写的动态链接库文件,这样系统对于Socket的处理都会经过开发者的过滤和处理规则,达到对Socket数据传输规范的目的。

2.2 本防火墙采用的数据包拦截技术

本防火墙设计网络数据包的截获分别在用户态和内核态下进行,在内核态下由NDIS中间层驱动完成,用户态下则由WinSock 2 SPI完成。用户可通过内核态下的网络封包拦截获得操作网络数据包的进程、端口、协议等详细信息,根据协议和端口规则对网络数据封包进行处理;同时也可通过用户态下对应用程序数据包的拦截来设置自己的应用程序规则,对应用程序连网动作进行过滤。

3 包过滤技术[5,6]

包过滤防火墙是基于过滤规则来实现的,建立这类防火墙一般按如下步骤进行:建立安全策略;写出所允许的和禁止的任务;将安全策略转化为数据包字段的逻辑表达式-包过滤规则。其中规则的自动生成和推理机的设计是包过滤防火墙技术的核心。包过滤防火墙主要是防止外来攻击,或是限制内部用户访问某些外部的资源。

包过滤技术是一种简单、有效的安全控制技术,它通过在网络间相互连接的设备上加载允许、禁止来自某些特定的源地址、目的地址、TCP端口号等规则,对通过设备的数据包进行检查,限制数据包进出内部网络。包过滤的最大优点是对用户透明,传输性能高。但由于安全控制层次在网络层、传输层,安全控制的粒度也只限于源地址、目的地址和端口号,因而只能进行较为初步的安全控制,对于恶意的拥塞攻击、内存覆盖攻击或病毒等高层次的攻击手段,则无能为力。

使用包过滤技术时,要特别注意一般应用的数据通信大多都是双向的,在设置过滤规则时必须予以考虑。

包过滤防火墙对所接收的每个数据包应做出允许或拒绝的决定。过滤规则基于提供给IP转发模块的包头信息。包头信息包括IP源地址、IP目的地址、内装协议(TCP,UDP,ICMP)、TCP/UDP端口、ICMP消息类型。

如果匹配并且规则允许该数据包,那么该数据包就会按照路由表中的信息被转发。如果匹配并且规则拒绝该数据包,那么该数据包就会被丢弃。如果没有匹配规则,用户配置的缺省参数会决定是转发还是丢弃数据包[7,8]。

(1) IP地址过滤

在程序实现中,仅给出允许转发的IP地址,由于这样的地址比不允许转发或者称为被拒绝的地址要少得多,因此在包过滤吞吐量要大的多。对于源于网络外部的请求则加以拒绝,有效地防止了电子欺骗的发生。

(2) 端口地址过滤

为了确保正确和高效,人们己经为端口分配开发了一个标准的框架。换句话说,虽然每个人可以根据选择把服务指定到某个端口,但服务通常还是将指向通常称为“有名端口”(Well-Known Ports)的系统能够识别的端口。在过滤规则集中,仅将允许的端口打开,既可以称之为端口地址过滤,又可以作为协议过滤。

(3) 协议过滤[9]

为了实现了对包的解析,再看下面的IP包头结构:

Struct IpPacketHead

{…BYTE Proto:}

当只需要在解析包时,根据该数据对所有协议创建一个禁止表,就可以实现协议的过滤了。

同样,对于IP地址和端口同样可以用禁止表的形式实现。防火墙用在传输网络(Transmission Network)中主要用于不良站点过滤和恶意攻击性站点的封锁,一方面需要多个防火墙分布在传输网络多个接入点;另一方面由于地址空间的开放性和动态性,这些站点无法聚类,导致过滤规则集合过于庞大,即使是最基本的IP地址过滤也将会导致网络吞吐量的急剧下降。

4 结 语

设计了一种新型的个人防火墙,包括包过滤流程、未知数据包的捕获处理等;同时在对于包过滤防火墙规则的创建和防止冗余等方面做了一些工作。

摘要:为了实现保护信息不被窃取或破坏,设计了一款个人防火墙。该防火墙集成了个人防火墙中普遍采用的两种包过滤方法,即通过内核态下的网络封包拦截获得网络数据包的进程、端口、协议等详细信息,根据协议和端口规则对网络数据封包进行处理;同时,通过用户态下对应用程序数据包的拦截来设置自己的应用程序规则来进行过滤。采用推理机实现过滤规则的动态生成;提高了包过滤防火墙的性能,能更好地保证网络信息的安全。

关键词:防火墙,包过滤,推理机,网络数据包

参考文献

[1]吴功宜.计算机网络高级教程[M].北京:清华大学出版社,2007.

[2]程玮玮.防火墙技术原理及其安全脆弱性分析[J].计算机应用,2003,23(10):46-48.

[3]王晓薇.防火墙包过滤规则正确性的研究[J].沈阳教育学院学报,2003,5(3):110-114.

[4]钱江波,董逸生.一个智能防火墙模型[J].计算机应用研究,2003,20(7):77-79.

[5]曹淑华.计算机网络规划及实现研究[J].现代电子技术,2010,33(16):91-93.

[6]于韶杰.具有字符过滤功能的包过滤防火墙的设计研究[J].硅谷,2009(9):17-19.

[7]邱桔,韦理丽.Linux下包过滤防火墙的设计与实现[J].计算机工程与设计,2006,27(13):2472-2475.

[8]何泾沙.Linux防火墙[M].北京:机械工业出版社,2006.

数据包过滤 篇4

关键词:ipfw,freebsd,防火墙

0 引言

近些年来, 随着Internet技术的高速发展, 互联网给人们的生活和工作带来了极大的方便。尤其是随着移动终端和云计算时代的到来, 人们的生活已经完全离不开网络。然而, 随着网络不断普及, 网络信息传输的安全性已成为日益关注的热点问题。防火墙系统是目前使用最多的一种网络安全防护技术。通过在用户的内网和外网之间架设一道防火墙系统, 来保障内网用户的信息安全, 阻止黑客的非法入侵。

1 防火墙的分类及其工作原理

防火墙按类型可分为网络层防火墙和应用层防火墙。网络层防火墙可视为状态监测的包过滤防火墙, 其工作原理如图1所示。

包过滤防火墙将流入的ip数据包进行数据分析, 读取数据包中源ip地址、目的ip地址、源端口、目的端口等信息, 并参照设定的过滤规则进行匹配, 不符合规则的数据包被直接丢弃。优点是占用系统硬件资源少, 执行速度快, 缺点是无法识别和阻止应用层的非法入侵信息。应用层防火墙工作在OSI网络参考模型的应用层, 主要通过dpi技术 (深度包检测技术)

深入读取ip数据包中的应用层数据, 分析数据包荷载的用户信息具体内容, 如恶意软件、具体数据和应用程序类型。缺点是执行速度慢, 开发成本比较高, 需要较高的硬件平台来支撑防火墙的运行。

2 freebsd包过滤防火墙的设计与实现

2.1 精简优化freebsd系统

通常情况下, 默认安装的FreeBSD系统提供了许多复杂的网络服务, 而且这些服务可能会具备潜在的安全漏洞, 一旦入侵者入侵这个系统, 可以在系统上隐藏入侵程序以进一步入侵内部网络, 对内部网络造成了极大的隐患。因此必须要精简优化FreeBSD系统, 去掉一些与防火墙无关的网络服务程序。精简FreeBSD系统主要是编辑rc.conf文件, 关闭一些无关的服务程序, 用vi编辑器打开/etc/rc.conf文件, 添加如下内容:

2.2 利用freebsd 的IPFirewall来构建防火墙

IpFirewall简称Ipfw, 是freebsd系统一个内置开源的软件项目, 可以为freebsd操作系统提供防火墙和网络地址转换 (NAT) 服务。由于IPFW主要是在内核中运行, 所以必须在FreeBSD内核配置文件中添加部分选项。第一步, 进入内核配置文件:

# cd /sys/i386/conf

# cp GENERIC ./mykernel_fw

# vi ./mykernel_fw打开内核配置文件, 添加如下选项

options IPFIREWALL //将ipfw编译进内核

options IPFIREWALL_VERBOSE //启用通过Syslogd记录的日志

options IPFIREWALL_DEFAULT_TO_ACCEPT将默认的规则动作从“deny”改为“allow”。在默认状态下, IPFW会转发所有的数据, 也就是防火墙为完全透明状态, 如果你需要什么规则, 在安装完成后直接添加就可以。

第二步, 结合本实例的网络拓扑图 (如图2所示) , 设定内网卡 (rl1) 、外网卡 (rl0) ip地址, 利用vi编辑器, 打开etc/rc.conf, 添加以下内容:

经过以上步骤的设置, 一个简单的包过滤防火墙系统配置完成。根据实际用户需求, 可设置更多防护规则, 增强内网信息的安全。

3 小结

采用freebsd+ipfw部署的包过滤防火墙系统, 配置简单, 部署方便, 性能也比较稳定。防火墙部署在本单位的校园网出口上, 经过三个月运行测试, 没有出现任何问题, 有效的保护了局域网的安全性和稳定性。

参考文献

[1]束维国基于DOM的FreeBSD防火墙实现合肥工业大学学报 (自然科学版) 第27卷第9期.

[2]陈昀, 宫一凡基于FreeBSD系统的网络防火墙设计与实现中国公共安全·学术版1672-2396[2007]09-0080-03.

[3]FREEBSD ipfw设置.http://blog.chinaunix.net/uid-279870-id-2135476.html.

HLA中的数据过滤机制 篇5

HLA对分布交互仿真(Distributed Interactive Simulation,DIS)最大的改进就体现在整个仿真系统的可扩展性上。DIS由于先天设计上的原因,不适合大规模的仿真应用,而HLA则在设计伊始就将大规模仿真应用作为其设计目标之一。同DIS所采用的广播式的数据交换方法不同,HLA对参与到整个仿真系统中的单独的仿真应用的数据发送和接收都进行了规定,换句话说就是提供了一种数据过滤机制来判断每个仿真应用可以产生什么样的信息,发送什么样的信息,接收什么样的信息等等,进而将无用的信息过滤掉,减少网络流量。这种数据过滤机制的具体实现就是声明管理(Declaration Management,DM)和数据分发管理(Data Distributed Management,DDM)。

DM和DDM可以看作是从“类”和“值”两个方面对数据进行过滤。从“类”的方面进行数据过滤是指:盟员通过DM订购一个对象类的属性值或一个交互类,则RTI(Run Time Infrastructure,运行支撑环境,可以看作是HLA规范的具体实现)将保证该盟员只接收到HLA联盟中订购对象类的所有对象的属性值和属于订购交互类的所有交互,且不传送给盟员它没有订购的信息;从“值”的方面进行数据过滤是指:盟员基于公布的属性值的特征有选择地接收订购的属性值,这种接收的前提是该属性值必须是已用DM订购的属性值。通过上面这段描述我们可以发现,DDM实际上是在建立在DM基础上的一种更为精确的数据过滤机制。

1 DM的数据过滤原理

声明管理DM是HLA中的一种普适方法,也是每个基于HLA的仿真应用中都会用到的数据过滤方式。当一个盟员要加入某个联盟时,必须首先公布它可能产生的对象类和交互类,同时还要订购它感兴趣的对象类和交换类,这种公布和订购就是“声明”。盟员将“声明”传送给RTI,再由RTI来安排数据的路由和转发。当联盟通知一个盟员已经没有其他盟员订购它所公布的某项数据时,该盟员就停止向网络发送这项数据,由此降低了网络中的通信流量。

在对象类和交互类的公布/订购过程中有一个差别,就是对于对象类,盟员可以公布/订购其有效属性的子集,而对于交互类,盟员必须公布/订购整个交换类。通过这种数据过滤机制得到的数据并不仅仅是特定对象实例的更新值,还可能包括其他对象实例的更新值,因此这种过滤机制仅适用于规模较小的联盟或每一类对象实例数量较少的联盟,而对于大规模的仿真应用,这种方法的过滤效果就非常有限,故而我们还需要采用更精确的数据过滤机制。

2 DDM的数据过滤原理

同DM的普适性相比,数据分发管理DDM则具有明显的针对性,它是针对仿真中的某些特定需求而提出的一种数据过滤机制。举个例子,在一个大规模的分布式空战对抗仿真系统中,对于每一个单独的飞行仿真系统来说,其他飞行仿真系统的空情数据都是它感兴趣的数据,但是实际上只有一定范围内的空情数据是有效的,那些模拟较远距离飞机的数据或某些无法获知的数据在仿真过程中是没有必要传送的(见图1),DDM的作用就是将这些没有必要传送的数据尽可能的过滤掉。这种数据过滤的实质就是把每个盟员对于数据传输的需求精确化,这样就可以减少无用数据的传输和接收,进而减少网络中的数据流量,提高仿真系统运行效率。

注:区域A是整个仿真系统的设定空域,区域B为该飞行仿真系统的有效空情数据范围

要了解DDM的数据过滤原理,首先要了解几个概念。在DDM中定义了路径空间(Routing Space)的概念,它是一个多维的坐标系统,这个坐标系统的“维”可以是直观的坐标概念,如长度、宽度和高度构成的三维空间;也可以是抽象的人造坐标,如火力、速度、载重量和毁伤概率构成的四维空间。每个盟员都可以定义路由空间,定义一个路径空间,就等于是定义了接收和发送数据的范围,然后盟员在这个数据范围内指出它能够公布和希望订购的数据范围,由这个相对较小的范围构成路径空间的子空间,这就是区域(Regions)。区域是DDM的重要概念,DDM的核心问题就是如何进行区域匹配。所谓区域匹配,就是通过对所有盟员所属区域的扫描,将公布区域和订购区域进行匹配计算,再由RTI决定是否在发送者和接收者之间建立连接,在它们之间传输数据。

需要注意的是,在HLA最新的标准IEEE1516中取消了路径空间的概念,该标准将所有的维都定义在一个空间下,区域的概念改为区域集(Regions Sets),由对区域的匹配改为对区域集的匹配。但是在本质上,新旧标准是一致的,并不影响我们对算法的研究。这种变化实际上是对DDM机制的一种简化,但是由于去掉了只有在同一路径空间里的区域才能进行匹配的限制,每个盟员的各种类属性和交互类都直接与公共空间的维集合相关联,使得该标准中的DDM具有更强的灵活性和更好的可扩展性。

3 数据过滤的实现方法

常见的数据过滤主要有两种实现方法:基于区域的匹配法和基于网格的匹配法。

基于区域的匹配法(Regions-Matching)也称完全匹配法,即把每个公布区域和所有的订购区域都进行匹配计算。这是最基本的数据过滤方法,过滤效果最好,但是计算开销也最大,在较大规模的仿真系统中多不采用这种方法。

基于网格的匹配法(Grid-Matching)是现在很多分布式仿真系统经常采用的一种方法。为了说明这种实现方法,首先回顾一下前面提到的分布式空战对抗仿真系统。我们可以将该仿真系统设定的整个空域对应为一个三维的路径空间,然后将路径空间等分成若干小块,每个小块也是三维的,这个小块就是网格(Grid)。每个参与到该仿真系统的单个飞行仿真系统,作为盟员将自己的公布区域和订购区域映射到网格上,由计算区域是否匹配改为计算区域所属的网格是否匹配,只有身处于同一个网格的两个飞行仿真系统才可以进行数据交互(见图2),这样就可以避免将前文列举到的冗余数据发布到网络中。在基于网格匹配法的具体实现上,其过滤效果受到区域重叠率、组播地址利用率以及网格尺寸等多种因素的影响,如果安排不当,反而可能降低网络带宽利用率,目前还没有一种公认完善的机制能够保证合理的设计网格。

针对网格法存在的问题,现在提出了很多改良方法,如基于最优网格的匹配法(Best-Grid Matching),基于多层次网格的匹配法(Multilayer-Grid Matching),基于动态网格的匹配法(Dynamic-Grid Matching)等等。这些算法的改进焦点多集中在如何选取合适的网格尺寸,如何动态调整网格尺寸以及如何动态分配组播地址等方面。当前对于数据过滤机制的研究内容也主要集中在这些问题上面。

注:区域A为网格化的路径空间

除了对网格法进行改进之外,很多学者也从其他思路提出了一些新的匹配算法,如基于排序的匹配法(Sort-Matching),基于树型结构的匹配法(Tree-Matching)等。这些方法实质上是通过选取某种合适的数据结构来安排公布和订购区域的匹配顺序,来达到提高数据过滤效率的目的。有的算法还只是停留在概念上,需要更深入的研究和进一步的验证。

随着人工智能技术的兴起,鉴于智能Agent技术在描述复杂现象、研究复杂系统领域表现出的巨大优势,人们将Agent技术引入HLA的数据过滤中来,产生了基于Agent的数据过滤方式,这种方法的应用过程是首先利用智能A-gent建模方法对盟员进行建模,然后在盟员和RTI之间嵌入一个Agent通信控制层,由这个控制层作为盟员与RTI通信的中介(见图3),完成数据过滤工作。

4 结束语

HLA的数据过滤机制尚在不断完善过程中,这种数据过滤机制可以限制数据只流向联盟中需要的盟员,这是提高仿真系统可扩展性的关键。由于盟员的公布内容和定购内容都是动态变化的,如何通过优化算法等方式主动的改变公布/订购盟员感兴趣的属性,而不是被动的依赖盟员的公布内容和订购内容调整属性,一直是数据过滤机制的研究热点,这也是今后HLA领域的重要研究方向。

摘要:高层体系结构HLA是分布式仿真的一种技术框架和集成标准,它提供了一种数据过滤机制来判断每个仿真应用可以产生、发送和接收什么样的信息。这种数据过滤机制可以有效的提高整个仿真系统的可扩展性,它的具体实现就是声明管理和数据分发管理。该文在对HLA中的数据过滤机制深入研究的基础上,详细分析了该机制的基本原理,并通过其典型算法的介绍,阐述了该机制的具体实现方法。

Winpcap中的数据过滤方法 篇6

在捕获网络数据时, 进行数据过滤是必不可少的, 通过数据过滤可以捕获有用数据, 进一步提高工作效率。通过研究数据过滤机制和语法, 可以更有效地进行数据的采集和分析, 从而编制出更高效运行的嗅探器软件。

Winpcap过滤过程在操作系统内部执行, 即应用进程得到的是已过滤后的数据包。Winpcap的具体过滤过程由内核级的过滤机制NPF (Netgroup Packet Filter) 完成。因为Windows系统没有像UNIX一样将内置了过滤机制, 所以需要首先安装Winpcap运行库, 之后才能使用NPF。

在Winpcap开发环境中, 过滤条件的设置是通过编写过滤表达式来实现。Winpcap向用户提供了简洁易懂的过滤表达式。用户通过编写过滤表达式, 来调用NPF完成过滤工作。

2、过滤表达式的转换

Winpcap过滤表达式采用tcpdump的语法, 是一个ASCII字符串形式的高层的布尔表达式。表达式由用户 (或程序员) 编辑, 由pcap_compile () 编译成内核级的代码, 编译后pcap_setfilter () 将其应用到某个已打开的网络捕获设备 (网卡) 上。其转换过程如图1所示。

过滤时, NPF会检查每个网络数据包首部相应字段的值, 检查范围包括数据链路层首部 (如以太帧的源/目的MAC地址和Type字段) 、网络层首部 (如源/目的IP地址和协议字段等) 、传输层首部 (如源/目的端口号字段等) , 所有的符合要求的数据包 (即与过滤条件比较后, 布尔表达式为真的包) 将会被Winpcap堆存。

3、过滤表达式语法

3.1 基本语法

Winpcap的过滤表达式使用libcap过滤器语言 (与tcpdump相同) , 原语 (primitive) 是其基本组成单元。一个表达式由一个或多个原语组成, 原语之间通过and、or和not连接。基本结构是:[not]primitive[and|or[not]primitive...]

3.2 参数与缩写

一些原语带有可选参数, 参数指明了进一步的过滤条件, 当省略参数时, 所有满足条件的数据包会被捕获。如port 80会捕获源端口或目的端口为80的数据, 而tcp dst port 80会捕获所有发往WEB服务器的数据。

为了简单明了, 一些原语还可缩写, 如ether protoip可缩写为ip。

3.3 常用原语

在过滤表达式中常用的原语有:

(1) 、[src|dst]host

此表达式通过IP地址/主机名来过滤一个特定的主机, 通过前缀src或dst选择源/目的主机。如果不注明src或者dst, 则将抓到流向/流出该主机的所有数据包。

例如:抓取从主机210.31.234.1发出的数据包:

src host 210.31.234.1

(2) 、ether[src|dst]host

此表达式用于过滤以太网上流入/流出特定的主机的数据包, 不同的是ehost是以太网地址, 为主机的物理地址。

例如:抓取发往物理地址为12:34:56:78:9a:bc的数据包ether dst host 12:34:56:78:9a:bc

(3) 、[src|dst]net[{mask}|{len}]

此表达式根据网络地址来过滤来自/发往特定的网络的数据包。

例如:抓取发往/发自网络210.31.234.0的数据包

net 210.31.234.0 mask 255.255.255.0

(4) 、[tcp|udp][src|dst]port

此表达式可以设置过滤来自/发往特定的tcp/udp协议端口的数据包。

例如:抓取HTTP协议数据包

tcp port 80或ip prototcp and port 80

(5) 、less|greater

此表达式用于过滤数据包长度小于等于/大于等于特定长度的数据包。

例如:抓取数据包长度小于400byte的数据包

less 400

(6) 、ip|ether proto

此表达式用于过滤IP层/数据链路层 (Ethernet层) 上特定的协议数据包。

例如:抓取IP层上的TCP数据包

ip prototcp或简写为tcp

(7) 、ether|ip broadcast|multicast

此表达式用于过滤IP/Ethernet的广播包/多播包。

(8) 、表达式1关系运算符表达式2

该原语用于将数据包中指定字节 (或比特) 与某个值相比较。表达式1指明检查的数据, 表达式2为所比较的数值, 关系运算符可以为>, <, >=, <=, =, !=。若数据包中相应字节 (或比特) 与给定数值满足关系, 则捕获该数据包。

表达式1使用下面的语法来访问数据包中的数据:协议[偏移:大小]

协议指明访问数据时从哪种协议的首部开始读取, 协议可以为ether, fddi, tr, ip, arp, rarp, tcp, udp, icmp or ip6, ;偏移指明所读取数据与协议首部第一个字节的距离, 若为0说明读取的是第一个字节;大小指明读取几个字节的数据, 可以取值为1, 2, 4, 该参数可以省略 (省略则取值为1) 。

例如:抓取ICMP协议的数据

ip[8:1]=1或ip[8]=1

3.4 组合原语

多个原语之间可以通过运算符来连接, 可用的运算符包括:圆括号即" () ", 非 ("!"或"not") , 或 ("||"或"or") , 与 ("&&"或"and") 。

其中"非"优先级最高, "或"和"与"优先级相同, 并且按照由左至右运算。注意原语间必须用运算符连接, 而不能只是简单的将两个原语写在一起。

例如:抓取210.31.234.15发出的所有ARP和ICMP协议的数据

ether protoarp or ip protoicmp and src host 210.31.234.15

或src host 210.31.234.15 and (arp or icmp)

如果给出一个标识符, 却没有关键字, 那么就会假定用最近使用的关键字。例如:

not host vs and ace等价于not host vs and host ace

不能和not (host vs or ace) 混淆

4、结束语

winpcap提供了完善的过滤表达式语法, 用户熟悉其语法后可以更有效地捕获数据, 而开发人员则可根据需要编写出更简单易用的图形化过滤条件生成器。

摘要:数据过滤是捕获网络数据的必要环节, 通过数据过滤可以捕获有用数据, 进一步提高工作效率。在Winpcap中, 过滤条件设置是通过编辑过滤表达式来实现。过滤表达式被编译成底层代码, 从而在内核实现过滤功能。过滤表达式由原语组成, 原语可以单独使用, 也可通过组合、缩写来形成更复杂的的过滤表达式。

关键词:Winpcap,数据过滤,过滤表达式,语法

参考文献

[1]、廖俊云, 范明钰, 王光卫.一种改进的基于W inPcap的快速抓包方法.计算机应用研究2005年第9期

[2]、张军, 王建华, 刘禹麟等.基于Windowns环境下的NPF数据捕获技术的研究.计算机科学, 2005年, 32卷:89

[3]、WinPcap Documentation.http://www.winpcap.org/docs/docs_40_2/html/main.html, 2007-10.

[4]、ethereal filter syntax and reference.http://www.ethereal.com/docs/man-pages/ethereal-filter.4.html

数据包过滤 篇7

Linux最初在1991年10月5日由Linus Torvalds于赫尔辛基大学发布。从那时起,世界各地的程序设计者纷纷支持他建立一个自由操作系统的理想,为Linux扩展功能和纠排错误,从而使它迅速流行开来。Linux以它的高效性和灵活性著称。

互联网经过多年的发展,已进入千家万户,为百姓所熟知。而此时网络安全,特别是网络上的信息安全则成了人们日益关注的焦点。通过网关做一定的数据过滤能有效增强信息安全。基于此,对Linux下网关数据过滤技术做了一些研究。

2 Linux下网关数据过滤的原理

所谓网关的数据过滤技术,是指对经过网关的每个IP包的数据内容进行安全过滤,对无保密信息的IP包继续转发,反之则拒绝转发。

2.1 截获IP包

为了截获所有经过网关的IP包,采用Socket(AF_PACK-ET,SOCK_DGRAM,htons(ETH_P_IP))建立网络套接字。需要注意的是,虽然SOCK_RAW是面向IP层的,但是用Socket(AF_INET,SOCK_RAW,htons(ETH_P_IP))无法截获到发往外网的IP包,它只能接收到发给自己的IP包。

2.2 分析IP包

IP报头在头文件里有定义:

TCP报的报头在里有定义:

UDP报的报头在里有定义:

2.3 数据过滤

这里采用KMP算法对数据段进行模式匹配。

利用i和j分别指示主串s和模式t中当前正待比较的字符的位置。算法思想是:从主串s的第一个字符起和模式的第一个字符比较之,若相等,则继续逐个比较后续字符,否则从主串的第二个字符起再和模式的字符比较之,在每一趟匹配过程中出现字符比较不等时,不需回溯i指针,而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远的一段距离后,继续进行比较。

2.4 转发

在转发IP报文时,首先要进行IP地址的伪装,用网关的IP地址代替原来的源地址,对数据报在IP层重新封装,实现对内部网络的地址和分配的保护。

3 实现

互联网的基本传送单元是IP数据报,包括数据报报头和数据区的部分。在Linux下首先截获IP数据包,再分析IP包,通过目的地址看该包是否是发给本机的,如果是那么就交给上层处理,否则则调用数据过滤函数filter,如果与模式相匹配的话则不转发,不匹配则转发。流程图如图1所示。

4 结语

Linux网关的数据过滤系统的实现,实际上是很复杂的,要考虑到的问题也很多,如:进程间的通信、过滤算法的复杂度等等。以上仅仅做了一个简单的研究,在进程通信和算法的效率等方面还有很多问题值得深思。

参考文献

[1]陈远森,邓可,杜威,等.UNIX网络实用编程技术.中国水利水电出版社,2000.

上一篇:警报分析下一篇:人为理念