999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于linux防火墻netfilter的配電終端通信報文

2014-12-31 00:00:00王文軒王俊仁許昆張志華
電子世界 2014年20期

【摘要】本文討論并分析了Netfilter的功能框架、工作原理及數據包處理的實現機制,設計了在Netfilter框架中實現配電終端報文預處理的hook模塊,實現去除通訊遙控報文數字簽名的功能,為配網自動化的二次安防提供幫助,同時為其他通信應用中修改tcp包數據提供借鑒參考。

【關鍵詞】Netfilter;hook模塊;mangle函數;報文處理

引言

配電終端是典型的嵌入式設備,多基于linux系統,是配電自動化建設的重要組成部分。國家電網公司物資采購標準的專用技術規范中提出,配電終端應配備符合國調〔2011〕168號文件技術功能要求的非對稱密鑰技術單向認證模塊,終端側應能夠鑒別配電主站(open3200)的數字簽名。

配電主站與配電終端建立tcp連接后,以104規約通信,主站發往終端的重要104規約報文會單向加密并數字簽名。本文hook模塊設計的報文預處理功能正是用于終端側,在通信報文到達終端前定位tcp數據包中的data區報文內容,對報文進行數字簽名鑒別等預處理。

1.netfilter處理報文的流程

1.1 netfilter的框架

Netfilter是Linux 2.4版本引入的一個子系統,它作為一個通用的、抽象的框架,提供一整套的hook函數管理機制,使得諸如數據包過濾、網絡地址轉換(NAT)和基于協議類型的連接跟蹤成為可能[1]。同時netfilter也支持用戶自定義hook函數擴充以上功能。

Netfilter把數據包處理的更流程化,并且實現了擴展過濾策略而不必修改內核的功能[2]。該框架為每種網絡協議( IPv4、IPv6等)定義了數據包處理過程,并定義一些鉤子點(Hook) ,在內核中建立了一個函數指針鏈表,函數指針所指的函數稱為鉤子函數,其返回值告訴協議棧如何處理數據包[3]。

1.2 報文處理的實現原理

Tcp包經過netfilter時的處理流程以及各“鉤點”如圖1所示。

圖1 數據包在netfilter中的處理流程

對于收到的每個數據包,都從“PRE_ROUTING”點進來,經過路由判決,如果是發送給本機的就經過“LOCAL_IN”點,然后往協議棧的上層繼續傳遞;否則,如果該數據包的目的地不是本機,那么就經過“RORWARD”點,由“POST_ROUTING”點將該包轉發出去。對于上層協議棧發送的每個數據包,首先也有一個路由判決,以確定該包是從哪個接口出去,然后經過“LOCAL_OUT”點,最后也是順著“POST_ROUTING”點將該包發送出去[4]。

2.netfilter下報文預處理功能設計與實現

2.1 報文預處理的功能設計

本文設計的報文預處理功能是在L inux內核Netfilter框架上開發的一個內核模塊,具有tcp包勾取、識別、數據修改(加密或加數字簽名)等基本功能,通過動態加載到

Linux內核中實現預處理功能。本文用到的鉤子點是POST_ROUTING,在該點編寫了相應的鉤子函數,并進行注冊和掛接,將tcp數據包鉤出來進行處理再放回去。

通信tcp包在通過linux網關轉發時由預處理hook程序進行處理,程序流程設計如 圖2所示:

圖2 程序設計流程圖

2.2 報文預處理的hook函數實現

下文按圖2流程介紹報文處理的hook函數部分源代碼。

(1)hook函數定義如圖3所示:

圖3 hook函數定義

(2)獲取存放當前tcp包數據的skb_buff:

圖4 讀取skb_buff

(3)判斷數據包是否來自目標進程的端口號:

if (likely(ntohs(sport) = 5381)) {

return NF_ACCEPT;

} "http://判斷主站進程端口號是否為538

(4)判斷數據包是否需要處理

payload = (void *) skb-gt;data + 40;

//+40是從data區偏移出 ip包頭與tcp包頭

if (*payload==0x68) {

//判斷是否為104規約報文

if (*(payload+6)==0x2E) {

//判斷是否為遙控報文

.......}

}

(5)取出tcp數據包中的應用層數據(data區)也就是實際的規約報文,存入replace字符串:

payload = (void *) skb-gt;data + 40;

replace = payload ;

(6)如圖5處理報文,以0x00替換16 L1 L2 16型數字簽名,若想做其他處理都可以借助對指針字符串replace編程實現:

圖5 替換尾端報文16 L1 L2 16

(7)重新封裝tcp包,放入傳輸序列:

if (skb!=NULL) {

nf_nat_mangle_tcp_packet(skb,ct,ctinfo, 0,strlen(replace),(char*)replace,strlen(replace)); " " " " "http://重新封裝tcp包 return NF_ACCEPT;

}

這里的mangle函數調用是整個hook功能實現的核心。

