複製鏈接
請複製以下鏈接發送給好友

DHCP Snooping

鎖定
DHCP SnoopingDHCP 的一種安全特性,主要應用在 交換機 上,作用是屏蔽接入網絡中的非法的 DHCP 服務器。即開啓 DHCP Snooping 功能後,網絡中的客户端只有從管理員指定的 DHCP 服務器獲取 IP 地址。由於 DHCP 報文缺少認證機制,如果網絡中存在非法 DHCP 服務器,管理員將無法保證客户端從管理員指定的 DHCP服務器獲取合法地址,客户機有可能從非法 DHCP 服務器獲得錯誤的 IP 地址等配置信息,導致客户端無法正常使用網絡。啓用 DHCP Snooping 功能後,必須將 交換機上的端口設置為信任(Trust)和非信任(Untrust)狀態,交換機 只轉發信任端口的 DHCP OFFER/ACK/NAK報文,丟棄非信任端口的 DHCP OFFER/ACK/NAK 報文,從而達到阻斷非法 DHCP 服務器的目的。建議將連接 DHCP 服務器的端口設置為信任端口,其他端口設置為非信任端口。此外 DHCP Snooping 還會監聽經過本機的 DHCP 數據包,提取其中的關鍵信息並生成 DHCP Binding Table 記錄表,一條記錄包括 IP、MAC、租約時間、端口、VLAN、類型等信息,結合 DAI(Dynamic ARP Inspection)和 IPSG(IP Source Guard)可實現ARP防欺騙和IP流量控制功能。
中文名
DHCP安全特性
外文名
DHCP Snooping
主要作用
隔絕非法的dhcp server
應    用
對網絡安全要求高的單位等

DHCP Snooping介紹

交換機開啓了 DHCP-Snooping後,會對DHCP報文進行偵聽,並可以從接收到的DHCP Request或DHCP Ack報文中提取並記錄IP地址和MAC地址信息。另外,DHCP-Snooping允許將某個物理端口設置為信任端口或不信任端口。信任端口可以正常接收並轉發DHCP Offer報文,而不信任端口會將接收到的DHCP Offer報文丟棄。這樣,可以完成交換機對假冒DHCP Server的屏蔽作用,確保客户端從合法的DHCP Server獲取IP地址。

DHCP Snooping作用

1.dhcp-snooping的主要作用就是隔絕非法的dhcp server,通過配置非信任端口。
2.與交換機DAI的配合,防止ARP病毒的傳播。
3.建立和維護一張dhcp-snooping的綁定表,這張表一是通過dhcp ack包中的ip和mac地址生成的,二是可以手工指定。這張表是後續DAI(dynamic arp inspect)和IPSource Guard 基礎。這兩種類似的技術,是通過這張表來判定ip或者mac地址是否合法,來限制用户連接到網絡的。
4.通過建立信任端口和非信任端口,對非法DHCP服務器進行隔離,信任端口正常轉發DHCP數據包,非信任端口收到的服務器響應的DHCP offer和DHCPACK後,做丟包處理,不進行轉發。

DHCP Snooping機制概述

DHCP 都非常熟悉了,對於 DHCP 客户端而言,初始過程中都是通過發送廣播的 DHCP discovery 消息尋找 DHCP 服務器,然而這時候如果內網中存在私設的 DHCP 服務器,那麼就會對網絡造成影響,例如客户端通過私設的 DHCP 服務器拿到一個非法的地址,最終導致 PC 無法上網。
在 DHCP snooping 環境中(部署在交換機上),我們將端口視為 trust 或 untrust 兩種安全級別,也就是信任或非信任接口。在交換機上,將連接合法 DHCP 服務器的接口配置為 trust 。只有 trust 接口上收到的來自 DHCPserver 的報文(如 DHCPOFFER、DHCPACK、DHCPNAK 或者 DHCPLEASEQUERY)才會被放行,相反,在 untrust 接口上收到的來自 DHCPserver 的報文將被過濾掉,這樣一來就可以防止非法的 DHCPserver 接入。同時在部署了 DHCP Snooping 的交換機本地,還能維護一張 DHCP snooping 的綁定數據庫(binding database),用於保存偵聽到的 DHCP 交互的表項,信息包括(針對 untrust 接口的):MAC 地址、IP 地址(DHCP 分配的)、租期、綁定類型、VLAN 號、接口編號(DHCP 客户端也就是連接客户端 PC 的 untrust 接口)。這個 DHCP snooping binding database 除了可以做一些基本的安全接入控制,還能夠用於 DAI 等防 ARP 欺騙的解決方案。
一台支持 DHCP snooping 的交換機,如果在其 untrust 接口上,收到來自下游交換機發送的、且帶有 option 82 的 DHCP 報文,則默認的動作是丟棄這些報文。如果該交換機開啓了 DHCP snooping 並且帶有 option 82 的 DHCP 報文是在 trusted 接口上收到的,則交換機接收這些報文,但是不會根據報文中包含的相關信息建立 DHCP binding database 表項 [1] 
如果交換機確實通過一個 untrust 接口連接了下游交換機,並且希望放行該接口收到的、下游交換機發送出來的帶有 option 82 的 DHCP 報文,則可使用全局命令:ip dhcp snooping information option allow-untrusted,同時由於是通過 untrust 接口收到的 DHCP 報文,因此會根據偵聽的結果創建 DHCP snooping binding database 表項。

