URPF技術(shù)在網(wǎng)絡(luò)路由中的應(yīng)用
摘 要:
摘 要:隨著我國信息化社會的發(fā)展,網(wǎng)絡(luò)已經(jīng)是普及到千家萬戶,但是我國網(wǎng)絡(luò)安全問題卻不容樂觀,網(wǎng)絡(luò)遭受攻擊的事件屢屢發(fā)生。在互聯(lián)網(wǎng)中,路由就是交通樞紐,是最容易被網(wǎng)絡(luò)攻擊所利用的。路由在工作中轉(zhuǎn)發(fā)來自客戶端的數(shù)據(jù)包時并不對數(shù)據(jù)包源地址的合法性進(jìn)行審核,這樣就給了基于源地址的攻擊機(jī)會,本文主要探討如何利用URPF技術(shù)來減緩或抑制基于源地址欺騙的攻擊行為,從而提高網(wǎng)絡(luò)的安全性。
關(guān)鍵詞:
關(guān)鍵詞:URPF技術(shù) 網(wǎng)絡(luò)安全 源地址欺騙
當(dāng)前我國網(wǎng)站發(fā)展已經(jīng)成規(guī)�;畡荩�2014年之始,我國網(wǎng)站數(shù)量已經(jīng)超350萬個,網(wǎng)站使用的域名已經(jīng)超過460萬個,為我國網(wǎng)站提供聯(lián)網(wǎng)接入服務(wù)的商家將近1000家,網(wǎng)站提供的服務(wù)信息涵蓋了社會上各種領(lǐng)域。但是我國網(wǎng)絡(luò)安全問題卻令人堪憂,經(jīng)常會有黑客在網(wǎng)絡(luò)上進(jìn)行各種攻擊,給網(wǎng)絡(luò)的經(jīng)營、管理和服務(wù)造成非常大的麻煩。
在黑客攻擊網(wǎng)絡(luò)所使用的方式中,Dos/DDoS(Denial of Service/ Distributed Denial of service,即拒絕服務(wù)/分布式拒絕服務(wù))攻擊是黑客攻擊網(wǎng)絡(luò)最常用的方式之一。Dos/DDoS攻擊是一種阻止連接服務(wù)的網(wǎng)絡(luò)攻擊,其原理是利用合法的網(wǎng)絡(luò)服務(wù)請求去占用服務(wù)器的資源,使得真正需要服務(wù)的用戶不能得到服務(wù)器的響應(yīng)。如圖1所示,,假如圖中客戶端A是合法用戶,客戶端B是非法用戶,客戶端B想利用基于源地址方式攻擊網(wǎng)絡(luò)服務(wù)器時,就要偽造報文源地址為客戶端A的192.168.1.110/22地址,當(dāng)網(wǎng)絡(luò)服務(wù)器響應(yīng)客戶端B發(fā)來的假報文時,將會向真正的192.168.1.110/22地址發(fā)送應(yīng)答報文,客戶端B發(fā)出的假報文,實際上對客戶端A和網(wǎng)絡(luò)服務(wù)器都進(jìn)行了攻擊,輕者造成流量浪費(fèi)、網(wǎng)絡(luò)阻塞,甚者可能造成巨大的經(jīng)濟(jì)和機(jī)會損失。
為有效減緩或抑制Dos/DDoS攻擊,可行方法之一就是在網(wǎng)關(guān)處實施URPF(Unicast Reverse Path Forwarding,單播逆向路徑轉(zhuǎn)發(fā))技術(shù),在網(wǎng)關(guān)處實行對來自網(wǎng)內(nèi)數(shù)據(jù)包進(jìn)行源地址檢查,對于源地址不合法的數(shù)據(jù)包不進(jìn)行轉(zhuǎn)發(fā),只對通過審核的數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。URPF是網(wǎng)絡(luò)設(shè)備檢查數(shù)據(jù)包源地址合法性的一種有效方法,其主要功能是用于防止基于源地址欺騙的網(wǎng)絡(luò)攻擊行為。
1 進(jìn)入ACL與URPF的比較分析
盡管進(jìn)入ACL可能被配置用來提供等價的欺騙保護(hù),但進(jìn)入ACL策略是靜態(tài)的,并要求重新配置以反映更改網(wǎng)絡(luò)條件,包括拓?fù)涓暮托碌那熬Y指派。URPF特別開發(fā)用來解決伸縮和運(yùn)營開銷問題,以解決單獨(dú)使用進(jìn)入ACL對數(shù)據(jù)包進(jìn)行反欺騙過濾帶來的種種管理與配置復(fù)雜度等問題。
當(dāng)URPF在接口上啟用時,路由器檢查了那個接口上的所有進(jìn)入數(shù)據(jù)包,以便驗證源地址是否可到達(dá),可選地,通過進(jìn)入接口可到達(dá)。這種反向路徑檢查是通過查看匹配源IP地址及可選的進(jìn)入接口的轉(zhuǎn)發(fā)信息庫中是否存在前綴來完成的。因為URPF使用FIB來驗證源地址,所以它能夠動態(tài)適應(yīng)網(wǎng)絡(luò)拓?fù)渲械淖兓癐P前綴的變化,這些是通過路由協(xié)議更改由FIB自動進(jìn)行捕捉的。URPF可以與進(jìn)入ACL同時部署,以便對存在任何漏洞的進(jìn)入ACL添加一層額外的保護(hù)。
2 URPF的模式與選項
2.1 嚴(yán)格單播反向路徑轉(zhuǎn)發(fā)
嚴(yán)格單播反向路徑轉(zhuǎn)發(fā)(Strict URPF),也稱為版本1或URPFv1,需要檢查每一個報文的源地址。Strict URPF在IP路由是對稱的網(wǎng)絡(luò)時工作得很好,而對于IP路徑選擇可能導(dǎo)致不對稱轉(zhuǎn)發(fā)路徑的地方的源和目的地址之間具有多條路徑的網(wǎng)絡(luò),可能導(dǎo)致丟棄合法的通信流。
2.2 可行單播反向路徑轉(zhuǎn)發(fā)
可行單播反向路徑轉(zhuǎn)發(fā)(Feasible URPF),是對嚴(yán)格對稱路由的擴(kuò)展,同樣需要檢查每一個報文的源地址,但是在多路由情況下,F(xiàn)easible URPF允許轉(zhuǎn)發(fā)不是經(jīng)過最優(yōu)路由到達(dá)的數(shù)據(jù)包。
2.3 松散單播反向路徑轉(zhuǎn)發(fā)
松散單播反向路徑轉(zhuǎn)發(fā)(Loose URPF),與嚴(yán)格對稱路由最大的不同點(diǎn)就是只要存在一個路由。Loose URPF因為沒有驗證數(shù)據(jù)包的接入接口,它在這樣的網(wǎng)絡(luò)拓?fù)渲泄ぷ鞯煤芎茫涸贗P路由對稱的情況下,該拓?fù)湓谠春湍康牡刂g具有多條路徑。但是,因為匹配IP路由表中的前綴的任何源地址被認(rèn)為是有效的,Loose URPF通常只在過濾欺騙數(shù)據(jù)包中是有效的,這些數(shù)據(jù)包的源地址是下面的類型之一:偽造地址、不存在的地址和由RFC1918、RFC3330、RFC3927定義的保留的專用網(wǎng)絡(luò)地址。
2.4 虛擬路由和轉(zhuǎn)發(fā)的單播反向路徑轉(zhuǎn)發(fā)
虛擬路由和轉(zhuǎn)發(fā)的單播反向路徑轉(zhuǎn)發(fā)(Virtual Routing and Forwarding URPF)。是最新的實現(xiàn)模式,操作原理類似于Loose URPF,但不是針對設(shè)備全局的FIB驗證接收到的數(shù)據(jù)包的源地址,而是僅針對與其關(guān)聯(lián)的VRF實例實施的。
3 URPF的處理流程
本文以H3C的設(shè)備為例,描述在啟用了URPF技術(shù)后對接口流入數(shù)據(jù)包的處理流程。URPF檢查有嚴(yán)格型和松散型兩種。此外,還可以支持ACL與缺省路由的檢查。URPF的處理流程如圖2:
第一步,檢查接將要轉(zhuǎn)發(fā)數(shù)據(jù)包源地址的合法性。直接丟棄廣播地址和目的地址不是廣播的全零地址。第二步,檢查數(shù)據(jù)包的源地址是否可能匹配FIB表,若在FIB表中找不到,則跳到第五步(ACL 允許否?)。第三步,上步驟若是在FIB表中匹配的是缺省路由,則應(yīng)該檢查用戶是否配置了允許缺省路由,如果沒有配置,則跳到第五步(ACL允許否?)。第四步,檢查數(shù)據(jù)包入接口與FIB查詢結(jié)果是否相符,若相符,則通過檢查;若不符,則查看是否是松散URPF,如果是,則通過,否則說明是嚴(yán)格URPF。第五步,用戶是否配置了ACL規(guī)則,ACL檢查是否允許。若數(shù)據(jù)包符合ACL規(guī)則,則通過URPF檢查,否則丟棄該數(shù)據(jù)包。
4 URPF的實現(xiàn)、配置與維護(hù)
URPF部署在網(wǎng)絡(luò)邊緣,實現(xiàn)URPF有兩種方式:在網(wǎng)絡(luò)入口邊緣和最佳當(dāng)前實施(BCP38)中遵守RFC2827過濾器的嚴(yán)格模式;用于ISP到ISP邊緣的RTBH (Remote Triggered Black Hole,即遠(yuǎn)程觸發(fā)黑洞)過濾的疏松模式。
一般情況下,管理員配置時要結(jié)合網(wǎng)絡(luò)拓?fù)浔旧淼奶攸c(diǎn),選擇實施嚴(yán)格的URPF還是疏松的URPF。需要注意的是,URPF只能應(yīng)用在接口的Input方向,對流入的報文有效。其配置和維護(hù)命令都很簡單,本文以Cisco和H3C的設(shè)備為例進(jìn)行說明。
4.1 Cisco
采用URPF技術(shù)的前提是設(shè)備支持并啟用了CEF(Cisco Express Forwarding,即思科快速交換)或dCEF(Distributed Cisco Express Forwarding,即分布式思科快速交換),其配置非常簡單,命令格式為:ip verify unicast source reachable-via {rx | any} [allow-default] [allow-self-ping] [list],以配置嚴(yán)格的URPF為例,命令行如下:
Router(config)interface FastEthernet 0/0
Router(config-if)ip verify unicast source reachable-via rx
4.2 H3C
命令格式為:ip URPF { loose | strict } [ allow-default-route ] [ acl acl-number ],如要在接口GigabitEthernet1/0/1 上使能嚴(yán)格URPF 檢查,同時允許對缺省路由進(jìn)行特殊處理,配置命令如下:
[RouterA-GigabitEthernet1/0/1] ip URPF strict allow-default-route
4.3 URPF維護(hù)
Cisco:主要通過show ip traffic、show ip interface、show pxf cpu statistics drop interface等命令進(jìn)行監(jiān)控,或查看全局(每接口)的URPF 功能丟棄報文的統(tǒng)計信息。
H3C:可以使用 display ip interface 命令查看URPF 功能丟棄報文的統(tǒng)計信息(Drops 表示被丟棄的報文數(shù)目;Suppressed drops 表示被抑制丟棄的報文數(shù)目)
5 結(jié)語
實施基于入向ACL和URPF的Ingress過濾技術(shù)是一種比較成熟的Dos/DDoS防御技術(shù)。但是在實際應(yīng)用中,Ingress過濾時由于要檢查每一個報文的源地址,再據(jù)源地址查找路由,在此過程中需要查找多次,必然要多浪費(fèi)處理的時間,因而耗費(fèi)過多路由器資源,造成網(wǎng)絡(luò)時延。另外,因為Ingress過濾配置標(biāo)準(zhǔn)不統(tǒng)一和當(dāng)今互聯(lián)網(wǎng)上存在基于地址假冒技術(shù)的應(yīng)用服務(wù)造成很多ISP都沒有實現(xiàn)Ingress過濾。網(wǎng)絡(luò)中基于假冒地址的DoS/DDoS攻擊很難完全避免,不過在實踐中利用URPF技術(shù)可以非常有效的防止基于源地址欺騙的攻擊行為,很大程度上提高了網(wǎng)絡(luò)的安全性。
參考文獻(xiàn):
[1]王文彥.計算機(jī)網(wǎng)絡(luò)實踐教程[M].北京:人民郵電出版社,2014.
[2] 魏大新,李育龍,強(qiáng)振海. Cisco網(wǎng)絡(luò)工程案例精粹[M].北京:電子工業(yè)出版社.2007.
[3]王達(dá). 路由器配置與管理完全手冊[M].武漢:華中科技大學(xué)出版社,2011.
[作者簡介] 王峰(1980-),男,安徽舒城人,蘇州市房地產(chǎn)測繪隊工程師,主要從事房產(chǎn)面積測算,測繪軟件維護(hù),計算程序編寫。
(收稿日期:2014-11-18)
本文編號:14903
本文鏈接:http://sikaile.net/kejilunwen/wltx/14903.html