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

基于互聯網多數據源的IP黑名單的聚合與應用實現

2018-01-18 15:57:56阮曉龍楊明
計算技術與自動化 2017年4期

阮曉龍+楊明

摘 要:隨著互聯網的快速發展,人民的生活和工作方式都演變了更加高效快捷的模式。但隨著人民在眾多領域愈發依賴于網絡,信息安全的問題也凸顯出來。提出一種IP黑名單聚合的解決方案,來聚合互聯網中已有的黑名單數據,并加以利用,在一定程度上加強互聯網的安全性。

關鍵詞:IP黑名單;聚合;BGP

中圖分類號:TP3 文獻標志碼:A

Aggregation and Application Implementation of IP Black List Based on Internet Multi Data Sources

RUAN Xiao-long1,YANG Ming2

(1.The Network Information Center of Henan University of Chinese Medicine,Zhengzhou,Henan 450000;

2.School of Information Technology,Henan University of Chinese Medicine,Zhengzhou,Henan 450000,China)

Abstract:With the rapid development of the internet, peoples life and work style has evolved a more efficient and efficient model.But with the people in many areas increasingly dependent on the network, the issue of information security is also highlighted.In this paper, we propose a solution to the aggregation of IP black list, which can be used to enhance the security of the Internet in a certain extent.

Key words:IP black list,polymerization,BGP

1 引 言

IP黑名單是指被設置禁止通行的IP地址列表。在一個管理完備的網絡中,往往會設置IP黑名單列表,以阻斷有安全風險的地址的訪問。發往IP黑名單的數據包不會被正常的轉發[1],而被丟棄(稱為black hole route,即黑洞路由,一般是送到Null0空接口)或者是發送到特殊的目的地(稱為sinkhole路由,送到專門的流量處理設備進一步處理),配合單播反向路徑轉發可以高效的將來自IP黑名單的數據包丟棄。IP黑名單的應用可以顯著的加強網絡的安全性。

隨著互聯網的發展,互聯網的安全問題尤為重要。盡管現在許多企業和機構都有自己的黑名單庫,但是能夠共享在互聯網中且能供開放使用的卻少之又少。提出了一種基于多數據源進行IP黑名單數據聚合,并面向互聯網提供開放服務的解決方案。

2 IP黑名單數據獲取

2.1 數據來源

