孫遒
(黑龍江科技大學(xué)信息網(wǎng)絡(luò)中心,哈爾濱 150022)
基于嵌入式Linux的控制系統(tǒng)設(shè)計與實現(xiàn)
孫遒
(黑龍江科技大學(xué)信息網(wǎng)絡(luò)中心,哈爾濱 150022)
服務(wù)器的網(wǎng)絡(luò)流量監(jiān)測已成為網(wǎng)絡(luò)安全領(lǐng)域的一個重要研究問題,結(jié)合當(dāng)前網(wǎng)絡(luò)流量監(jiān)測技術(shù)的發(fā)展趨勢和實際需求,提出嵌入式Linux架構(gòu)的網(wǎng)絡(luò)流量監(jiān)測方案和識別拒絕服務(wù)攻擊的網(wǎng)絡(luò)異常檢測功能SYN-Flood算法,設(shè)計基于嵌入式Linux防火墻Netfilter框架的網(wǎng)絡(luò)控制系統(tǒng)。結(jié)果表明:該系統(tǒng)能夠?qū)崿F(xiàn)統(tǒng)計每個地址的字節(jié)流量,可以按照設(shè)定策略進(jìn)行限制訪問,同時網(wǎng)絡(luò)流量監(jiān)測系統(tǒng)具備識別異常流量信息的功能,測試并驗證其可行性和可靠性。
控制系統(tǒng);Netfilter;流量查詢;流量統(tǒng)計
隨著全球信息化的飛速發(fā)展,Internet己經(jīng)在全球普及,網(wǎng)絡(luò)安全問題突顯。捕獲網(wǎng)絡(luò)工作時的數(shù)據(jù),利用其數(shù)據(jù)特征實時監(jiān)控網(wǎng)絡(luò)運行狀態(tài),分析網(wǎng)絡(luò)中數(shù)據(jù)的異常,通過分析網(wǎng)絡(luò)的性能,以及網(wǎng)絡(luò)各層的的安全性,提高對整個網(wǎng)絡(luò)的管理。保護(hù)網(wǎng)絡(luò)計算機(jī)安全的措施之一是防火墻技術(shù),以限制網(wǎng)絡(luò)通信,阻止信息資源的非法訪問,以及避免保密信息從受保護(hù)網(wǎng)絡(luò)非法輸出[1]。眾多操作系統(tǒng)中,Linux以期良好的穩(wěn)定性、源代碼的開放性等優(yōu)點,筆者基于Linux 2.4內(nèi)核中集成的iptables最新解決方案,其根據(jù)按照用戶的需求搭建訪問控制系統(tǒng),靈活地掌握上網(wǎng)用戶的行為,其對在Linux平臺下進(jìn)行網(wǎng)絡(luò)控制具有有重要的意義。
傳統(tǒng)防火墻相比智能防火墻存在諸多問題,用戶往往難以理解。傳統(tǒng)的防火墻保護(hù)網(wǎng)絡(luò)是一個簡單機(jī)制,其只能按代碼機(jī)械地執(zhí)行網(wǎng)絡(luò)安全策略。而智能防火墻并非簡單地執(zhí)行過濾非安全信息的策略,其通過對用戶網(wǎng)上行為的識別,可以根據(jù)時間、地點與行為進(jìn)行執(zhí)行網(wǎng)絡(luò)訪問控制,其增強(qiáng)網(wǎng)絡(luò)防火墻安全性同時,更加智能的保護(hù)網(wǎng)絡(luò)。目前,最新一代的智能防火墻通過對數(shù)據(jù)的識別,應(yīng)用智能算法實現(xiàn)不同需求的網(wǎng)絡(luò)訪問控制,避免了傳統(tǒng)防火墻因匹配檢查所需要海量數(shù)據(jù)的計算,智能防火墻能夠高效地檢測網(wǎng)絡(luò)行為的特征值,進(jìn)而方便地執(zhí)行訪問控制[2]。防火墻保護(hù)的網(wǎng)絡(luò)機(jī)制有兩種:一是通過攔阻網(wǎng)絡(luò)傳輸流通行;二是允許網(wǎng)絡(luò)數(shù)據(jù)傳輸流通過。目前,有的防火墻側(cè)重于阻傳輸流的通行,而其他的則側(cè)重允許網(wǎng)絡(luò)數(shù)據(jù)傳輸流通過。智能防火墻具有如下功能:(1)保護(hù)易受攻擊的網(wǎng)絡(luò)服務(wù);(2)控制內(nèi)網(wǎng)和外網(wǎng)網(wǎng)絡(luò)系統(tǒng)之間的訪問;(3)集中監(jiān)控網(wǎng)絡(luò)的安全性,提高工作效率,減少管理成本;(4)內(nèi)網(wǎng)數(shù)據(jù)的保密性和私有性得到提高;(5)監(jiān)控網(wǎng)絡(luò)運行狀態(tài),以上功能可以為安全規(guī)劃和網(wǎng)絡(luò)維護(hù)提供技術(shù)保障。
1.1 Netfilter防火墻工作原理
自從1991年Linux操作系統(tǒng)誕生以來,二十多年間它之所以深受用戶的喜愛,不僅因為Linux是一套免費使用的操作系統(tǒng),還因為Linux繼承了Unix設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。Linux從2.4開始,Linux內(nèi)核通過引入Netfilter包過濾框架,其在網(wǎng)絡(luò)系統(tǒng)上實現(xiàn)了數(shù)據(jù)包過濾、狀態(tài)檢測、網(wǎng)絡(luò)地址轉(zhuǎn)換,以及數(shù)據(jù)包標(biāo)記等,由于其設(shè)計的開放性,一般具有有內(nèi)核開發(fā)經(jīng)驗的網(wǎng)絡(luò)程序員,通過利用其提供開發(fā)的接口,在內(nèi)核的數(shù)據(jù)鏈路層與網(wǎng)絡(luò)層進(jìn)行設(shè)計,實現(xiàn)用戶所需要的功能模塊[2-4]。
1.2 用戶空間工具iptables
iptables作為Netfilter的用戶配置工具,最大的優(yōu)勢是不需要重新編譯即可實現(xiàn)網(wǎng)絡(luò)系統(tǒng)的擴(kuò)展,但在使用該命令以前,必須通過加載Netfilter內(nèi)核模塊方可實現(xiàn)。iptables命令可以完成封包過濾、封包重定向和網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)及擴(kuò)展的表模塊進(jìn)行處理,每個表又包括自己的鏈,每個鏈又包含數(shù)條過濾規(guī)則,而每個規(guī)則由大量的分類(iptables match)和一個連接動作(iptables target)構(gòu)成[5]。
2.1 流量控制模塊
隨著計算機(jī)網(wǎng)絡(luò)的迅猛發(fā)展,路由器簡單丟棄數(shù)據(jù)包來處理擁塞的粗放方式也不在適用。網(wǎng)絡(luò)流量監(jiān)測系統(tǒng)的總體功能分為流量統(tǒng)計和異常檢測功能,系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
網(wǎng)絡(luò)流量監(jiān)測系統(tǒng)使用的開發(fā)板,其硬件結(jié)構(gòu)組成如圖2所示。網(wǎng)絡(luò)流量監(jiān)測系統(tǒng)以Linux操作系統(tǒng)為主,其他如核心包捕獲軟件Libpcap,文件系統(tǒng),以及嵌入式數(shù)據(jù)SQLite的移植等組成。其中,Linux操作系統(tǒng)移植由文件系統(tǒng)和U-Boot的移植等構(gòu)成,為了完成日志審計可以利用SQLite的移植功能。
圖2 硬件結(jié)構(gòu)
Linux內(nèi)核網(wǎng)絡(luò)協(xié)議棧實現(xiàn)對服務(wù)質(zhì)量的支持模塊是從2.2.x開始的,這個功能模塊簡稱是TC模塊。圖3是Linux在沒有TC模塊時發(fā)送數(shù)據(jù)包的流程,可以清晰可見每個數(shù)據(jù)包的發(fā)送都必須經(jīng)過鏈路層,通過判斷網(wǎng)絡(luò)是否需要向AF_PACKET協(xié)議支持傳遞數(shù)據(jù)包內(nèi)容的指令,進(jìn)而判斷是否直接調(diào)用網(wǎng)卡驅(qū)動將數(shù)據(jù)包發(fā)出去[6-9]。為了支持QoS,開發(fā)人員在發(fā)送數(shù)據(jù)包的代碼中加入了TC模塊。從而可以對數(shù)據(jù)包進(jìn)行限速。為了與原代碼作一區(qū)分,讓用戶可以選擇是否使用TC,內(nèi)核開發(fā)者在兩個紅色圓圈之間添加了TC模塊,如圖3所示。
圖3 無TC模塊時的數(shù)據(jù)發(fā)送
2.2 流量控制原理
Linux內(nèi)核通過內(nèi)置一個TC(Traffic Control)模塊,實現(xiàn)流量整形和流量限速。TC模塊工作原理如圖4所示,具體由接收包從輸入接口(Input Interface)、流量限制(Ingress Policing)輸入多路分配器(Input De-Multi-plexing)、轉(zhuǎn)發(fā)塊(Forwarding Block),以及傳送到輸出接口(Output Interface)等組成[10-12],進(jìn)而提供網(wǎng)絡(luò)流量控制服務(wù)的一系列動作。
網(wǎng)絡(luò)流量統(tǒng)計功能主要分為流量信息統(tǒng)計,流量上傳和下載統(tǒng)計,其中網(wǎng)絡(luò)異常檢測功能SYN-Flood攻擊檢測模型過程為:
假設(shè)T1,T2,…,Tk表示時間間隔相同的時間段,同時設(shè)定時間段的時間間隔為Δt,并用x(n)作為檢測特征:
式中:ΔCTCP(n)——第n個Δt時間內(nèi)TCP連接的增加數(shù)。
h——檢驗閾值。
式(2)中,若f(y(n))=1,表示檢測到異常;f(y(n))=0表示流量在設(shè)定的閾值內(nèi)。
系統(tǒng)組成主要由環(huán)境配置、功能模塊兩部分組成。該系統(tǒng)選取機(jī)房作為開發(fā)環(huán)境,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。所有網(wǎng)絡(luò)數(shù)據(jù)的讀取都要經(jīng)過Linux系統(tǒng)。首先以Linux服務(wù)器為主機(jī)構(gòu)建局域網(wǎng),并且在主機(jī)上配置Apache服務(wù)器和SQL Server數(shù)據(jù)庫。
3.1 系統(tǒng)模塊
該系統(tǒng)按功能劃分主要由流量統(tǒng)計模塊、流量查詢模塊、用戶連接模塊、網(wǎng)絡(luò)訪問控制模塊組成。流量統(tǒng)計模塊主要是統(tǒng)計總流入和總流出流量,還有像SMTP、FTP、POP、WWW服務(wù)的一些應(yīng)用流量。主要依據(jù)Netfilter自定義鏈來實現(xiàn)對數(shù)據(jù)包的流量統(tǒng)計。
流量查詢模塊可以實現(xiàn)每日查詢和每月查詢,實現(xiàn)過程都是先獲取客戶端的IP地址,得到用戶名;然后在日歷上輸入要查詢的時間;如果是教師,還要輸入要查詢的用戶名,系統(tǒng)按照范圍條件給出日流量表單或月流量表單,再將結(jié)果返回給客戶端的瀏覽器上。用戶網(wǎng)絡(luò)訪問控制模塊可以實現(xiàn)教師在Web頁面設(shè)置規(guī)則信息,提交將其存入到數(shù)據(jù)庫的用戶表中。當(dāng)學(xué)生登錄系統(tǒng)時,從用戶表中讀取相關(guān)權(quán)限信息,系統(tǒng)根據(jù)這些信息添加相應(yīng)的網(wǎng)絡(luò)規(guī)則到Netfilter框架中去。用戶網(wǎng)絡(luò)連接模塊是由學(xué)生輸入用戶名和密碼,然后來完成身份認(rèn)證、網(wǎng)絡(luò)規(guī)則配置、斷開網(wǎng)絡(luò)。在學(xué)生提交用戶名和密碼時,系統(tǒng)獲得該用戶的IP地址,并將地址添加到用戶表中,從而實現(xiàn)了針對用戶名進(jìn)行網(wǎng)絡(luò)訪問的控制,即使學(xué)生修改了IP地址,針對用戶的網(wǎng)絡(luò)訪問控制也不會改變。
圖5 網(wǎng)絡(luò)結(jié)構(gòu)
3.2 系統(tǒng)的測試
圖4 Linux流量控制的基本原理
選擇60臺計算機(jī)進(jìn)行測試,任意選取五臺計算機(jī)為測試機(jī),具體配置情況如表1所示。計算機(jī)Server001 和C8011、C8012、C8013、C8014組成測試網(wǎng)絡(luò),Server001為服務(wù)器,C8011、C8012、C8013為客戶機(jī),C8014用于通過IE瀏覽器對系統(tǒng)進(jìn)行Web頁面的設(shè)置。Out8015為接入Internet上的一臺客戶機(jī),用于查看客戶機(jī)的IP信息。
表1 實驗設(shè)備的配置
根據(jù)配置,客戶機(jī)登錄系統(tǒng)后經(jīng)服務(wù)器可以訪問外網(wǎng),不登錄系統(tǒng)無法訪問外網(wǎng)。通過C8014客戶機(jī)進(jìn)行用戶網(wǎng)絡(luò)訪問權(quán)限和網(wǎng)絡(luò)速率的配置,如圖6所示,使stud2014299可以無限制上網(wǎng),stud2014300不能上網(wǎng)、stud2014301不能登錄QQ、stud2014302不能訪問網(wǎng)頁、stud2014303不能訪問FTP和stud2014304不能用P2P軟件進(jìn)行下載上傳。通過C8014客戶機(jī)進(jìn)行學(xué)生網(wǎng)絡(luò)速率設(shè)置,使學(xué)生“stud2014299”的訪問網(wǎng)絡(luò)的速率為10 kB。根據(jù)配置,統(tǒng)計各協(xié)議端口對應(yīng)流量,系統(tǒng)可以很好地實現(xiàn)對學(xué)生進(jìn)行日流量查詢統(tǒng)和月流量查詢統(tǒng)計,如圖7所示。
通過嵌入式Linux平臺控制系統(tǒng)的設(shè)計,以機(jī)房為測試平臺,客戶端能夠按照用戶的要求進(jìn)行相應(yīng)的網(wǎng)絡(luò)服務(wù),同時實現(xiàn)流量查詢、流量統(tǒng)計、用戶連網(wǎng)斷網(wǎng)功能,效果良好。同時,訪問控制方法對相關(guān)的研究具有一定的參考價值。
圖6 用戶網(wǎng)絡(luò)配置界面
圖7 用戶流量統(tǒng)計
參考文獻(xiàn):
[1]周華平.Linux下防火墻系統(tǒng)的研究[J].微計算機(jī)信息,2010,26(3):130-132.
[2]李俊.基于Netfilter防火墻的研究與實現(xiàn)[J].西藏大學(xué)學(xué)報,2010,25(2):66-69.
[3]趙杉.一種安全聯(lián)動防火墻系統(tǒng)的設(shè)計和研究[D].成都:四川大學(xué),2006.
[4]李琪.基于UTM的虛擬系統(tǒng)及其CPU保護(hù)機(jī)制的設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2010.
[5]王之瓊.基于Linux的流量統(tǒng)計及網(wǎng)絡(luò)訪問控制系統(tǒng)的設(shè)計與實現(xiàn)[D].沈陽:東北大學(xué),2008.
[6]王宇,張寧.網(wǎng)絡(luò)監(jiān)聽器原理分析與實現(xiàn)[J].計算機(jī)應(yīng)用研究,2003.20(7):142-145.
[7]宋書民.Linux網(wǎng)關(guān)流量控制管理應(yīng)用[D].長春:吉林大學(xué),2005.
[8]袁春陽,柴喬林,柳忠光.網(wǎng)絡(luò)入侵檢測系統(tǒng)中網(wǎng)絡(luò)實時監(jiān)聽程序的設(shè)計與實現(xiàn)[J].計算機(jī)工程,2002.10:150-151.
[9]劉嘉勇,方勇侯,瀟沐,等.E-mail監(jiān)聽系統(tǒng)的設(shè)計與實現(xiàn)[J].四川大學(xué)學(xué)報,2003.21(6):134-137.
[10]王珊,陳松,周明天.網(wǎng)絡(luò)流量分析系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2009,45(10):86-88.
[11]葉煒.基于動態(tài)備份虛擬機(jī)的高可靠網(wǎng)絡(luò)系統(tǒng)[D].上海:上海交通大學(xué),2013.
[12]胡煦杰.基于網(wǎng)絡(luò)服務(wù)質(zhì)量的Linux頻寬控制設(shè)計與實現(xiàn)[D].蘇州:蘇州大學(xué),2013.
Design and Implementation of Control System Based on Linux
SUN Qiu
(Information Network Center,Heilongjiang University of Science&Technology,Harbin 150022)
Network traffic monitoring has become an important research issue in the field of network security,combined with the current network traffic monitoring technology development trends and practical needs,this paper proposes a network traffic monitoring scheme based on embedded Linux architecture and SYN-Flood algorithm for denial of service attack and network anomaly detection.A network control system based on embedded Linux firewall Netfilter framework is designed.The results show that the system can realize the statistics of byte traffic per address and restrict access by setting policy.At the same time,network traffic monitoring system has the function of identifying abnormal traffic information,testing and verifying its feasibility and reliability.
Control System;Netfilter;Traffic Query;Traffic Statistics
1007-1423(2017)10-0068-05
10.3969/j.issn.1007-1423.2017.10.019
孫遒(1971-),女,吉林人,本科,高級工程師,研究方向為計算機(jī)科學(xué)與技術(shù)
2017-12-15
2017-03-29
黑龍江省教育科學(xué)規(guī)劃重點課題“互聯(lián)網(wǎng)+”背景下教育教學(xué)方式改革研究(No.GJB1215066)