DHCP Snooping配置

以Cisco交換機為例: [2] 
switch(config)#ip dhcp snooping
switch(config)#ip dhcp snooping vlan 10
/*在Vlan10啓用dhcp snooping
switch(config-if)#ip dhcp snooping limit rate 10
/*dhcp包的轉發速率,超過後接口就shutdown,默認不限制;
switch(config-if)#ip dhcp snooping trust
/*這樣這個端口就變成了信任端口,信任端口可以正常接收並轉發DHCP Offer報文,不記錄ip和mac地址的綁定,默認是非信任端口"
switch#ip dhcp snooping binding 0009.3452.3ea4 vlan 7 192.168.10.5 interface gi1/0/10
/*這樣可以靜態ip和mac一個綁定;
switch(config)#ip dhcp snooping database tftp:// 10.1.1.1/dhcp_table
/*因為掉電後,這張綁定表就消失了,所以要選擇一個保存的地方,ftp,tftp,flash皆可。本例中的dhcp_table是文件名,而不是文件夾,同時文件名要手工創建一個。
show ip dhcp snooping
/*顯示DHCP探測狀態*/

DHCP Snooping防止ARP污染

DHCP snooping還可以跟蹤主機的物理位置,從而可以防禦(ARP)緩存污染攻擊。它在防禦這些攻擊的過程中發揮重要作用,因為您可以使用DHCP snooping技術丟棄一些來源與目標MAC地址不符合已定義規則的DHCP消息。管理會收到通過DHCP snooping警報通知的違規行為。當DHCP snooping服務檢測到違規行為時,它會在系統日誌服務器上記錄一條消息“DHCP Snooping”。
DHCP snooping是實現2層協議流量安全性的第一步。惡意DHCP服務器不僅會導致網絡問題,它們還可以被攻擊者用於轉發敏感流量和發起中間人攻擊。如果還沒有做好這些措施,那麼一定要考慮實現這些防禦措施,保證網絡基礎架構的安全性 [3] 

DHCP Snooping應用場景

(1)對網絡安全要求程度比較高和對IP地址管理有一定需求的單位,如xx煙草、XX電網等
(2)此策略應配置在接入層交換機當中。其中,在交換機上聯端口以及聚合端口需配置為信任端口,需靜態IP的端口需開啓信任!

DHCP Snooping交換機DHCP Snooping

DHCP Snooping案例配置拓撲

交換機DHCP Snooping配置拓撲 交換機DHCP Snooping配置拓撲

DHCP Snooping案例配置需求

1、 配置PC1、PC2屬於VLAN10;
2、 在SW2上創建VLAN 10,將F0/1、F0/2端口劃分到VLAN 10;
3、 配置SW1 F0/23和SW2 F0/23 為Trunk鏈路,封裝協議使用dot1q;
4、 配置SW2 F0/1 屬於VLAN 20;
5、 配置SW2的VLAN 10 IP地址為192.168.10.254/24,VLAN 20的IP地址為192.168.20.254/24;
6、 配置DHCP Server地址為192.168.10.1,網關為192.168.20.254;
7、 配置DHCP POOL,為PC 分配IP地址;
8、 在SW2 上啓用DHCP Snooping,防止Attacker DHCP 欺騙攻擊;

DHCP Snooping案例配置思路

1、 在SW2上創建VLAN 10,並將F0/1、F0/2劃分到VLAN 10。
2、 配置SW1 F0/23和SW2 F0/23 為Trunk鏈路,封裝協議使用dot1q。
3、 配置SW2 F0/1 屬於VLAN 20。
4、 配置SW2的VLAN 10 IP地址為192.168.10.254/24,VLAN 20的IP地址為192.168.20.254/24。
5、 配置DHCP Server地址為192.168.10.1,網關為192.168.20.254。
6、 配置DHCP POOL,為PC 分配IP地址。
7、 在SW2 上啓用DHCP Snooping,防止Attacker DHCP 欺騙攻擊。
8、 配置PC,動態獲取IP地址。

DHCP Snooping注意事項

若交換機下聯有Hub、路由器等設備,若網絡中有靜態IP地址存在,配置snooping+dai以後會造成小範圍內多個用户不能上網。因此建議先在交換機開啓snooping,觀察網絡沒有異常以後,逐個vlan開啓DAI功能。
參考資料