孫雁杰 劉良

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