鄭秀琴
摘要:DHCP服務(wù)是一種非常重要的網(wǎng)絡(luò)基礎(chǔ)服務(wù),在局域網(wǎng)中DHCP服務(wù)常常會(huì)受到DHCP Server仿冒者攻擊和各種形式的DHCP DoS攻擊,導(dǎo)致服務(wù)異常,影響用戶正常使用網(wǎng)絡(luò)。該文針對(duì)不同的DHCP攻擊類型與不同的網(wǎng)絡(luò)環(huán)境,分別制定了使用DHCP Snooping、ACL、端口隔離等技術(shù)防御DHCP安全威脅的方案。
關(guān)鍵詞:DHCP;DHCP Snooping;ACL;端口隔離
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)26-0040-03
DHCP作為一種網(wǎng)絡(luò)基礎(chǔ)服務(wù),它的安全會(huì)影響整個(gè)局域網(wǎng)的正常運(yùn)行。目前很多局域網(wǎng)都使用路由器+交換機(jī)或三層交換機(jī)+二層交換機(jī)的架構(gòu)來(lái)組建的,并且使用DHCP服務(wù)來(lái)管理分配IP地址。盡管DHCP提供了DHCP Snooping安全特性來(lái)保障DHCP服務(wù)的安全,但有些比較老的路由器和交換機(jī)不支持該特性。另外,局域網(wǎng)中的小路由器使用LAN口接入時(shí),如果路由器開(kāi)啟DHCP服務(wù),也會(huì)給正常的DHCP服務(wù)造成一定的干擾。還有局域網(wǎng)中開(kāi)啟VMware虛擬機(jī),如果虛擬機(jī)以橋接的方式接入網(wǎng)絡(luò)并開(kāi)啟DHCP服務(wù)的話,也會(huì)干擾原本網(wǎng)絡(luò)中的DHCP服務(wù)。本文針對(duì)不同的網(wǎng)絡(luò)環(huán)境,我們分別采取不同的安全措施,確保DHCP服務(wù)的穩(wěn)定運(yùn)行。
1 DHCP服務(wù)概述
1.1 DHCP協(xié)議及其作用
DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議)是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議,使用UDP協(xié)議工作。DHCP協(xié)議采用Client/Server模型,主機(jī)地址的動(dòng)態(tài)分配任務(wù)由主機(jī)驅(qū)動(dòng)。當(dāng)DHCP服務(wù)器接收到來(lái)自網(wǎng)絡(luò)主機(jī)申請(qǐng)地址的信息時(shí),才會(huì)向網(wǎng)絡(luò)主機(jī)發(fā)送相關(guān)的地址配置等信息,以實(shí)現(xiàn)網(wǎng)絡(luò)主機(jī)地址信息的動(dòng)態(tài)配置。DHCP主要使用UDP67和UDP68,分別作為DHCP Server和DHCP Client的服務(wù)端口。
DHCP主要有兩個(gè)用途:一是給內(nèi)部網(wǎng)絡(luò)或網(wǎng)絡(luò)服務(wù)供應(yīng)商自動(dòng)分配IP地址,二是給用戶或者內(nèi)部網(wǎng)絡(luò)管理員作為對(duì)所有計(jì)算機(jī)作中央管理的手段。使用DHCP給我們帶來(lái)很多好處,如不用人工記憶IP地址、節(jié)約IP地址、IP地址不會(huì)重復(fù)、不必?fù)?dān)心在配置網(wǎng)絡(luò)時(shí)輸入錯(cuò)誤地址等。
1.2 DHCP 的工作原理
使用 DHCP 分配IP地址時(shí),局域網(wǎng)中至少有一臺(tái)DHCP 服務(wù)器,DHCP客戶端獲取IP址的過(guò)程如圖1所示。
(1) DHCP發(fā)現(xiàn): DHCP客戶端在局域網(wǎng)中發(fā)送DHCP DISCOVER廣播包,尋找可用的DHCP服務(wù)器。
(2) DHCP提供:DHCP服務(wù)器向DHCP客戶端發(fā)送DHCP OFFER單播數(shù)據(jù)包,提供一個(gè)IP租約。
(3) DHCP請(qǐng)求:當(dāng)DHCP客戶端收到一個(gè)IP租約提供時(shí),會(huì)發(fā)送一個(gè)DHCP REQUEST廣播包,告訴DHCP服務(wù)器接受了這個(gè)租約提供。
(4) DHCP確認(rèn):當(dāng)DHCP服務(wù)器收到來(lái)自客戶端的DHCP REQUEST消息后,發(fā)送DHCP ACK單播數(shù)據(jù)包,確認(rèn)客戶端的請(qǐng)求。
2 運(yùn)用DHCP Snooping解決DHCP的安全問(wèn)題
2.1 DHCP Snooping 的原理
DHCP Snooping 是DHCP(Dynamic Host Configuration Protocol)的一種安全特性,通過(guò)截獲DHCP Client 和DHCP Server 之間的DHCP 報(bào)文并進(jìn)行分析處理,可以過(guò)濾不信任的DHCP 報(bào)文并建立和維護(hù)一個(gè)DHCP Snooping 綁定表。該綁定表包括MAC 地址、IP地址、租約時(shí)間、綁定類型、VLAN ID、接口等信息。DHCP Snooping 通過(guò)記錄DHCP Client 的IP 地址與MAC 地址的對(duì)應(yīng)關(guān)系,保證合法用戶能訪問(wèn)網(wǎng)絡(luò),作用相當(dāng)于在DHCP Client 和DHCP Server 之間建立一道防火墻。
DHCP Snooping 可以解決設(shè)備應(yīng)用DHCP 時(shí)遇到DHCP DoS攻擊、DHCP Server 仿冒攻擊、DHCP 仿冒續(xù)租報(bào)文攻擊等問(wèn)題。
2.2 DHCP Snooping配置
下面以華為交換機(jī)為列,介紹DHCP Snooping的配置,對(duì)抗不同類型的DCHP攻擊。
表1為DHCP Snooping 工作模式與攻擊類型。
2.2.1 使能DHCP Snooping 功能
使能DHCP Snooping 功能的順序如下:
1) 全局使能DHCP 功能。
2) 全局使能DHCP Snooping 功能。
3) 在接口或VLAN 下使能DHCP Snooping 功能。
使能DHCP Snooping 功能的具體操作步驟為:
1) 執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖。
2) 執(zhí)行命令dhcp enable,全局使能DHCP 功能。
3) 執(zhí)行命令dhcp snooping enable,全局使能DHCP Snooping 功能。
4) 執(zhí)行命令vlan vlan-id,進(jìn)入VLAN 視圖。
或者執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖。
5) 執(zhí)行命令dhcp snooping enable,使能接口或VLAN 的DHCP Snooping 功能。
6) 執(zhí)行命令quit,返回到系統(tǒng)視圖。
使能DHCP Snooping 功能為后面各種DHCP Snooping配置的前提。endprint
2.2.2 配置防止DHCP Server 仿冒者攻擊
當(dāng)網(wǎng)絡(luò)中存在DHCP Server 仿冒者時(shí),DHCP Server 仿冒者回應(yīng)給DHCP Client 仿冒信息,如錯(cuò)誤的網(wǎng)關(guān)地址、錯(cuò)誤的DNS 服務(wù)器、錯(cuò)誤的IP 等,從而使Client 無(wú)法訪問(wèn)網(wǎng)絡(luò)或訪問(wèn)到不正確的網(wǎng)絡(luò)。
為了避免受到DHCP Server 仿冒者的攻擊,可以在交換機(jī)上配置DHCP Snooping 功能,把網(wǎng)絡(luò)側(cè)的接口配置為T(mén)rusted 模式,把用戶側(cè)的接口配置為Untrusted 模式,凡是從Untrusted 接口收到的DHCP Reply 報(bào)文全部丟棄。使能接口的DHCP Snooping 功能后,缺省情況下,接口為“不信任”狀態(tài)。
同時(shí)為定位DHCP Server 仿冒者,還可以配置偽DHCP Server 探測(cè)功能,通過(guò)檢查DHCP Reply 報(bào)文,獲取DHCP Server 相關(guān)信息,記入日志中,便于網(wǎng)絡(luò)管理員進(jìn)行網(wǎng)絡(luò)維護(hù)。
具體操作步驟為:
1) 執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖。
2) 執(zhí)行命令dhcp server detect,使能DHCP Server 探測(cè)功能。
3) 執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖,該接口為連接DHCP Server 的網(wǎng)絡(luò)側(cè)接口。或者執(zhí)行命令vlan vlan-id,進(jìn)入VLAN 視圖。
4) 接口視圖下執(zhí)行命令dhcp snooping trusted ,或者VLAN 視圖下執(zhí)行命令dhcp snooping trusted interface interface-type interface-number ,配置接口為“信任”狀態(tài)。
2.2.3 配置防止改變CHADDR 值的DoS 攻擊
如果攻擊者改變的不是數(shù)據(jù)幀頭部的源MAC,而是通過(guò)改變DHCP 報(bào)文中的CHADDR值來(lái)不斷申請(qǐng)IP 地址,而交換機(jī)僅根據(jù)數(shù)據(jù)幀頭部的源MAC來(lái)判斷該報(bào)文是否合法,那么MAC 地址限制不能完全起作用,這樣的攻擊報(bào)文還是可以被正常轉(zhuǎn)發(fā)。
為了避免受到攻擊者改變CHADDR 值的攻擊,可以在交換機(jī)上配置DHCP Snooping 功能,檢查DHCP Request 報(bào)文中CHADDR 字段。如果該字段跟數(shù)據(jù)幀頭部的源MAC相匹配,轉(zhuǎn)發(fā)報(bào)文;否則,丟棄報(bào)文。
具體操作步驟為:
1) 執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖。
2) 執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖?;蛘邎?zhí)行命令vlan vlan-id,進(jìn)入VLAN 視圖。該接口為用戶側(cè)接口。
3) 執(zhí)行命令dhcp snooping check mac-address enable,配置接口或VLAN 下檢查DHCP 報(bào)文的CHADDR 值與源MAC 是否一致。缺省情況下,交換機(jī)沒(méi)有使能CHADDR 值檢查功能。
2.2.4 配置防止仿冒DHCP 續(xù)租報(bào)文攻擊
如果攻擊者通過(guò)不斷發(fā)送DHCP Request 報(bào)文來(lái)冒充用戶續(xù)租IP 地址,會(huì)導(dǎo)致一些到期的IP 地址無(wú)法正常回收。
為了避免攻擊者仿冒DHCP 續(xù)租報(bào)文進(jìn)行攻擊,可以在交換機(jī)上配置綁定表,檢查DHCP Request 報(bào)文的源IP 地址、源MAC 地址、VLAN 及接口是否與綁定表中的匹配,如果找到匹配的表項(xiàng),則DHCP Request 報(bào)文被正常轉(zhuǎn)發(fā)。否則,報(bào)文被丟棄。
使能Option82 功能,可以根據(jù)Option82 信息建立精確到接口的綁定表。從而避免DHCP Server 仿冒者回應(yīng)給DHCP Client 仿冒信息。在二層上應(yīng)用DHCP Snooping 時(shí),不配置Option82 功能也可以獲得綁定表所需的接口信息。
具體操作步驟為:
1) 執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖。
2) 執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖,該接口應(yīng)為用戶側(cè)接口?;蛘邎?zhí)行命令vlan vlan-id,進(jìn)入VLAN 視圖。
3) 執(zhí)行命令dhcp snooping check user-bind enable,配置接口或VLAN 下的DHCP Request報(bào)文檢查功能。缺省情況下,接口或VLAN 下沒(méi)有使能DHCP Request 報(bào)文檢查功能。該命令還可以檢查Release 報(bào)文是否匹配綁定表,以防止非法用戶冒充合法用戶釋放IP 地址。
4) 執(zhí)行命令dhcp option82 insert enable,使能Option82 功能;或者執(zhí)行命令dhcp option82 rebuild enable,使能強(qiáng)制插入Option82 功能。
2.2.5 配置DHCP 報(bào)文上送速率和用戶數(shù)限制
如果網(wǎng)絡(luò)中有攻擊者不斷地發(fā)送DHCP 報(bào)文,會(huì)對(duì)交換機(jī)的DHCP 協(xié)議棧造成影響。為了避免受到攻擊者發(fā)送大量DHCP 報(bào)文攻擊,可以在交換機(jī)上配置DHCP Snooping功能,檢查DHCP 報(bào)文,并限制報(bào)文的上送速率,在一定的時(shí)間內(nèi)只允許規(guī)定數(shù)目的報(bào)文上送協(xié)議棧,多余的報(bào)文將被丟棄。用戶可以在全局、VLAN 或接口下配置限制DHCP 報(bào)文上送速率,如果在全局、VLAN或接口下同時(shí)配置,有效的順序?yàn)榻涌趦?yōu)先,VLAN 其次,最后為全局。
當(dāng)用戶數(shù)達(dá)到配置的最大用戶數(shù)限制數(shù)量,任何用戶將無(wú)法成功申請(qǐng)到IP 地址。為了抑制用戶惡意申請(qǐng)IP 地址,可配置限制用戶數(shù)的功能。endprint
對(duì)于DHCP 用戶,用戶上線后生成動(dòng)態(tài)綁定表可轉(zhuǎn)化為靜態(tài)MAC,報(bào)文可以被正常轉(zhuǎn)發(fā)。對(duì)于靜態(tài)用戶,靜態(tài)綁定表無(wú)法轉(zhuǎn)化為靜態(tài)MAC,因此還必須配置靜態(tài)MAC,報(bào)文才能正常轉(zhuǎn)發(fā)。
具體操作步驟如下:
1) 執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖。
2) 執(zhí)行命令dhcp snooping check dhcp-rate enable,全局使能DHCP 報(bào)文的速率檢查功能。
3) 執(zhí)行命令dhcp snooping check dhcp-rate rate,全局配置DHCP 報(bào)文的上送速率。
4) 執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖?;蛘邎?zhí)行命令vlan vlan-id,進(jìn)入VLAN 視圖。
5) 執(zhí)行命令dhcp snooping check dhcp-rate enable,在接口或VLAN下使能DHCP 報(bào)文的速率檢查功能。
6) 執(zhí)行命令dhcp snooping check dhcp-rate rate,在接口或VLAN下配置DHCP 報(bào)文的上送速率。
7) 執(zhí)行命令dhcp snooping max-user-number max-user-number,配置接口或VLAN 下允許接入的最大用戶數(shù)。缺省情況下,交換機(jī)接口或VLAN 下允許接入的最大用戶數(shù)為32768。
3 運(yùn)用ACL抵御DHCP Server仿冒者攻擊
在有些場(chǎng)合,要求一機(jī)一認(rèn)證,這種情況下小路由器往往是當(dāng)作交換機(jī)用的,即不使用WAN端口接入。DHCP協(xié)議是基于物理網(wǎng)信任廣播的,如果你的路由器的DHCP功能若不關(guān)閉,會(huì)把自己作為網(wǎng)關(guān)發(fā)送這類廣播,給其他計(jì)算機(jī)分配地址,不經(jīng)意間就冒充了真正的網(wǎng)關(guān),造成劫持,成了DHCP Server仿冒者。而有些局域網(wǎng)設(shè)備不支持DHCP Snooping特性,無(wú)法抵御這類攻擊。這種情況下我們可以根據(jù)DHCP使用的UDP端口,配置訪問(wèn)控制策略,拒絕來(lái)自訪問(wèn)非DCHP Server接入端口的UDP67端口。
4 隔離端口防止DHCP攻擊
在有些網(wǎng)絡(luò)環(huán)境中,局域網(wǎng)內(nèi)的主機(jī)之間是無(wú)需互相通信的,這種情況下接入交換機(jī)上可以設(shè)置端口隔離。因?yàn)槎丝诟綦x后,連接在不同端口的計(jì)算機(jī)之間不能進(jìn)行通信,隔斷了局域網(wǎng)內(nèi)通過(guò)廣播傳播的病毒的傳播途徑。端口隔離技術(shù)在ISP寬帶接入中可以發(fā)揮重要作用。使用PVLAN技術(shù)也能起到相同的效果。
具體操作步驟:
1) 執(zhí)行命令system-view,進(jìn)入系統(tǒng)視圖。
2) 執(zhí)行命令port-isolate mode l2,配置端口隔離模式為二層隔離三層互通。
3) 執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖。
4) 執(zhí)行命令port-isolate enable group n,配置接口的隔離功能
5 結(jié)論
針對(duì)DHCP服務(wù)的攻擊主要有DHCP Server仿冒者攻擊和各種形式的DoS攻擊,網(wǎng)絡(luò)管理員可以根據(jù)網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)應(yīng)用需求,采取不同的安全策略,確保DHCP服務(wù)的正常運(yùn)行。使用ACL和端口隔離解決問(wèn)題的思路,也可用于其他服務(wù),如最近使用445等端口進(jìn)行傳播的勒索病毒以及一度猖獗的ARP病毒等。
參考文獻(xiàn):
[1] 孫雁杰,劉良. 基于DHCP SNOOPING的DHCP網(wǎng)絡(luò)部署[J].科技風(fēng),2017(3):93-114.
[2] 湯小康. 基于DHCP Snooping技術(shù)的校園網(wǎng)非法DHCP服務(wù)器的接入[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015(7):48-51.
[3] 唐磊. 端口隔離技術(shù)在校園網(wǎng)絡(luò)管理中的應(yīng)用[J]. 信息安全與技術(shù),2015(7):76-78.
[4] 劉小華. DHCP在校網(wǎng)應(yīng)用中的安全問(wèn)題及對(duì)策研究[J]. 計(jì)算機(jī)安全,2013(2):47-50.endprint