用于修復seq的hook函數如圖6所示:

圖6 修復seq

3.測試運行

本文實驗環境是在windows系統下,用Linux虛擬機作為數據進出內網和外網的網關,報文預處理程序運行在該Linux虛擬機上,同時在該windows下用兩個網絡調試助手分別模擬外網主站與內網終端。內網終端與外網主站通過網關虛擬機交換數據,示意圖見圖7所示:

圖7 模擬通信示意圖

將104規約下的遙控報文68 0E 06 00 46 00 2E 01 06 00 01 00 01 60 00 82 16 77 74 16從模擬主站(Tcp server)發往終端(Tcp client),報文尾端16 77 74 16為簡單數字簽名。如圖8所示:

圖8 主站側發出遙控報文

終端接受到報文如圖9所示,可見報文的數字簽名已被解除,由00 00 00 00替代,如果要對報文做其他處理,可以在程序中對指針字符串replace做相應的處理。

4.結論

本文基于netfilter防火墻提出了一種報文預處理方法,用于配電終端側鑒別并處理配電主站(open3200)的遙控報文數字簽名。本方法能夠在傳輸網關準確定位到tcp包中的原始報文數據,可按用戶需求對通信報文進行預處理,無需再在終端應用層進行報文處理,減輕了終端的處理壓力、提高終端的響應速度。

圖9 終端側收到的遙控報文

本文設計亦可用于其他的tcp通信場合,提供了一種修改tcp包應用層data區數據的實現方法。

參考文獻

[1]陳慧春.Linux操作系統網絡協議棧的設計與實現研究. 成都:電子科技大學碩士論文,2004:44-47.

[2]岳新. Linux2. 4內核下基于Netfilter框架可擴展性研究與實現. 哈爾濱:哈爾濱理工大學碩士論文,2005.

[3]詹瑾,謝贊福. Linux內核netfilter包過濾防火墻的設計與實現[J].科學技術與工程,2010,10(18):4525.

[4]wjlkoorey,洞悉linux下Netfilteramp;iptables:什么是Netfilter[EB/OL].ChinaUnix.net,2012.

主站蜘蛛池模板: 亚洲美女操| a欧美在线| 国产女人水多毛片18| 久青草网站| 午夜爽爽视频| 国产亚洲精久久久久久无码AV| 久久亚洲中文字幕精品一区| 婷婷丁香在线观看| 精品视频一区二区观看| 91久久偷偷做嫩草影院免费看 | 另类重口100页在线播放| 精品五夜婷香蕉国产线看观看| 国产玖玖视频| 国产亚洲精品在天天在线麻豆| 欧美精品不卡| 中文字幕亚洲综久久2021| 国产精品尤物在线| 国产9191精品免费观看| 久久久久夜色精品波多野结衣| 国产精品亚洲精品爽爽| 精品夜恋影院亚洲欧洲| 日韩天堂网| 一边摸一边做爽的视频17国产| 成人无码一区二区三区视频在线观看 | 日韩成人午夜| 日韩大乳视频中文字幕| 久久夜色精品| 亚洲国语自产一区第二页| 成人毛片免费观看| 国产真实乱了在线播放| 2021天堂在线亚洲精品专区| 精品人妻无码中字系列| 亚洲国产精品无码AV| 91亚洲国产视频| 高清不卡一区二区三区香蕉| 亚洲人成网站色7799在线播放| 国产黄在线免费观看| 国产日韩欧美一区二区三区在线| 亚洲一区二区成人| 色妺妺在线视频喷水| 秋霞国产在线| 色综合天天综合中文网| av大片在线无码免费| 啦啦啦网站在线观看a毛片| 成人午夜亚洲影视在线观看| 久久国产高清视频| 欧美精品影院| 91小视频在线| 青青青伊人色综合久久| 香蕉久人久人青草青草| 女同国产精品一区二区| 97久久人人超碰国产精品| 日韩福利视频导航| 国产三级国产精品国产普男人| 国产真实乱了在线播放| 极品尤物av美乳在线观看| 国产欧美日韩另类精彩视频| 日韩黄色大片免费看| 青青极品在线| 大香伊人久久| 国产精品伦视频观看免费| 国产福利大秀91| 欧美成人在线免费| 亚洲精品卡2卡3卡4卡5卡区| 国产精品主播| 日韩av无码DVD| 精品1区2区3区| 亚洲黄色视频在线观看一区| 亚洲无码精品在线播放| 无码AV高清毛片中国一级毛片| 国产99视频精品免费视频7| 亚洲国产欧美中日韩成人综合视频| 亚洲美女一级毛片| 亚洲av无码片一区二区三区| 久热精品免费| 久久窝窝国产精品午夜看片| 日韩专区第一页| 久久精品人人做人人爽电影蜜月| 成年片色大黄全免费网站久久| 97精品国产高清久久久久蜜芽| 三上悠亚精品二区在线观看| 四虎AV麻豆|