李春平
(廣東白云學(xué)院大數(shù)據(jù)與計(jì)算機(jī)學(xué)院,廣州 510000)
DHCP是一種動態(tài)主機(jī)分配協(xié)議,可以為IP網(wǎng)絡(luò)中的主機(jī)自動分配IP 地址。由于DHCP 協(xié)議在安全功能方面沒有專門的定義,導(dǎo)致網(wǎng)絡(luò)中非授權(quán)的DHCP 服務(wù)器對外提供DHCP 服務(wù),網(wǎng)絡(luò)中的用戶主機(jī)一旦接受非授權(quán)的DHCP 服務(wù)器分配的無效IP 地址等參數(shù),將造成用戶端主機(jī)不能正常訪問網(wǎng)絡(luò)。解決的辦法是在局域網(wǎng)連接設(shè)備上實(shí)施DHCP Snooping 技術(shù),對授權(quán)的DHCP 服務(wù)器采取端口信任策略,對非授權(quán)的DHCP 服務(wù)器采取端口限制策略,阻止非授權(quán)的DHCP服務(wù)器提供DHCP offer及ACK報(bào)文。
用戶桌面主機(jī)IP地址的配置方式分為手工配置和自動獲取兩種方式。其中,手工配置是指用戶自己設(shè)置IP 地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)以及DNS服務(wù)器地址等參數(shù),這種配置方式要求用戶對本地網(wǎng)絡(luò)地址參數(shù)比較熟悉,否則容易出錯,導(dǎo)致不能正常連通網(wǎng)絡(luò),也可能導(dǎo)致IP地址沖突,影響其它用戶對網(wǎng)絡(luò)的訪問。而自動獲取是指通過DHCP 服務(wù)器獲取IP 地址和默認(rèn)網(wǎng)關(guān)、DNS地址等參數(shù),不需要用戶手工配置,其前提是網(wǎng)絡(luò)中必須有受信任的DHCP服務(wù)器。
如圖1 所示,DHCP 工作過程可分為如下幾個(gè)步驟:
圖1 DHCP工作原理
(1)DHCP 客戶端申請及服務(wù)器響應(yīng)??梢愿爬樗膫€(gè)階段:Client DHCPDISCOVER→server DHCPOFFER→Client DHCPREQUEST→server DHCPACK。成功后DHCP 服務(wù)器將IP 地址等參數(shù)以租約的形式發(fā)給客戶端。
(2)當(dāng)客戶端申請的租約到期時(shí),客戶端需重新申請IP 地址進(jìn)行續(xù)租。此時(shí)服務(wù)器端對客戶端續(xù)租申請進(jìn)行響應(yīng),同意續(xù)租,或?qū)⑿碌腎P地址參數(shù)發(fā)送給客戶端。
DHCP 報(bào)文在傳輸層通過UDP 進(jìn)行封裝,其對應(yīng)的服務(wù)端和客戶端UDP 端口分別為67,68,封裝格式如圖2所示。
圖2 DHCP報(bào)文格式
DHCP 報(bào)文報(bào)頭部分OP Code、Hardware Type、Hardware Address Length、Hops 四個(gè)字段各占一個(gè)字節(jié),報(bào)文內(nèi)容部分的CIADDR、YIADDR、SIADDR、GIADDR 四個(gè)字段各占四個(gè)字節(jié)。其中:
(1)OP Code 指明報(bào)文的操作類型,分為請求報(bào)文和應(yīng)答報(bào)文。
請求報(bào)文包括DHCP Discover、DHCP Request、DHCP Release、DHCP Inform 和DHCP Decline。
應(yīng)答報(bào)文包括DHCP Offer、DHCP ACK 和DHCP NAK。
(2)Hardware Type 指 明DHCP 客 戶 端 的MAC 地址類型,其值為1 時(shí)表示的是以太網(wǎng)MAC地址類型。
(3)Hardware Address Length 指明DHCP 客戶端的MAC 地址長度。其值為6 時(shí)表示的是以太網(wǎng)MAC地址長度為6個(gè)字節(jié)。
(4)Hops即跳數(shù),指明DHCP中繼代理的數(shù)目,默認(rèn)值為0。當(dāng)DHCP 客戶端和DHCP 服務(wù)器位于不同的網(wǎng)絡(luò)時(shí),需要中間設(shè)備提供DHCP中繼代理服務(wù),將來自客戶端的DHCP 請求報(bào)文以單播的形式重定向到DHCP服務(wù)器。
(5)DHCP 內(nèi) 容部 分 中的YIADDR 字段,DHCP 服務(wù)器分配給客戶端的IP 地址被封裝在這個(gè)字段中。
在局域網(wǎng)中,DHCP服務(wù)對終端用戶是透明的,即用戶并不清楚DHCP 服務(wù)器的來源。如果網(wǎng)絡(luò)中存在著多個(gè)DHCP服務(wù)器,將會給IP地址分配造成混亂,導(dǎo)致用戶不能獲得正確的IP地址。例如,仿冒者可以私自安裝并運(yùn)行DHCP服務(wù)程序,將自己偽裝成一臺為網(wǎng)絡(luò)中的用戶提供DHCP 服務(wù)的主機(jī)。用戶主機(jī)并不能辨別DHCP服務(wù)器的合法性,如果用戶主機(jī)第一個(gè)接收到的是來自仿冒DHCP 服務(wù)器發(fā)送的DHCP 提供報(bào)文,而這個(gè)報(bào)文中含有待分配給用戶主機(jī)的IP 地址、默認(rèn)網(wǎng)關(guān)以及DNS 服務(wù)器地址等參數(shù)。用戶主機(jī)如果接受這些IP 地址參數(shù)分配,將導(dǎo)致用戶主機(jī)無法正常訪問網(wǎng)絡(luò)。
為了阻斷非信任的DHCP 服務(wù)器提供DHCP服務(wù),可以在交換機(jī)上使用DHCP Snooping 技術(shù)。DHCP Snooping 是一種應(yīng)用在局域網(wǎng)上的DHCP安全特性,以太網(wǎng)交換機(jī)支持在每個(gè)虛擬局域網(wǎng)基礎(chǔ)上啟用DHCP Snooping 功能,從而實(shí)現(xiàn)對來自虛擬局域網(wǎng)域內(nèi)的所有非信任DHCP報(bào)文的攔截。
在DHCP Snooping 技術(shù)中,將交換機(jī)的端口分為信任(trusted)端口和非信任(untrusted)端口兩種類型。默認(rèn)情況下,交換機(jī)所有端口都是Untrusted 端口。在 進(jìn) 行DHCP Snooping 配 置時(shí),可以將與信任的DHCP 服務(wù)器相連的交換機(jī)端口配置為Trusted 端口,這樣交換機(jī)從Trusted 端口接收到的DHCP Offer 和DHCP ACK報(bào)文會正常轉(zhuǎn)發(fā),從而保證信任的DHCP 服務(wù)器報(bào)文能正常通過交換機(jī),將IP 地址及其它網(wǎng)絡(luò)參數(shù)分配給用戶主機(jī);而其它從Untrusted 非信任端口接收到的DHCP Offer 和DHCP ACK 報(bào)文,交換機(jī)根據(jù)DHCP Snooping 端口策略會直接丟棄,不再進(jìn)行轉(zhuǎn)發(fā)。這樣可以有效地阻止網(wǎng)絡(luò)中其它的仿冒DHCP 服務(wù)器提供的虛假服務(wù),從而阻斷非信任的DHCP 服務(wù)器分配無效的IP地址及其他網(wǎng)絡(luò)參數(shù)給用戶主機(jī)。
通過將授權(quán)的DHCP 服務(wù)器與交換機(jī)連接的端口設(shè)置為信任端口,其他交換機(jī)端口設(shè)置為非信任端口,可以有效防止仿冒的DHCP 服務(wù)器欺騙和攻擊網(wǎng)絡(luò)。DHCP Snooping 特性還可以對非信任端口的DHCP 報(bào)文進(jìn)行限速。默認(rèn)情況下每秒15 個(gè)DHCP 報(bào)文,通過重新定義報(bào)文速率,限制在每個(gè)非信任端口下DHCP 報(bào)文速率,可以有效阻止DHCP 客戶端的泛洪攻擊。
使用Cisco Packet Tracer 工具進(jìn)行仿真,拓?fù)鋱D如圖3所示。在以太網(wǎng)交換機(jī)上,分別連接有受信任的DHCP 服務(wù)器、非信任的DHCP 服務(wù)器以及DHCP客戶端。
圖3 dhcp-snooping拓?fù)鋱D
dhcp-snooping配置過程如下:
(1)DHCP 服務(wù)器配置。其中一臺是受信任的DHCP 服務(wù)器,另一臺是非信任的DHCP 服務(wù)器。配置兩臺服務(wù)器的IP 地址,trusted 為172.16.10.1/24,Untrusted為172.16.10.254/24。
(2)在兩臺設(shè)備上配置DHCP 地址池選項(xiàng),dhcp server功能置為ON。
trusted 服務(wù)器:網(wǎng)關(guān)、dns 設(shè)置為172.16.10.1,地址池起始地址為172.16.10.10,子網(wǎng)掩碼為255.255.255.0,地址個(gè)數(shù)為10 個(gè),配置好后保存。
Untrusted 服務(wù)器:網(wǎng)關(guān)、dns 設(shè)置為172.16.10.254,地址池起始地址為172.16.10.100 ,子網(wǎng)掩碼為255.255.255.0,地址個(gè)數(shù)為10 個(gè),配置好后保存。
(3)配置DHCP snooping
(4)驗(yàn)證DHCP snooping
從S1 交換機(jī)查看dhcp snooping 情況來看,來自f0/1端口的DHCP 服務(wù)是受信任的,其它端口的DHCP是受限制的。
3.3.1 DHCP客戶端請求
(1)dhcp-client 申 請 租 用IP 地 址。打 開dhcp-client 客戶端,在config 選項(xiàng)卡中將IP 地址設(shè)置為從DHCP獲得。此時(shí)dhcp-client將發(fā)送請求報(bào)文,經(jīng)過一段時(shí)間后,DHCP服務(wù)器進(jìn)行響應(yīng)并從地址池中分配IP 地址給dhcp-client 客戶端租用。由于網(wǎng)絡(luò)中有兩臺DHCP 服務(wù)器,其中一臺被設(shè)置為信任的服務(wù)器,即圖3 中的trusted 服務(wù)器,另一臺是受限制的服務(wù)器,即圖3中的untrusted服務(wù)器,交換機(jī)接受trusted服務(wù)器提供的動態(tài)IP 地址服務(wù),而將受限的untrusted服務(wù)器提供的DHCP offer報(bào)文丟棄。
仿真結(jié)果表明,dhcp-client 可以從trusted獲得地址,如圖4所示,dhcp-client 申請租用的IP地址為172.16.10.10。
圖4 dhcp-client申請租用的IP地址
在dhcp-client 客戶端命令行中使用ipconfig命令檢查本地IP 配置參數(shù),結(jié)果和圖4 中的IP地址是一致的,能夠從DHCP 服務(wù)器獲得正常的IP地址。
(2)受限制的DHCP 服務(wù)測試。關(guān)閉交換機(jī)f0/1 端口,此時(shí)trusted 服務(wù)器的網(wǎng)絡(luò)連接已斷開,dhcp-client 不能從trusted 服務(wù)器獲得IP 地址,也不能從untrusted 獲得IP 地址,因?yàn)閡ntrusted服務(wù)器被交換機(jī)設(shè)置為受限制的DHCP服務(wù)器。在dhcp-client 的命令行中輸入下列命令進(jìn)行測試:
此時(shí),dhcp-client 的IP 地址租約已釋放,IP地址顯示為空。輸入ipconfig/renew
命令重新獲取。
顯示DHCP 請求失敗。盡管網(wǎng)絡(luò)中有另一臺DHCP 服務(wù)器,但用戶并不能獲取到IP 地址,原因是來自untrusted 的DHCP 服務(wù)是受限制的,其提供的DHCP offer報(bào)文被交換機(jī)S1過濾掉了。
3.3.2 DHCP服務(wù)器響應(yīng)
重新激活交換機(jī)S1 的f0/1 端口,在Cisco Packet Tracer 工具的模擬運(yùn)行中,跟蹤DHCP 數(shù)據(jù)包事件列表,該事件列表將所有的DHCP 數(shù)據(jù)包經(jīng)過的節(jié)點(diǎn)以發(fā)生的時(shí)間先后順序逐條記錄,從列表中可以清晰分析出DHCP 傳輸路徑,dhcp-client客戶端發(fā)送的DHCP 請求以廣播的形式,經(jīng)交換機(jī)S1 分別向trusted 和untrusted 服務(wù)器發(fā)送,其結(jié)果是untrusted 服務(wù)器的DHCP 響應(yīng)被S1 交換機(jī)阻斷了,而trusted 服務(wù)器的響應(yīng)被正常送到dhcp-client客戶端,如圖5所示。
圖5 DHCP事件
打開S1送達(dá)給dhcp-client客戶端的數(shù)據(jù)包,其PDU 內(nèi)容如圖6 所示,在第3層內(nèi)容中,顯示源地址是172.16.10.1,此地址是trusted 服務(wù)器地址,證明提供給dhcp-client客戶端的DHCP服務(wù)來自信任的trusted服務(wù)器。
圖6 dhcp-client PDU信息
進(jìn)一步研究DHCP 數(shù)據(jù)包內(nèi)容,顯示trusted服務(wù)器分配給dhcp-client 客戶端的IP 地址是172.16.10.10,這是trusted 服務(wù)器地址池里的第一個(gè)IP地址,如圖7所示。
圖7 dhcp-client PDU中DHCP內(nèi)容
仿真結(jié)果表明,dhcp-client 客戶端可以從信任的trusted 服務(wù)器獲得IP 地址,即使關(guān)閉f0/1 接 口,trusted 服務(wù)器 連 接斷開,dhcp-client 也不能從受限的untrusted 服務(wù)器獲得IP 地址,從而阻斷了來自非授權(quán)的DHCP服務(wù)器的欺騙。
在以太網(wǎng)環(huán)境中,DHCP Snooping 技術(shù)不僅可以解決網(wǎng)絡(luò)中用戶主機(jī)IP 地址自動分配的問題,同時(shí)可阻止DHCP 服務(wù)器仿冒欺騙和泛洪攻擊帶來的網(wǎng)絡(luò)安全等問題。在具體實(shí)施過程中,可通過在交換機(jī)上實(shí)施端口信任機(jī)制,阻止非授權(quán)的DHCP 服務(wù)器提供的非法DHCP 服務(wù),保護(hù)授權(quán)的DHCP 服務(wù)。DHCP Snooping 技術(shù)對于局域網(wǎng)中用戶主機(jī)和DHCP 服務(wù)器之間的安全通信提供了一種自動化識別和防范手段,有效減輕了網(wǎng)絡(luò)管理員維護(hù)和管理網(wǎng)絡(luò)的成本,提高了網(wǎng)絡(luò)安全性和可用性。