1、非法DHCP帶來的災害:
一般公司內(nèi)部都會有一個DHCP服務器來給員工計算機提供必要的網(wǎng)絡參數(shù)信息的,例如IP地址,子網(wǎng)掩碼,網(wǎng)關,DNS等地址,很多情況路由器就可以擔當此重任。每次員工計算機啟動后都會向網(wǎng)絡中發(fā)送廣播包尋找DHCP服務器(前提是該計算機被設置為自動獲得IP地址),廣播包隨機發(fā)送到網(wǎng)絡中,當有一臺DHCP服務器收到這個廣播包后就會向該包源MAC地址的計算機發(fā)送一個應答信息,同時從自己的地址池中抽取一個IP地址分配給該計算機。
合法DHCP服務器可以提供正確的數(shù)據(jù),非法DHCP服務器則提供的是錯誤的數(shù)據(jù)。我們?nèi)绾巫寙T工機器都通過合法DHCP服務器獲得網(wǎng)絡信息呢?如果是交換式網(wǎng)絡則沒有可能,因為廣播包會發(fā)向網(wǎng)絡中的所有設備,合法還是非法服務器先應答是沒有任何規(guī)律的。這樣網(wǎng)絡就被徹底擾亂了,原本可以正常上網(wǎng)的機器再也不能連接到INTERNET。
2、消極防范:
既然廣播包會發(fā)向網(wǎng)絡中的所有設備,合法還是非法服務器先應答是沒有任何規(guī)律的,那么我們可以通過多次嘗試廣播包的發(fā)送來臨時解決這個問題,直到客戶機可以得到真實的地址為止。問題中網(wǎng)友使用的方法就是此手段。即先使用ipconfig /release釋放非法網(wǎng)絡數(shù)據(jù),然后使用ipconfig /renew嘗試獲得網(wǎng)絡參數(shù),如果還是獲得錯誤信息則再次嘗試/release與/renew直到得到正確信息。
不過這種方法治標不治本,反復嘗試的次數(shù)沒有保證,一般都需要十幾次甚至是幾十次,另外當DHCP租約到期后員工機需要再次尋找DHCP服務器獲得信息,故障仍然會出現(xiàn)。
3、官方提供的辦法:
一般我們使用的操作系統(tǒng)都是Windows,微軟為我們提供了一個官方解決辦法。在windows系統(tǒng)組建的網(wǎng)絡中,如果非法DHCP服務器也是用Windows系統(tǒng)建立的話我們可以通過“域”的方式對非法DHCP服務器進行過濾。
將合法的DHCP服務器添加到活動目錄(Active Directory)中,通過這種認證方式就可以有效的制止非法DHCP服務器了。原理就是沒有加入域中的DHCP Server在相應請求前,會向網(wǎng)絡中的其他DHCP Server發(fā)送DHCPINFORM查詢包, 如果其他DHCP Server有響應,那么這個DHCP Server就不能對客戶的要求作相應,也就是說網(wǎng)絡中加入域的DHCP服務器的優(yōu)先級比沒有加入域的DHCP服務器要高。這樣當合法DHCP存在時非法的就不起任何作用了。
授權合法DHCP的過程如下:
第一步:開始->程序->管理工具->DHCP
第二步:選擇DHCP root, 用鼠標右鍵單擊,然后瀏覽選擇需要認證的服務器。
第三步:點“添加”按鈕, 輸入要認證的DHCP服務器IP地址, 完成授權操作。
這種方法效果雖然不錯,但需要域的支持。要知道對于眾多中小企業(yè)來說“域”對他們是大材小用,基本上使用工作組就足以應對日常的工作了。所以這個方法是微軟推薦的,效果也不錯,但不太適合實際情況。另外該方法只適用于非法DHCP服務器是windows系統(tǒng),對非Windows的操作系統(tǒng)甚至是NT4這樣的系統(tǒng)都會有一定的問題。
4、路由交換設備上封殺:
有的路由交換設備自身功能比較強,例如具有extreme功能,他可以自動抑制非法dhcp的數(shù)據(jù)包。如果沒有extreme功能我們?nèi)绾翁崆邦A防非法DHCP服務器的接入呢?
首先需要對DHCP數(shù)據(jù)包使用的端口有所了解,DHCP服務主要使用的是UDP的67和68端口,服務器端應答數(shù)據(jù)包使用68端口,67端口為客戶機發(fā)送請求時使用。所以我們可以在路由器和交換機上通過訪問控制列表來屏蔽除合法DHCP服務器以外的所有DHCP應答包,也就是說將68端口封閉。具體命令為“access-list 108 deny udp any eq 68 any”。(如圖1)
498)this.style.width=498;" border=1>
圖1
這種方法也同樣只對于WINDOWS操作系統(tǒng)的DHCP服務器有效,對于在其他操作系統(tǒng)上建立的DHCP服務器則無法完全過濾。而且大量的ACL也會降低路由交換設備的性能,使網(wǎng)絡速度受到一定的影響。
5、另類方法干擾非法DHCP服務器:
在實際使用中筆者發(fā)現(xiàn)了一個另類的方法,該方法和上面介紹的消極防范結(jié)合起來使用效果還算不錯。這個方法就是只要知道非法的DHCP的IP,找臺電腦設置和他同樣的IP,能降低非法DHCP發(fā)放的數(shù)量,這樣在執(zhí)行ipconfig /release和ipconfig /renew時獲得合法網(wǎng)絡信息的概率大大提高。
6、行政方法:
其實和眾多網(wǎng)絡管理方法一樣,制定規(guī)范合理嚴格的規(guī)章制度是減小網(wǎng)絡故障產(chǎn)生的最好手段。我們可以通過制度來約束網(wǎng)絡中非法服務的產(chǎn)生,對于提供非法服務的用戶給予行政上的處罰。
7、實打?qū)嵠帘畏欠―HCP服務器:
文章的最后筆者將帶領各位讀者進行一次實打?qū)嵉姆欠―HCP服務器屏蔽工作。
第一步:知道了非法DHCP服務器的IP地址后使用ping -a ip來反向查看他的計算機主機名。
第二步:根據(jù)ARP命令查詢該計算機對應的MAC地址,也可以到合法DHCP服務器上查看緩存池中該IP對應的MAC地址。
提示:屏蔽非法DHCP服務器一定要從MAC地址來入手,因為IP地址可以修改而且自動獲得IP的方法很多,獲得的參數(shù)也會產(chǎn)生變化。
第三步:知道了MAC地址后登錄交換機執(zhí)行sh mac address顯示所有MAC地址與交換機端口的對應關系。(如圖2)
498)this.style.width=498;" border=1>
圖2
第四步:我們就可以從顯示的對應關系列表中查看到該MAC對應的端口號了,如果端口比較多還可以使用“sh mac address add 0011.5b5c.6214” 這樣的格式來查詢0011.5b5c.6214這個MAC地址對應的端口。(如圖3)
498)this.style.width=498;" border=1>
圖3
第五步:找到對應的端口后通過int命令進入該接口,然后使用shutdown關閉該接口,從而阻斷了該計算機與外界的聯(lián)系。(如圖4)
498)this.style.width=498;" border=1>
圖4
這種方法存在一個問題,那就是如果使用的是集線器連接下方設備時,會在交換機上的一個端口學習到多個MAC地址,如果我們直接將該端口通過shutdown命令關閉的話,則集線器連接的所有設備都無法使用網(wǎng)絡了。遇到這種情況我們可以使用基于MAC地址的訪問控制列表來控制。具體命令為:
mac accesss-list extended softer
deny host 0011.5b5c.6214 any
permit any any
然后在進入非法DHCP所在的交換機端口執(zhí)行mac access-group softer in即可。
設置完畢后就阻止了MAC地址為0011.5b5c.6214的計算機對外網(wǎng)的訪問,而又不影響連接到同一臺集線器上的其他設備。(如圖5)
498)this.style.width=498;" border=1>
圖5
總結(jié):網(wǎng)絡管理充斥著非法使用網(wǎng)絡者帶來的危機,所以在平時就要對網(wǎng)絡結(jié)構(gòu)進行合理的規(guī)劃,對網(wǎng)絡參數(shù)的設置也要保留有詳細的備案信息。這樣當問題發(fā)現(xiàn)后我們就可以迅速的根據(jù)保留的數(shù)據(jù)第一時間發(fā)現(xiàn)問題的關鍵點。