金海峰
(江陰職業(yè)技術(shù)學(xué)院,江蘇 江陰 214405)
隨著企業(yè)網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,尤其是智能手機(jī)、IPAD、無(wú)線筆記本,以及各種智能終端的普及與應(yīng)用,傳統(tǒng)手工配置IP地址的方式顯得不夠友好,管理工作量大,還極易造成IP地址沖突,影響終端的網(wǎng)絡(luò)應(yīng)用。DHCP作為一種典型的動(dòng)態(tài)IP地址分配協(xié)議,通過(guò)配置DHCP服務(wù)器,可以對(duì)全網(wǎng)IP地址集中管理、統(tǒng)一分配,極大簡(jiǎn)化了IP地址分配、管理工作,提高工作效率,同時(shí)也增強(qiáng)了用戶的網(wǎng)絡(luò)體驗(yàn)感。
動(dòng)態(tài)主機(jī)配置協(xié)議DHCP(Dynamic Host Configuration Protocol)提供了一種動(dòng)態(tài)分配IP地址的機(jī)制,DHCP使用C/S方式。當(dāng)一臺(tái)DHCP客戶端啟動(dòng)時(shí)(或者手動(dòng)開(kāi)啟地址更新進(jìn)程),就廣播一個(gè)DHCP DISCOVER報(bào)文,網(wǎng)絡(luò)中的DHCP服務(wù)器收到DHCP DISCOVER報(bào)文后,從本地地址池中選擇一個(gè)IP地址,以廣播方式發(fā)送DHCP OFFER報(bào)文給客戶端。DHCP客戶端收到DHCP OFFER報(bào)文后,發(fā)送DHCP QEQUEST報(bào)文,申請(qǐng)IP地址的使用權(quán)。最后,DHCP服務(wù)器發(fā)送DHCP ACK確認(rèn)地址分配。
DHCP DISCOVER報(bào)文是以廣播形式發(fā)送的,這就要求每個(gè)子網(wǎng)中必須部署有DHCP服務(wù)器,因?yàn)槿龑釉O(shè)備的接口不轉(zhuǎn)發(fā)廣播報(bào)文。如果需要部署一臺(tái)服務(wù)器同時(shí)面向多個(gè)子網(wǎng)提供服務(wù),就必須在三層設(shè)備上啟用DHCP RELAY功能,由三層設(shè)備負(fù)責(zé)轉(zhuǎn)發(fā)DHCP服務(wù)器與客戶端之間的DHCP報(bào)文[1]。
如圖1所示,實(shí)驗(yàn)依托仿真平臺(tái)HCL,選用PC主機(jī)、交換機(jī)、路由等設(shè)備,模擬DHCP網(wǎng)絡(luò)。其中交換機(jī)SW1模擬接入設(shè)備,交換機(jī)SW2作為核心設(shè)備,模擬三層通信,主要起到DHCP中繼代理的作用,DHCP服務(wù)器則是選用路由器來(lái)模擬。
圖1 實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)
主機(jī)、服務(wù)器以及網(wǎng)絡(luò)設(shè)備IP地址詳見(jiàn)表1所示。
表1 地址信息
參照?qǐng)D1和表1,完成交換機(jī) SW1、SW2和DHCP服務(wù)器-1、DHCP服務(wù)器-2各IP地址、Vlan的配置。
(1)交換機(jī)SW1的配置
以DHCP服務(wù)器-1為例,闡述DHCP服務(wù)器配置方法。
至此,全網(wǎng)連通性基本實(shí)現(xiàn)了,但是觀察主機(jī)Vlan221的地址分配情況,卻發(fā)現(xiàn)地址形式為169.254.0.0/16。169.254.0.0/16網(wǎng)段地址,一般出現(xiàn)于:DHCP客戶端發(fā)送的DHCP請(qǐng)求,沒(méi)有得到DHCP服務(wù)器的響應(yīng),即動(dòng)態(tài)分配失敗后,由系統(tǒng)自動(dòng)分配的地址。由此可見(jiàn),主機(jī)Vlan221發(fā)送的DHCP請(qǐng)求數(shù)據(jù)報(bào)可能在交換機(jī)SW2上被丟棄了,因?yàn)槿龑釉O(shè)備不轉(zhuǎn)發(fā)二層廣播包。
3.3.1 配置方法
DHCP中繼代理可以實(shí)現(xiàn)在不同子網(wǎng)之間處理和轉(zhuǎn)發(fā)DHCP信息[3]。
3.3.2 過(guò)程分析
啟動(dòng)抓包程序Wireshark,抓取交換機(jī)SW1的接口G1/0/1、交換機(jī)SW2的接口G1/0/1上的通信報(bào)文,報(bào)文信息分別如圖2、圖3所示。
圖2 接口SW1.G1/0/1上的DHCP報(bào)文
圖3 接口SW2.G1/0/1上的DHCP報(bào)文
分析圖2、圖3可以得知:主機(jī)Vlan221設(shè)置成動(dòng)態(tài)獲取IP地址后,該主機(jī)以廣播形式(圖2第1條報(bào)文,目標(biāo)地址為有限廣播地址255.255.255.255)發(fā)送DHCP DISCOVER報(bào)文,該廣播報(bào)文由交換機(jī)SW2轉(zhuǎn)發(fā)到DHCP服務(wù)器(圖3第1條報(bào)文),DHCP服務(wù)收到DHCP DISCOVER報(bào)文后(圖3第2條報(bào)文),以單播方式向交換機(jī)SW2發(fā)送DHCP OFFER報(bào)文,該報(bào)文再由SW2廣播給主機(jī)Vlan221(圖2第2條報(bào)文),后續(xù)的DHCP REQUEST、DHCP ACK報(bào)文也由中級(jí)代理交換機(jī)SW2轉(zhuǎn)發(fā)。
同時(shí),打開(kāi)圖2第1條和圖3第1條報(bào)文詳細(xì)信息(如圖4、圖5所示),不難發(fā)現(xiàn):DHCP客戶端通信端口為UDP68、DHCP中級(jí)代理和DHCP服務(wù)器通信端口為UDP67。在應(yīng)用了ACL的DHCP網(wǎng)絡(luò)中,必須依據(jù)端口號(hào)放行DHCP報(bào)文,否則會(huì)影響地址動(dòng)態(tài)分配。
圖4 主機(jī)發(fā)送的DHCP DISCOVER報(bào)文
圖5 中繼代理發(fā)送的DHCP DISCOVER報(bào)文
從圖5可以發(fā)現(xiàn),中繼代理轉(zhuǎn)發(fā)的DHCP DISCOVER報(bào)文中,盡管源地址為223.223.223.1,即SVI1的地址,但該報(bào)文中攜帶了中繼IP地址221.221.221.1,因此,DHCP服務(wù)器收到 DHCP DISCOVER報(bào)文后,發(fā)送DHCP OFFER的目標(biāo)地址為221.221.221.1。
DHCP網(wǎng)絡(luò)的安全性主要包括兩方面:非法DHCP服務(wù)器和非法DHCP客戶機(jī)。首先,非法DHCP服務(wù)器接入到網(wǎng)絡(luò)后,根據(jù)DHCP工作機(jī)制,誰(shuí)先相應(yīng)DHCP DISCOVER報(bào)文,就由誰(shuí)優(yōu)先負(fù)責(zé)分配地址。假設(shè)非法DHCP服務(wù)器所分配的網(wǎng)關(guān)地址均指向自身,則有可能造成DHCP客戶端發(fā)送的所有數(shù)據(jù)包都要經(jīng)過(guò)非法DHCP服務(wù)器,即非法DHCP服務(wù)器就獲取了該主機(jī)的報(bào)文,造成個(gè)人數(shù)據(jù)泄露。其次,攻擊主機(jī)通過(guò)修改DHCP請(qǐng)求報(bào)文中的chaddr字段,不停地發(fā)送偽請(qǐng)求,直到耗盡DHCP地址池,導(dǎo)致正常DHCP客戶端不能夠獲取地址,這種攻擊方式被稱(chēng)為DHCP饑餓攻擊。
DHCP Snooping是一種DHCP安全特性,在設(shè)備上開(kāi)啟DHCP Snooping后,DHCP請(qǐng)求報(bào)文通過(guò)信任接口發(fā)送到合法的DHCP服務(wù)器[4],可以有效阻止非法DHCP服務(wù)器。
3.4.1 禁止非法DHCP服務(wù)器
參照3.2配置,完成DHCP服務(wù)器-2的配置。在交換機(jī)SW1上啟用DHCP Snooping,配置方法如下:
[SW1]dhcp snooping enable
[SW1]int GigabitEthernet 1/0/24
[SW1-GigabitEthernet1/0/24]dhcp snoopingtrust
在交換機(jī)SW1上開(kāi)啟DHCP Snooping后,DHCP請(qǐng)求報(bào)文可以通過(guò)信任端口G1/0/24轉(zhuǎn)發(fā)出去,端口G1/0/11接受不到DHCP請(qǐng)求報(bào)文,從而有效阻止了非法DHCP服務(wù)器的接入。抓取交換機(jī)SW1上接口G1/0/11的報(bào)文,也可以驗(yàn)證確實(shí)沒(méi)有DHCP DISCOVER報(bào)文通過(guò)。
3.4.2 防止DHCP饑餓攻擊
在交換機(jī)SW1上開(kāi)啟DHCP Snooping,并在連接主機(jī)的接口上開(kāi)啟地址檢查功能,即當(dāng)DHCP請(qǐng)求報(bào)文中chaddr字段地址與源主機(jī)MAC地址一致時(shí),認(rèn)為是合法DHCP請(qǐng)求報(bào)文,進(jìn)行后續(xù)處理。如果不一致,則丟棄該報(bào)文[5]。
HCL仿真環(huán)境下無(wú)法模擬DHCP攻擊,此實(shí)驗(yàn)須在真實(shí)環(huán)境下,進(jìn)行測(cè)試。DHCP攻擊主機(jī)選用Kali,攻擊手段選用 DHCPx。
測(cè)試過(guò)程如下:
(1)開(kāi)啟DHCP攻擊
運(yùn)行命令:sudo dhcpx-ieth0,命令執(zhí)行結(jié)果如圖6所示。
圖6 Kali發(fā)起DHCP攻擊
(2)觀察DHCP服務(wù)器可用地址池
[DHCP-1]display dhcp server free-ip
IP Range from221.221.221.3 to221.221.221.254
稍等片刻后,重新觀察可用地址池,發(fā)現(xiàn)可用地址變少了,說(shuō)明DHCP攻擊生效了,IP地址池正在逐漸耗盡。
[DHCP-1]display dhcp server free-ip
IP Range from 221.221.221.6 to221.221.221.254
(3)配置防DHCP饑餓攻擊策略
[SW1]dhcp snooping enable
[SW1]int GigabitEthernet 1/0/24
[SW1-GigabitEthernet1/0/24]dhcp snooping trust[SW1]int GigabitEthernet 1/0/1
[H3C-GigabitEthernet1/0/1]dhcp snooping check mac-address
[H3C-GigabitEthernet1/0/1]dhcp snooping check request-message
[H3C-GigabitEthernet1/0/1]mac-address maxmac-count0
[H3C-GigabitEthernet1/0/1]undo mac-address max-mac-count enable-forwarding
[SW1]mac-address static 000c-29e9-fad4interface GigabitEthernet 1/0/1 Vlan 221
完成上述配置后,重新觀察地址池,發(fā)現(xiàn)地址池沒(méi)有任何變化,說(shuō)明DHCP饑餓攻擊失敗了。
由此可以得出結(jié)論:在主機(jī)接入交換器上啟用DHCP Snooping,在接入端口開(kāi)啟源地址、報(bào)文檢查功能,并設(shè)置接口動(dòng)態(tài)MAC地址表為0,即不允許非法源主機(jī)發(fā)送DHCP請(qǐng)求報(bào)文,而正常主機(jī)可以通過(guò)靜態(tài)添加到MAC地址表中,以便動(dòng)態(tài)獲取IP地址信息。由此可以有效阻止DHCP饑餓攻擊。
3.4.3 禁止靜態(tài)IP地址主機(jī)入網(wǎng)
為了避免IP地址沖突,強(qiáng)制要求DHCP網(wǎng)絡(luò)中所有主機(jī)必須動(dòng)態(tài)獲取地址,靜態(tài)配置IP地址的主機(jī)禁止入網(wǎng)。
[SW1]dhcp snooping enable
[SW1]int GigabitEthernet 1/0/1
[SW1-GigabitEthernet1/0/1]dhcp snooping binding record
[SW1]Vlan221
[SW1-Vlan-221]arp detection enable
[SW1]int GigabitEthernet 1/0/24
[SW1-GigabitEthernet1/0/24]arp detection trust
[SW1-GigabitEthernet1/0/24]dhcp snooping trust
下聯(lián)端口開(kāi)啟DHCP Snooping表項(xiàng)記錄功能,上聯(lián)端口配置成信任狀態(tài)后,主機(jī)Vlan221非法配置了靜態(tài)IP地址后,發(fā)現(xiàn)無(wú)法訪問(wèn)網(wǎng)絡(luò)。抓取交換機(jī)SW1的接口G1/0/1上的數(shù)據(jù)包,也可以發(fā)現(xiàn)ping數(shù)據(jù)包都沒(méi)有得到回應(yīng),即數(shù)據(jù)包丟失了。
使用DHCP服務(wù)可以避免手工配置IP地址造成的配置錯(cuò)誤、地址沖突,還可以減少手工配置花費(fèi)的開(kāi)銷(xiāo),提高網(wǎng)絡(luò)的使用時(shí)效。針對(duì)物理設(shè)備上分析、研究DHCP原理可操作性差,不利于教學(xué)問(wèn)題,在仿真環(huán)境下,以典型三層網(wǎng)絡(luò)架構(gòu)為應(yīng)用模型,給出DHCP基本配置、中繼代理、安全控制的詳細(xì)配置方法,并深入分析研究了DHCP工作原理、工作機(jī)制,使師生深刻理解了DHCP工作原理,掌握了DHCP配置方法和安全控制方式,實(shí)驗(yàn)教學(xué)效果良好。