討論時所使用的黑名單數據來源有以下三個:1、中國科學技術大學(http://blackip.ustc.edu.cn),2、東北大學(http://antivirus.neu.edu.cn/scan/)3、OpenBL(http://www.openbl.org),但是系統可以平滑擴展到支持更多的數據源。上述三個IP黑名單數據源主要以文本格式提供數據[2],其發布在Web服務器上,通過HTTP GET請求即可獲取黑名單數據。

2.2 數據清洗機制

首先向目標數據源發起HTTP GET請求(例如http://blackip.ustc.edu.cn/list.php?txt)獲取到全部的IP黑名單地址信息,然后通過正則表達式匹配,獲取到每個IP地址存入到數組中[3],并去除重復的數據。然后將過期時間設置為24小時之后,存入數組中,最終形成一個IP地址和過期時間的二維數組。

3 IP黑名單數據存儲

IP黑名單數據源存儲采用關系型數據庫存儲。

3.1 數據庫設計

存放IP黑名單數據的關系表的關鍵字段如表1所示。

3.2 緩存機制

獲取到的黑名單信息并非直接更新到數據表,而是采用文本緩存的機制,最大限度的減少數據庫讀寫壓力,數據緩存的基本字段與格式為:緩存記錄={IP地址\\t過期時間\\n}。

緩存數據的機制一般有以下幾個步驟。

①讀取現有的IP黑名單信息,形成一個IP地址和過期時間的二維數組A1。

②將最新獲取到的黑名單數據存入數組A2,將數組A2與A1取交集,得到數組B=A1∩A2。

③取A2與B的差集得到C=A2-B,即為需要插入數據庫中的黑名單數據數組[4]。

④將A1中過期時間小于當前時間的黑名單數據,從A1中刪除并存入A3,則A3為需要刪除的黑名單數據數組。

⑤將數組A1剩余的數據與數組A2取并集,得到D=A1∪A2,即為當前所有未過期的黑名單數據,并將數據更新到緩存數據中。

利用數據緩存機制,在盡可能減少數據庫操作的情況下實現數據的有效、可靠更新。

3.3 數據更新

根據3.2的計算,得到需要插入到數據庫的黑名單數據C與需要刪除的黑名單數據A3。將C的數據格式化,插入到數據庫中,將A3中的IP地址的status字段值改為deleting狀態。

3.4 數據備份endprint

數據備份是指將原有的數據拷貝一份,生成一個原有的數據的副本,當原有的數據被破壞時,使用已備份的副本數據恢復原有數據。因此為了保障黑名單數據安全性,數據備份必不可少。

可通過Linux任務計劃,建立自動備份機制,具體的做法如下所示。

①每天0點,進行一次全量數據備份,并保存最近15個備份數據;

②每周一0點,將上一周的7個備份數據發布到遠程FTP服務器上,實現遠程備份數據存儲。

4 聚合計算

4.1 數據聚合的實現

根據2和3中提到的數據獲取與存儲機制,一個數據源從獲取到存儲的過程如圖1所示。

而實際上,獲取的黑名單數據接口源不止一個,這個時候每個數據接口所獲取到的數據應該是獨立存在的,并通過來源和類型作為接口區分,互不影響,保障數據的可靠性。

4.2 多進程數據聚合

為了提高采集效率,可使用多進程的方式,針對每個數據接口使用一個獨立的進程來完成一個完整的聚合流程。

5 IP黑名單應用

在黑名單數據庫聚合完成之后,即可將黑名單數據面向社會提供服務。為了減少路由記錄數量,可將IP黑名單數據通過路由計算進行聚合,減少黑名單記錄條數,并以IP地址塊的格式提供服務。

5.1 面向服務器的應用

5.1.1 文本格式

每5分鐘將數據庫中的黑名單數據聚合后生成txt文件,通過Web服務器發布,用戶通過HTTP GET請求獲得黑名單數據進行應用。

文本格式的黑名單數據主要用于類UNIX操作系統的內置防火墻軟件使用。例如,某Linux服務器上開啟iptables防火墻,在服務器上通過shell腳本自動獲取黑名單數據并生成防火墻策略,實現黑名單數據中的IP地址無法訪問該服務器。

以CentOS 6.5操作系統,通過BIND構建的DNS服務器為例,通過以下的shell腳本可自動獲取DNS黑名單數據并生成防火墻策略,以提升DNS服務器的安全性。

#!/bin/bash

iptables -F dns

curl http://openblackip.online/api/txt/dns.txt > dnsblackip.txt

for ip in `cat dnsblackip.txt`;

do echo iptables -A dns -j DROP -s $ip;

iptables -A dns -j DROP -s $ip;

done

可通過cron配置每5分鐘執行一次上述shell腳本,來達到防火墻策略實時更新的效果。

5.1.2 JSON格式

JSON是常用的數據交換格式之一,和文本格式發布方式相同,將黑名單數據生成JSON文件,通過Web服務器發布。使用者只需要讀取JSON接口就能夠獲取到黑名單數據。

JSON格式的黑名單數據如下例所示,獲取與使用的方法與文本格式的使用方法基本一致。

{

"code": "0",

"msg": "success",

"data": {

"router":[

1.0.151.84,

1.0.182.122,

1.1.164.230,

… …

] ,

"mail":[

1.22.124.237,

1.23.103.205,

1.28.144.183,

… …

],

… …

}

}

5.1.3 XML格式

XML格式是常用的數據交換格式之一,通過將數據庫中的黑名單數據以XML文檔的方式進行Web方式發布。XML格式的黑名單數據如下例所示,獲取與使用的方法與文本格式的使用方法基本一致。

0

success

1.0.151.84

1.0.182.122

1.1.164.230

… …

1.22.124.237

1.23.103.205

1.28.144.183

… …

… …

5.1.4 API安全設計

為了保障業務的安全性,可在提供服務的接口增加訪問認證和數據加密,只有符合要求的用戶可從接口處獲取數據。獲取接口認證所需要的令牌可通過注冊賬號的方式來獲取。

5.2 面向路由器的應用

5.2.1 黑洞路由

黑洞路由是指一條路由的下一跳地址為null0,使得數據包無法被正常的轉發。黑洞路由通常用于解決DOS攻擊,同時也是一個封鎖黑名單的常用方法。例如某路由器想要封鎖IP地址1.0.151.84,具體的做法如下所示。

①在路由器上增加靜態路由ip route 127.0.0.2 255.255.255.255 null0;endprint

②添加靜態路由 ip route 1.0.151.84 255.255.255.255 127.0.0.2。

5.2.4 IP黑名單BGP分發系統

通常使用手動添加路由的方法不僅工作量大,路由可維護性差,且路由器的路由表不能夠實時更新。利用BGP協議來控制黑名單的添加與刪除,能夠大大減輕管理員工作量,便于路由維護,且能夠達到路由表實時更新的效果。

IP黑名單BGP分發系統就是利用BGP客戶端,通過iBGP協議將黑名單數據發送給BGP路由服務器,然后由BGP路由服務器通過eBGP協議將黑洞路由分發給其他的路由器,具體架構如圖2所示。

5.2.2 BGP服務器

邊界網關協議(BGP)是運行于 TCP 上的一種自治系統的路由協議,主要功能是和其他的BGP系統交換網絡可達信息。網絡可達信息包括列出的自治系統(AS)的信息。

在Linux服務器上,可通過開源軟件Quagga來構建BGP路由服務器,具體的安裝與配置方法可參考官方文檔http://www.nongnu.org/quagga/docs/quagga.pdf。

使用Quagga啟用BGP服務的關鍵配置如下所示。

ip route 127.0.0.2/32 Null0

router bgp 200

neighbor blackipclient peer-group

neighbor blackipclient ebgp-multihop 255

neighbor blackipclient prefix-list discard all in

neighbor blackipclient route-map blackip -out out

neighbor 211.69.35.115 remote-as 100

neighbor 211.69.35.115 peer-g roup blackipclient

access-list blackhole permit 127.0.0.2/32

ip prefix-list discard all seq 5 deny any

route-map blackip out permit 10

set ip next-hop 127.0.0.2

set community no-export

5.2.3 BGP客戶端的實現

(1)BGP數據報

BGP協議有以下四種數據報類型,分別為Open報文,Update報文,KeepAlive報文,以及Notifacation報文。四種類型報文的報頭格式是一樣的,都由Maker(16字節,可用來探測BGP對端的同步丟失,認證進入的BGP消息),Length(2字節,BGP包全長,最小為19,最大為4096),Type(1字節,1表示Open報文,2表示Update報文,3表示Notifacation報文,4表示KeepAlive報文)所組成。

Open報文:Open報文是TCP連接建立后發送的第一個報文,用于BGP對等體之間的連接關系。主要由以下幾個字段組成。

①Version(1字節):表示BGP協議版本號,當前的BGP協議版本號為4;

②My Autonomous System(2字節):發送者的自治系統號;

③Hold Time(2字節):默認為180,即BGP連接過期時間為180秒;

④BGP Identifer(4字節):發送者的BGP router id;

⑤Open Parameters Length(1字節):可選參數長度,如果為0,則表示無可選參數。

⑥Opetion Params:可選參數。

圖3 Open報文格式

完整的Open報文的格式如圖3所示。

Update報文:Update消息用于在對等體之間交換路由信息。它既可以發布可達路由信息,也可以撤銷不可達路由信息,主要由以下幾個字段組成。

①Unfeasible Routes Length(2字節),表示需要撤銷路由的總字節長度。0表示沒有撤銷路由;

②Withdrawn Routes:所有需要撤銷的路由條目;

③Total Path Attribute Length(2字節):總的路徑屬性長度,0代表在UPDATE消息中沒有網絡層可達信息域;

④Path Attributes:路徑屬性,包括ORIGN(來源)、AS_PATH(AS路徑屬性)、NEXT_HOP(下一跳地址)、MULTI_EXIT_DISC(優先級),LOCAL_PREF(本地優先屬性)等。

⑤Network Layer Reachbility Information:路由可達信息,可以多個。

完整的Update報文格式如圖4所示。

圖4 Update報文格式

KeepAlive報文:BGP會周期性地向對等體發出Keepalive消息[5-6],用來保持連接的有效性,默認沒60秒會發送一次KeepAlive報文。KeepAlive報文只包含BGP頭部的16個字節,不含其余字段。

Notification報文:當BGP檢測到錯誤狀態時[7],就向對等體發出Notification消息,之后BGP連接會立即中斷。

(2)BGP數據報的構建

BGP Open報文的實現如下所示。endprint

ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff //標識

00,1d,01 //數據報總長度為29,報文類型為Open

04 //BGP版本號v4

00,64 //AS號100

00,b4, //過期時間180秒

d3,45,23,73, //BGP ID為211.69.35.115

00 //可選參數長度位0字節

BGP Update增加路由的報文實現如下所示。

ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff //標識

00,3c,02 //數據包總長度為60,報文類型Update

00,00 //撤回路由消息長度為0字節

00,20 //路由屬性長度為32字節

40,01,01,00 //ORIGIN:IGP 來源IGP

40,02,04,02,01,00,64 //AS_PATH AS路徑屬性為100

40,03,04,7f,00,00,02 //下一條地址為127.0.0.2

80,04,04,0,0,0,0 //MED

40,05,04,0,0,0,100 //Local_Pref為100

32 //IP前綴長度32

01,16,7c,ed //路由可達信息(需要封鎖的黑名單地址)為1.22.124.237

BGP Update刪除路由的報文實現如下所示。

ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff //標識

0,1c,02 //數據報總長度為28,報文類型為Update

0,05 //撤回路由消息長度5字節

32 //撤回路由IP地址前綴長度為31

01,16,7c,ed //撤回路由的IP地址為1.22.124.237

0,0 //路由屬性長度為0

(3)客戶端程序邏輯的實現

BGP客戶端程序用于與路由服務器之間建立BGP鄰接關系,把數據庫中新增加的黑名單利用Update報文發送給路由器路由服務器,完成黑名單的添加;把需要刪除的黑名單利用Update Windthdraw報文發送給路由服務器,完成黑名單數據在BGP路由服務器上的刪除。

為了方便BGP協議處理各種異常情況[8],BGP客戶端程序采用父子進程的模式進行。子進程負責建立BGP連接,處理BGP通信,父進程為監控進程,在子進程異常退出后,等待一段時間再生成一個新的子進程。

子進程的邏輯如下所示。

建立到路由的TCP連接;

發送Open報文;

接收對方的Open報文

發送KeepAlive報文;

連接數據庫;

將數據庫中status=added的IP地址打包成Update報文發送出去;

斷開數據庫連接;

while(true){

等待60秒;

發送KeepAlive報文;

連接數據庫;

將數據庫中所status=adding的IP地址打包成Update報文發送出去,并將status改為added;

將數據庫中所有status=delteing的IP地址打包成Update報文發送出去,并將status改為deleted;

斷開數據庫連接;

}

由于BGP報文長度最大為4096個字節,為了避免消息超出長度上限,每條Update報文包含IP地址建議控制在500條以內。

5.2.4 黑名單路由獲取

如果用戶想從BGP路由服務器獲取到黑名單路由信息,只需要在路由器上做如下配置,并與路由服務器建立鄰接關系,就可以獲取黑名單路由信息,從而對黑名單進行封鎖。

router bgp 65500

no synchronization

bgp log-neighbor-changes

neighbor211.69.35.116 remote-as 200

neighbor 211.69.35.116 ebgp-multihop 255

no auto-summary

ip route211.69.35.116 255.255.255.255 x.x.x.x //xxxx為教育網的網關地址

ip route 127.0.0.2 255.255.255.255 Null0

5.2.5 BGP安全認證

為了提高BGP服務的安全性,在建立鄰居關系時可加入認證密鑰,只有兩個BGP路由器之間持有相同的密鑰時,才能夠獲取到黑名單路由信息。配置BGP認證密鑰如下所示。

neighbor 211.69.35.116 password yourpassword

6 結束語

對于IP黑名單的聚合,目前只聚合了3個數據源的黑名單,數據量約11萬條,而今后還將面臨更多數據的聚合,如何能夠高效的進行黑名單聚合還有待研究。此外對于黑名單的來源,僅僅靠第三方來源是不夠的,還需要開發一套蜜罐系統來捕獲黑名單。面對如此多的黑名單數據,開發一套完善的Web管理系統也是很有必要的[9]。

參考文獻

[1] 張煥杰,楊壽保.基于BGP協議的IP黑名單分發系統[J].中國海洋大學學報,2008,(10):157-159.

[2] 盧先鋒,楊頻,梁剛.基于動態IP黑名單的入侵防御系統模型[J].計算機工程與設計,2011,(1):10-13.

[3] 雷鵬瑋.基于Snort的入侵檢測系統的改進與實現[D].北京郵電大學,2015:1-16.

[4] 龔成清.基于linux的網頁抓取器的設計[J].電腦開發與應 用.2011,(2):73-77.

[5] 徐金榮,李允.基于Linux系統的BGP協議的設計與實現[J].計算機科學,2009,(4):27-29.

[6] 黎松,諸葛建偉,李星.BGP安全研[J].軟件學報,2013,24(1):121-138。

[7] Quagga Routing Suite [EB/OL].http://www.quagga.net.

[8] REKH TER Y , LI T , HARES S .A Border Gatew ay Protocol 4(BGP-4)[R].RFC 4271.2006.

[9] Cisco Security Center.Worm Mitigation Technical Det ails[EB/OL].http://www.cisco.com/web/about/security/intelligence/worm-mitigation-wh-itepaper.html#tt-sinkholes.endprint

主站蜘蛛池模板: 久久久久人妻一区精品色奶水| 992tv国产人成在线观看| 日韩欧美中文| 国产亚洲日韩av在线| 亚洲激情99| 日韩在线中文| 精品视频一区二区三区在线播 | 亚洲免费毛片| 在线观看亚洲国产| 国产H片无码不卡在线视频| 亚洲人成网站观看在线观看| 女人天堂av免费| 亚洲嫩模喷白浆| 久久精品人人做人人爽97| 国产日韩AV高潮在线| 久久综合九九亚洲一区| 91香蕉国产亚洲一二三区 | AV无码一区二区三区四区| 91青青视频| 久久综合激情网| 最新国产精品第1页| 亚洲天堂精品在线| 日本一本在线视频| 亚洲电影天堂在线国语对白| AV无码无在线观看免费| 欧美不卡视频在线观看| 欧美成人精品欧美一级乱黄| 欧美日本视频在线观看| 欧美色综合网站| 国产乱人伦偷精品视频AAA| 国产网站免费观看| 乱人伦中文视频在线观看免费| 美美女高清毛片视频免费观看| 无码久看视频| 99久久精品免费观看国产| 欧美成人日韩| 中文字幕天无码久久精品视频免费| 四虎国产精品永久一区| 欧美区一区二区三| 亚洲男人的天堂在线| 欧洲欧美人成免费全部视频| 99热这里只有成人精品国产| 天天色综合4| 一级毛片免费观看久| 成人国产精品网站在线看| 欧美国产在线看| 在线中文字幕日韩| 97在线观看视频免费| 亚洲无码电影| 亚洲成A人V欧美综合| 国产精品页| 日日噜噜夜夜狠狠视频| 国产美女丝袜高潮| 国产h视频免费观看| 亚洲欧美一区二区三区麻豆| 麻豆a级片| 国产精品亚洲精品爽爽| 亚洲三级成人| 久久久精品国产SM调教网站| 噜噜噜久久| 99久久国产综合精品2023| 在线亚洲精品自拍| 午夜精品久久久久久久99热下载 | 天天操天天噜| 在线亚洲小视频| 国产成人高精品免费视频| 国产精品久久自在自2021| 亚洲成人在线网| 国产爽妇精品| 狠狠操夜夜爽| 26uuu国产精品视频| www.日韩三级| 免费无码网站| 日韩在线第三页| 凹凸国产熟女精品视频| 国产成人高清精品免费软件| 欧美综合一区二区三区| 少妇精品在线| 免费一级α片在线观看| 国产午夜不卡| 视频在线观看一区二区| 日韩av资源在线|