周斌 黃絲 趙彥斌 袁瑞陽 蘇德虎
摘 要: 針對機載無線信息系統可能由地面網絡技術引入網絡安全威脅,因此機載網絡需要對數據包進行過濾,根據規則限制數據傳輸。闡述了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.