孫雁杰 劉良
摘 要:在公司或企業(yè)內(nèi)部網(wǎng)絡(luò)中,為了更好的管理用戶的IP地址分配,通常讓用戶自動(dòng)獲取IP地址。這種技術(shù)就稱為動(dòng)態(tài)的主機(jī)計(jì)算機(jī)分配協(xié)議,傳輸層協(xié)議使用UDP, 用來給lan網(wǎng)絡(luò)的用戶分配IP地址。DHCP因?yàn)镮P地址管理的方便而被廣泛采用。
關(guān)鍵詞:服務(wù)器;網(wǎng)絡(luò)部署
在DHCP服務(wù)的管理和運(yùn)營上,通常也會(huì)產(chǎn)生一些問題,比如:DHCP Server的冒充,有可能是有意的也可能是無意的;DHCP的服務(wù)器也會(huì)受到攻擊,比如說最常見的DOS攻擊,或者是DHCP耗盡攻擊;有些用戶使用手動(dòng)配置IP地址的方式,隨意配置IP地址,通常會(huì)導(dǎo)致LAN網(wǎng)絡(luò)內(nèi)的IP地址沖突,影響用戶正常使用。下面,我們來詳細(xì)探討以上問題:
1 山寨DHCP服務(wù)器
通常部署的DHCP服務(wù)器,在server和client之間沒有做相應(yīng)的安全措施。這時(shí),如果在網(wǎng)絡(luò)中出現(xiàn)一個(gè)山寨的DHCP服務(wù)器,它能夠接收client主機(jī)的地址分配請求,同時(shí)也可以為client主機(jī)分配IP地址。這種情況存在有意為之的,那危害就可能很大,存在用戶信息暴露的風(fēng)險(xiǎn);也有無意的,有用戶的路由器具備DHCP的功能,無意中打開該功能,會(huì)造成為其他用戶分配地址的情況,從而影響網(wǎng)絡(luò)的運(yùn)行。
2 如何防范對DHCP服務(wù)器的冒充MAC攻擊
一般來說,DHCP server需要檢查客戶端的硬件地址,這就需要檢查client發(fā)送的DHCP請求消息中的Client MAC address來分析客戶端的MAC address是否合法。在沒有MAC冒充的情況下,Client MAC address消息里攜帶的MAC ADDRESS與用戶的真實(shí)MAC address是一致的。網(wǎng)絡(luò)破壞者使用冒充MAC的方式向DHCP SERVER發(fā)送DHCP請求,這就是冒充MAC攻擊。
我們?nèi)绾畏婪赌??在Cisco 交換機(jī)中,可以通過配置交換機(jī)的端口安全屬性特性來實(shí)現(xiàn)。具體來說,就是針對端口,綁定地址,從而有效防范攻擊。
3 client主機(jī)不按規(guī)定私自配置IP地址
client主機(jī)在配置了DHCP服務(wù)的網(wǎng)絡(luò)中,也可以不使用DHCP的方式獲取IP地址。它可以使用手工配置IP地址的方式與網(wǎng)絡(luò)建立連接,這也是允許的。但是如果CLIENT主機(jī)不按規(guī)定私自配置IP地址,很容易與別的用戶的地址沖突,從而導(dǎo)致網(wǎng)絡(luò)故障。
針對以上可能存在的問題,我們必須采取一些措施來解決這些問題,因此,引入DHCP Snooping技術(shù)就顯得很有必要了。DHCP嗅探(snooping)是保障DHCP安全的一種屬性。在Cisco交換機(jī)配置中,支持針對VLAN來開通DHCP 嗅探(snooping)功能。開通這種功能后,交換機(jī)可以通過檢測VLAN中的DHCP消息,來判斷有沒有異常消息,從而保證DHCP服務(wù)的安全。
DHCP嗅探(snooping)根據(jù)使用不同把交換機(jī)端口分成兩種:
第一種是untrusted Port:這種端口是用來連接普通用戶的,例如client PC,打印機(jī)等;第二種是trusted port:此端口連接網(wǎng)絡(luò)認(rèn)可的DHCPserver或者連接匯聚交換機(jī),匯聚交換機(jī)可能連接DHCP server。
開通DHCP嗅探(snooping)功能后,連接在交換機(jī)上的untrusted Port,只允許發(fā)送DHCP請求,過濾掉來自用戶端口的所有其它DHCP報(bào)文。DHCP仿冒的問題就輕松解決了。
那我們怎么解決DHCP耗盡攻擊呢?雖然來自用戶端口的DHCP請求可以被允許通過,交換機(jī)還會(huì)做另外一項(xiàng)檢查工作,比對DHCP 請求消息里攜帶的源MAC地址和DHCP client主機(jī)的MAC地址,兩個(gè)地址一致才可以繼續(xù)轉(zhuǎn)發(fā),不一致就會(huì)丟掉。DHCP耗盡攻擊就避免了。
trusted port可以接收全部的DHCP消息。網(wǎng)絡(luò)中合法的DHCP服務(wù)器一定要連接到交換機(jī)的trusted port,別的端口設(shè)置為intrusted port。山寨DHCP服務(wù)器發(fā)出的DHCP請求會(huì)被過濾掉,不會(huì)影響用戶的正常使用。
DHCP的網(wǎng)絡(luò)部署,網(wǎng)絡(luò)拓?fù)鋱D如下:
圖中,DHCPServer作為服務(wù)器,為PC客戶分配動(dòng)態(tài)IP地址,DHCPRelay作為中繼,SWITCH是接入側(cè)的交換機(jī),PCclient是用路由器來模擬客戶端PC機(jī),具體配置如下:
3.1 DHCPServer數(shù)據(jù)設(shè)置
ip dhcp excluded-address 10.2.100.1,將10.2.100.1排除,同樣排除10.2.100.253,10.2.100.254。
配置名字為DHCP的服務(wù):ip dhcp pool DHCP
配置網(wǎng)段:network 10.2.100.0 255.255.255.0
設(shè)置網(wǎng)關(guān)的地址:default-router 10.2.100.1
設(shè)置DHCP配置,地址池組里共包含10.2.100.0/24地址可供分配,排除掉10.2.100.1/253/254不能分配,默認(rèn)網(wǎng)關(guān)的地址是10.2.100.1。
3.2 DHCPRelay配置
interface Vlan100
ip dhcp relay information trusted
ip address 10.2.100.1 255.255.255.0
ip helper-address 10.255.1.15
VLAN100是連接SWITCH的端口,在該端口上配置了DHCP relay的信任端口配置,可以進(jìn)行DHCP消息的中級轉(zhuǎn)發(fā);ip helper-address 10.255.1.15,是配置了DHCP服務(wù)器的loopback地址。
3.3 SWITCH配置
Ip dhcp snooping
Ip dhcp snooping vlan 100
Interface portchannel1
Ip dhcp snooping trust
打開交換機(jī)的DHCP snooping功能,將portchannel1端口設(shè)置為trust端口,其他端口為非信任端口。通過建立信任端口和非信任端口,對非法DHCP服務(wù)器進(jìn)行隔離,信任端口正常轉(zhuǎn)發(fā)DHCP數(shù)據(jù)包,非信任端口收到的服務(wù)器響應(yīng)的DHCP offer和DHCPACK后,做丟包處理,不進(jìn)行轉(zhuǎn)發(fā)。
3.4 PCclient配置
Interface e0/0
Ip address dhcp
No shutdown
設(shè)置PC機(jī)的E0/0端口為連接交換機(jī)的端口,端口IP地址獲取方式為DHCP自動(dòng)獲取方式。
按照以上的配置進(jìn)行組網(wǎng)后,經(jīng)過測試,PC機(jī)可以正常獲取IP地址,地址范圍是10.2.100.0/24網(wǎng)段,可以進(jìn)行正常的互通。在SWITCH交換機(jī)的其他端口模擬開通非信任的DHCP服務(wù)器,可以正常屏蔽其DHCP server的功能,達(dá)到了DHCP snooping安全組網(wǎng)的預(yù)期。
參考文獻(xiàn):
[1] RFC 2131:動(dòng)態(tài)主機(jī)地址指配協(xié)議.
[2] RFC 3046:DHCP Relay Agent Information Option.