Iptables包过滤技术及其在机载网络上的实现
摘 要: 针对机载无线信息系统可能由地面网络技术引入网络安全威胁,因此机载网络需要对数据包进行过滤,根据规则限制数据传输。阐述了Iptables的工作原理,分析数据包过滤的规则操作及数据包的传输过程,及其在机载网络上的应用环境。对用Iptables在Linux上实现丢弃某IP数据包和阻止相关网页访问请求进行实验,在此基础上对基于Iptables的包过滤技术进行研究。
关键词: Iptables; 包過滤; 机载网络; Linux; 防火墙; 数据包
中图分类号: TN711⁃34 文献标识码: A 文章编号: 1004⁃373X(2018)09⁃0031⁃04
Abstract: Since the potential network security threats may be introduced in airborne wireless information system due to the ground network technology, it is necessary for the airborne network to filter the data packet and limit the data transmission according to the rules. The working principle of Iptables is expounded. The filtering rules operation, transmission process and application environment of data packet on airborne network are analyzed. The experiment of how to use the Iptables to realize the discarding of some IP data packets and prevention of related webpage access request on Linux was performed. On this basis, the data packet filtering technology based on Iptables is researched.
Keywords: Iptables; packet filtering; airborne network; Linux; firewall; data packet
0 引 言
民机机载信息系统是机载网络和地面网络的连接终端,机载无线网络提供一种无线通信连接,通过连接使用网络协议(IP)提供飞机网络与地面网络基础设施之间的服务[1]。在带来机载信息与地面网络信息传递便利的同时,针对机载网络的安全性设计也更加重要。对于机载信息系统面临的安全威胁,主要来自无线局域网技术和传统互联网技术。无线局域网技术会遇到各种安全威胁,比如电磁干扰。另外,在机载网络的安全机制上还有一定的改善空间。
根据以上背景分析,包过滤防火墙技术是保护机载信息系统安全所必备的基础服务。包过滤技术在机载无线网络连接建立后,可以根据Iptables设定的规则限制特定数据传输,并能防范拒绝服务等常见的网络攻击。
Iptables作为防火墙工具,是建立在Netfilter架构基础上的一个包过滤管理工具,提供数据包过滤、网络地址转换以及数据包处理等功能,用来指定Netfilter规则[2]。它是Linux2.4.x系统自带的防火墙子系统,由于其功能强大、使用灵活,因此广泛使用于中小型企业的网络接入服务器[3]。Iptables用来管理Linux防火墙的命令程序,经过Iptables修改后存储在Netfilter里,是属于“用户态”(User Space,又称为用户空间)的防火墙管理体系。Netfilter集成在内核中,它定义了存储的各种规则,属于“内核态”(Kernel Space,又称为内核空间)的防火墙功能体系[4]。
本文研究了基于Iptables的数据包内容过滤技术,以及其在机载网络中的应用,从而提高机载网络的安全性。在进行某些机载信息测试实验时,可能需要模拟某设备和环境断连的场景,就可以通过丢弃某IP数据包,而不用去地面网络的实验室机房插拔网线或后插板等繁琐体力操作,更方便实用。此外,为了防止上班时间员工花费大部分时间在非工作网页上,可通过Iptables对相关数据包过滤规则进行设定,阻止相关网页访问请求,并对该过程详细分析。在以上两个实例基础上,最后还分析了Iptables在机载网络上的应用环境。数据包的过滤为人们提供了便利,并大大提高了网络的安全性。
1 应用场景及Iptables的工作原理
1.1 机载网络的场景
机载信息系统包括飞机网络部分与地面网络部分。飞机网络部分包括飞机网络、飞机数据加/卸载子系统和飞机无线子系统等部分[5]。地面网络部分则包括机场网络、互联网络、航空公司网络、机场无线子系统和航空公司数据加载子系统等部分。机载信息系统与地面网络架构如图1所示。
飞机网络和地面网络要提供一些基本的安全措施,本文论述的方法就是通过在各个网络之间的防火墙处使用Iptables,通过Iptables构建自己定制的规则,这些规则存储在内核空间的信息包过滤表中。通过这些规则,可以知道内核对来自机场网络(航空公司网络)、前往航空公司网络(机场网络)的信息包需要做哪些相应的操作(如DROP,ACCEPT和REJECT)。若某个信息包与规则相匹配,则航空公司网络(机场网络)允许(ACCEPT)该信息包通过。若信息包与规则不匹配,则航空公司网络(机场网络)通过DROP或REJECT来阻塞并杀死该信息包。
1.2 Iptables的工作原理
在机载网络中,Iptables包过滤防火墙技术主要在网络层或传输层进行控制通信。Iptables利用数据过滤机制,它通过分析数据包头,根据包头数据与定义的规则判断并决定该数据包可以进入主机还是被丢弃。
在Iptables中至少包含三个内建表,NAT表管理后端主机、Filter表管理本机数据包进出、Mangle表管理特殊标志使用。Iptables可以控制三种数據包的流向[6],如图2所示。
1) 通过Linux主机接收数据包,并且使用资源。如果信息包源自外界并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表Filter表INPUT链。
2) 通过Linux主机传递数据包,并且没有使用主机资源,而是向后端主机流动。在路由判断之前先对数据包包头进行修订,若发现数据包主要是通过防火墙去后端,则该数据包的目标并非Linux本机。此时主要经过的链是Filter表中的FORWARD链以及NAT表中的POSTROUTING链和PREROUTING链。
3) 由Linux本机发送数据包。例如Linux主动发送数据包,以及响应客户端的请求。如果信息包源自系统内部或系统所连接的内部网上的其他源,并且此信息包要前往另一个外部系统,那么先由路由判断决定输出数据包的路径后,信息包被传递到Filter表中的OUTPUT链,最终经过NAT表中的POSTROUTING链。
2 包过滤实现及其在机载网络的应用
2.1 信息包过滤的工作原理
可以根据规则判断出它所处理的信息包类型,并将规则分组在不同的链中。处理入站信息包的规则被添加到INPUT链中。若该规则处理出站信息包则被添加到OUTPUT链中。若该规则处理正在转发的信息包,则被添加到FORWARD链中。这三条链是基本信息包过滤表中内置的缺省主链,每条链都有相应一个默认策略 “缺省目标”,即要执行的缺省操作。当信息包与链中任何规则均不匹配时,则执行此缺省操作[7]。
通过建立Iptables规则并将规则放置在适当的位置后,便可以开始进行真正的信息包过滤工作了。此时从用户空间转换到内核空间,也就是从Iptables到Netfilter的过渡。
若数据包从外网传送到防火墙后,防火墙在IP层向TCP层传送数据包前,会先将数据包转发给检查模块进行处理[8]。当所有规则到达相应的链表中后,就会将Iptables信息包的头信息与它所传递到的链表中的相应的每条规则进行比较。若完全匹配则执行相应的操作,若不匹配则与下一条规则继续比对,若与所有规则均不匹配,则执行相应的默认操作,具体过程如图3所示。
2.2 数据包过滤的实现
2.2.1 实验场景
在做某些机场网络测试实验时,有可能需要模拟设备与机场环境断连,普通的做法是去机房拔掉设备的网线。但是该方法很原始,若使用Linux的Iptables,可以简单地实现丢弃特定IP的数据包,模拟断连场景。
其次,由于发现办公室员工过多的在上班时间滥用聊天工具和视频网站,严重影响上班的工作效率,同时也影响了办公室的工作带宽。因此,可对相关的网站和应用通过使用Iptables进行上网过滤,阻止不希望被访问的相关访问请求。
最后,对Iptables包过滤在机载信息系统中的规则操作进行分析。
2.2.2 具体实现及其在机载网络的应用
1) 利用Iptables丢弃某IP数据包
对IP连通性进行通信测试。虚拟机下Linux系统的IP地址为192.168.65.128,Windows的IP地址为192.168.1.105,在利用Iptables对IP数据包操作之前,首先测试Windows系统与虚拟机的Linux系统下[9]的连通性,测试结果如图4所示。
结果显示,数据包全部被正确接收。表明此时Windows系统与Linux系统之间可以进行相互通信。此时插入规则,丢弃此IP的所有协议请求,并查看所设置的规则,最后进行结果测试,如图5所示,可以看到此时数据包无法接收,全部丢失。
因此在这种环境下的测试,有些需要模拟某设备和环境断连的场景就可以这样完成。无需去实验室机房插拔网线或后插板等繁琐体力操作,比较方便实用。
2) 阻止相关网页访问请求
以QQ的通信为例,为了防止上班时间员工花大部分时间在QQ聊天上,可以通过Iptables对相关数据包过滤规则进行设定,丢弃QQ相关的所有数据包,则无法进行通信。如图6所示,首先设定数据包过滤规则,然后对设定的规则进行查看。这种方式的优点是效率高,几乎不占用多余系统资源,而有些硬件路由器里集成的URL过滤功能则经常会造成系统死机。
3) 包过滤在机载网络中的应用
对于机载信息系统而言,飞机网络和地面网络就需要通过包过滤防火墙技术在机载网络或传输层控制通信,通过检查数据包的源和目的地址、源和目的服务端口、包类型、包选项来阻塞或放行该包到其目的网络或网段。根据Iptables设定的规则限制特定数据传输,并能够防范拒绝服务等常见的网络攻击。如图7所示,表示机载网络中防火墙数据包过滤的规则操作及分析流程。
当一个网络数据包要进入到航空公司网络之前,会先经过Netfilter进行检查,也就是Iptables的规则。检查通过则接受(ACCEPT)进入航空公司网络取得资源,不通过则丢弃(DROP)。从图7就可看出规则是有顺序的。当网络数据包开始与Rule1进行比对时,若比对结果与Rule1符合,则这个网络数据包就会进行Action1的动作,而直接忽略Rule2,Rule3等规则。如果这个数据包与Rule1比对后并不符合,则进入Rule2的比对。若所有的规则都不符合就会通过默认操作(数据包策略,policy)决定这个数据包的去向。因此,当规则顺序排列错误时,就会产生很严重的错误。
由以上实验结果及分析可以得到,Iptables可以设置机载通信网络中的防火墙策略,并且可以使所有转发到机场网络(或IP网络)的数据包禁止通过,再根据需要设定数据包的过滤规则。
3 结 语
通过用户态(Iptables)实现对内核态(Netfilter)控制,从而实现基于Iptables的数据包过滤,灵活简洁,易于使用。本文通过用Iptables在Linux上实现机载网络中丢弃特定IP数据包和阻止相关网页访问请求,对基于Iptables的包过滤技术进行研究。此外,本文对包过滤在机载网络中的应用也进行了详细的过程分析,是保护机载信息系统安全所必需的。
机载信息系统为了满足飞机信息化发展的需要,为实现机场与飞机的信息化提供技术保障[10]。因此通过包过滤技术可在机载信息系统中的无线网络连接建立后,根据Iptables设定的规则限制特定数据包传输,并能保证机载网络中有效数据的传输,缓解了机载信息系统主要面临来自无线局域网技术以及传统互联网技术的安全威胁。
参考文献
[1] 史岩,朱佳,范祥辉,等.基于ARINC822的机载无线网络安全架构设计[J].硅谷,2014,7(12):44⁃45.
SHI Yan, ZHU Jia, FAN Xianghui, et al. Design of airborne wireless network security architecture based on ARINC822 [J]. Silicon valley, 2014, 7(12): 44⁃45.
[2] 谢鹏,安利.基于Linux系统的防火墙技术设计与实现[J].工业,2016(2):296.
XIE Peng, AN Li. Design and implementation of firewall based on Linux system [J]. Industry, 2016(2): 296.
[3] 王维剑.基于netfilter/iptables防火墻的设计与实现[D].淮南:安徽理工大学,2012.
WANG Weijian. Netfilter/iptables firewall design and implementation [D]. Huainan: Anhui University of Technology, 2012.
[4] XUAN L, WU P. The optimization and implementation of Iptables rules set on Linux [C]// 2015 the 2nd International Confe⁃rence on Information Science and Control Engineering. [S.l.]: IEEE, 2015: 988⁃991.
[5] 陈剑,李晓东.机载信息系统无线网络的安全设计[J].航空计算技术,2012,42(3):130⁃134.
CHEN Jian, LI Xiaodong. Security design of airborne information system wireless networks [J]. Aeronautical computing technology, 2012, 42(3): 130⁃134.
[6] 朱艳.Linux网络防火墙Netfilter的数据包传输过滤原理[J].电子科技,2010,23(5):94⁃95.
ZHU Yan. Principle of Netfilter packet transmission and transmission in Linux network firewall [J]. Electronic technology, 2010, 23(5): 94⁃95.
[7] 高祥斌.基于Linux的Netfilter处理数据包的过程分析[J].硅谷,2009(13):41.
GAO Xiangbin. Netfilter process analysis of packet based on Linux [J]. Silicon valley, 2009(13): 41.
[8] 林燕.Iptables规则集的优化设计[J].计算机时代,2015(2):47⁃49.
LIN Yan. Optimization design of Iptables rules set [J]. Computer era, 2015(2): 47⁃49.
[9] LEMUS⁃ZÚÑIGA L G, BENLLOCH⁃DUALDE J V, MONTAÑANA J M, et al. Teaching computer networks using virtual machines [C]// 2015 International Conference on Information Technology Based Higher Education and Training. Lisbon: IEEE, 2015: 1⁃3.
[10] 曹全新.机载信息系统的应用研究及发展趋势初探[J].民用飞机设计与研究,2014(1):72⁃76.
CAO Quanxin. Application research and development trend of airborne information system [J]. Civil aircraft design and research, 2014(1): 72⁃76.
上一篇:论数字图书馆的信息安全问题