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