DHCP的防禦機制——DHCP Snooping(DHCP監聽)

DHCP Snooping(DHCP監聽)簡介

DHCP Snooping是DHCP(Dynamic Host Configuration Protocol)的一種安全特性,用於保證DHCP客戶端從合法的DHCP服務器獲取IP地址,並記錄DHCP客戶端IP地址與MAC地址等參數的對應關係,防止網絡上針對DHCP攻擊

目前DHCP協議(RFC2131)在應用的過程中遇到很多安全方面的問題,網絡中存在一些針對DHCP的攻擊,如DHCP Server仿冒者攻擊、DHCP Server的拒絕服務攻擊、仿冒DHCP報文攻擊等。

爲了保證網絡通信業務的安全性,可引入DHCP Snooping技術,在DHCP Client和DHCP Server之間建立一道防火牆,以抵禦網絡中針對DHCP的各種攻擊。

好處

  • 設備具有防禦網絡上DHCP攻擊的能力,增強了設備的可靠性,保障通信網絡的正常運行。通過這種特性,交換機能夠攔截第二層VLAN域內的所有DHCP報文。
  • 爲用戶提供更安全的網絡環境,更穩定的網絡服務。

DHCP Snooping原理描述

DHCP監聽將交換機端口劃分爲兩類:

  • 信任端口:正常接收DHCP服務器響應的DHCP ACK、DHCP NAK和DHCP Offer報文。連接合法DHCP服務器的端口或者連接匯聚交換機的上行端口。
  • 非信任端口:只能夠發送DHCP請求,丟棄來自非信任端口的所有其它DHCP報文。通常爲連接終端設備的端口,如PC,網絡打印機等。

信任端口功能

通過開啓DHCP Snooping特性,交換機限制非信任端口(用戶端口)只能夠發送DHCP請求,丟棄來自用戶端口的所有其它DHCP報文,例如DHCP Offer報文等。而且並非所有來自非信任端口的DHCP請求都被允許通過,交換機還會比較DHCP 請求報文的(報文頭裏的)源MAC地址和(報文內容裏的)DHCP客戶機的硬件地址(即CHADDR字段),只有這兩者相同的請求報文才會被轉發,否則將被丟棄。這樣就防止了DHCP拒絕服務攻擊

信任端口可以接收所有的DHCP報文。通過只將交換機連接到合法DHCP服務器的端口設置爲信任端口,其他端口設置爲非信任端口,就可以防止用戶僞造DHCP服務器來攻擊網絡。DHCP監聽特性還可以對端口的DHCP報文進行限速。通過在每個非信任端口下進行限速,將可以阻止合法DHCP請求報文的廣播攻擊

DHCP監聽表

DHCP監聽還有一個非常重要的作用就是建立一張DHCP監聽綁定表(DHCP Snooping Binding)。一旦一個連接在非信任端口的客戶端獲得一個合法的DHCP Offer,交換機就會自動在DHCP監聽綁定表裏添加一個綁定條目,內容包括了該非信任端口的客戶端IP地址、MAC地址、端口號、VLAN編號、租期等信息

  1. 爲了保證設備在生成DHCP Snooping綁定表時能夠獲取到用戶MAC等參數,DHCP Snooping功能需應用於二層網絡中的接入設備或第一個DHCP Relay上

  2. 非信任端口只允許客戶端的DHCP請求報文通過,這裏只是相對於DHCP報文來說的。其他非DHCP報文還是可以正常轉發的。這就表示客戶端可以以靜態指定IP地址的方式通過非信任端口接入網絡。由於靜態客戶端不會發送DHCP報文,所以DHCP監聽綁定表裏也不會有該靜態客戶端的記錄。

  3. 信任端口的客戶端信息不會被記錄到DHCP監聽綁定表裏

    如果有一客戶端連接到了一個信任端口,即使它是通過正常的DHCP方式獲得IP地址,DHCP監聽綁定表裏也不有該客戶端的記錄。如果要求客戶端只能以動態獲得IP的方式接入網絡,則必須藉助於IPSG和DAI技術。(DHCP監聽綁定表中的條目可以手工添加,無論是對信任端口還是非信任端口而言)

  4. 交換機爲了獲得高速轉發,通常只檢查報文的二層幀頭,獲得目標MAC地址後直接轉發,不會去檢查報文的內容。而DHCP監聽本質上就是開啓交換機對DHCP報文的內容部分的檢查,DHCP報文不再只是被檢查幀頭了

  5. 當交換機收到一個DHCPDECLINE或DHCPRELEASE廣播報文,並且報文頭的源MAC地址存在於DHCP監聽綁定表的一個條目中。但是報文的實際接收端口與綁定表條目中的端口字段不一致時,該報文將被丟棄。(防止DHCP仿冒者攻擊)

  6. DHCP監聽綁定表裏的Lease列就是每個客戶端對應的DHCP租約時間。當客戶端離開網絡後,該條目並不會立即消失。當客戶端再次接入網絡,重新發起DHCP請求以後,相應的條目內容就會被更新。

  7. DHCP Snooping綁定表根據DHCP租期進行老化或根據用戶釋放IP地址時發出的DHCP Release報文自動刪除對應表項。DHCP監聽綁定表在設備重啓後會丟失,需要重新綁定,但可以通過設置將綁定表保存在flash或者tftp/ftp服務器上,待設備重啓後直接讀取,而不需要客戶端再次進行綁定。

  8. DHCP監聽綁定表不僅用於防禦DHCP攻擊,還爲後續的IPSG和DAI技術提供動態數據庫支持。

DHCP 攻擊及其防範

DHCP Server仿冒者攻擊

攻擊原理

由於DHCP Server和DHCP Client之間沒有認證機制,所以如果在網絡上隨意添加一臺DHCP服務器,它就可以爲客戶端分配IP地址以及其他網絡參數。如果該DHCP服務器爲用戶分配錯誤的IP地址和其他網絡參數,將會對網絡造成非常大的危害。

解決方法:

爲了防止DHCP Server仿冒者攻擊,可配置設備接口的“信任(Trusted)/非信任(Untrusted)”工作模式

將與合法DHCP服務器直接或間接連接的接口設置爲信任接口,其他接口設置爲非信任接口。此後,從“非信(Untrusted)”接口上收到的DHCP迴應報文將被直接丟棄,這樣可以有效防止DHCP Server仿冒者的攻擊。

仿冒DHCP報文攻擊:

攻擊原理:

已獲取到IP地址的合法用戶通過向服務器發送DHCP Request或DHCP Release報文用以續租或釋放IP地址。如果攻擊者冒充合法用戶不斷向DHCP Server發送DHCP Request報文來續租IP地址,會導致這些到期的IP地址無法正常回收,以致一些合法用戶不能獲得IP地址;而若攻擊者仿冒合法用戶的DHCP Release報文發往DHCP Server,將會導致用戶異常下線。

解決方法:

爲了有效的防止仿冒DHCP報文攻擊,可利用DHCP Snooping綁定表的功能。設備通過將DHCP Request續租報文和DHCP Release報文與綁定表進行匹配操作能夠有效的判別報文是否合法(主要是檢查報文中的VLAN、IP、MAC、接口信息是否匹配動態綁定表),若匹配成功則轉發該報文,匹配不成功則丟棄。

DHCP Server服務拒絕攻擊:

攻擊原理:

若設備接口interface1下存在大量攻擊者惡意申請IP地址,會導致DHCP Server中IP地址快速耗盡而不能爲其他合法用戶提供IP地址分配服務。

另一方面,DHCP Server通常僅根據DHCP Request報文中的CHADDR(Client Hardware Address)字段來確認客戶端的MAC地址。如果某一攻擊者通過不斷改變CHADDR字段向DHCP Server申請IP地址,同樣將會導致DHCP Server上的地址池被耗盡,從而無法爲其他正常用戶提供IP地址。

DHCP拒絕服務攻擊攻擊可以是純粹的DOS攻擊,也可以與僞造的DHCP服務器配合使用。當正常的DHCP服務器癱瘓時,攻擊者就可以建立僞造的DHCP服務器來爲局域網中的客戶端提供地址,使它們將信息轉發給準備截取的惡意計算機。

甚至即使DHCP請求報文的源MAC地址和CHADDR字段都是正確的,但由於DHCP請求報文是廣播報文,如果大量發送的話也會耗盡網絡帶寬,形成另一種拒絕服務攻擊。

解決方法:

爲了抑制大量DHCP用戶惡意申請IP地址,在使能設備的DHCP Snooping功能後,可配置設備或接口允許接入的最大DHCP用戶數,當接入的用戶數達到該值時,則不再允許任何用戶通過此設備或接口成功申請到IP地址。

而對通過改變DHCP Request報文中的CHADDR字段方式的攻擊,可使能設備檢測DHCP Request報文幀頭MAC與DHCP數據區中CHADDR字段是否一致功能,此後設備將檢查上送的DHCP Request報文中的幀頭MAC地址是否與CHADDR值相等,相等則轉發,否則丟棄。

配置DHCP Snooping的攻擊防範功能:

配置DHCP Snooping的一些功能,防範DHCP的各種攻擊.

  1. 使能DHCP Snooping功能。
  2. 配置接口的信任狀態,以保證客戶端從合法的服務器獲取IP地址。(防範DHCP Server仿冒者攻擊)
  3. 使能ARP與DHCP Snooping的聯動功能,保證DHCP用戶在異常下線時實時更新綁定表。
  4. 使能對DHCP報文進行綁定表匹配檢查的功能。(防止仿冒DHCP報文攻擊)
  5. 配置允許接入的最大用戶數以及使能檢測DHCP Request報文幀頭MAC與DHCP數據區中CHADDR字段是否一致功能。(防止DHCP Server服務拒絕攻擊)
  6. 配置丟棄報文告警和報文限速告警功能。

DHCP Snooping支持的Option82功能:

概述:

在傳統的DHCP動態分配IP地址過程中,DHCP Server不能夠根據DHCP請求報文感知到用戶的具體物理位置,以致同一VLAN的用戶得到的IP地址所擁有的權限是完全相同的。由於網絡管理者不能對同一VLAN中特定的用戶進行有效的控制,即不能夠控制客戶端對網絡資源的訪問,這將給網絡的安全控制提出了嚴峻的挑戰。

RFC 3046定義了DHCP Relay Agent Information Option(Option 82),該選項記錄了DHCP Client的位置信息。DHCP Snooping設備或DHCP Relay通過在DHCP請求報文中添加Option 82選項,將DHCP Client的精確物理位置信息傳遞給DHCP Server,從而使得DHCP Server能夠爲主機分配合適的IP地址和其他配置信息,實現對客戶端的安全控制。

注意:

  • Option 82選項攜帶的用戶位置信息與DHCP Snooping綁定表記錄的用戶參數是兩個相互獨立的概念,沒有任何關聯。Option 82選項攜帶的用戶位置信息是在DHCP用戶申請IP地址時(此時用戶還未分配到IP地址),由設備添加到DHCP請求報文中。DHCP Snooping綁定表是在設備收到DHCP Server迴應的DHCP Ack報文時(此時已爲用戶分配了IP地址),設備根據DHCP Ack報文信息自動生成。

Option82包含兩個常用子選項Circuit ID和Remote ID

  • Circuit ID子選項主要用來標識客戶端所在的VLAN、接口等信息
  • Remote ID子選項主要用來標識客戶端接入的設備,一般爲設備的MAC地址。

設備作爲DHCP Relay時,使能或未使能DHCP Snooping功能都可支持Option82選項功能,但若設備在二層網絡作爲接入設備,則必須使能DHCP Snooping功能方可支持Option82功能。

Option 82選項僅記錄了DHCP用戶的精確物理位置信息並通過DHCP請求報文中將該信息發送給DHCP Server。而如果需要對不同的用戶部署不同的地址分配或安全策略,則需DHCP Server支持Option 82功能並在其上已配置了IP地址分配或安全策略。

實現:

  • Insert方式:當設備收到DHCP請求報文時,若該報文中沒有Option 82選項,則插入Option82選項;若該報文中含有Option82選項,則判斷Option82選項中是否包含remote-id,如果包含,則保持Option82選項不變,如果不包含,則插入remote id。
  • Rebuild方式:當設備收到DHCP請求報文時,若該報文中沒有Option82選項,則插入Option82選項;若該報文中含有Option82選項,則刪除該Option82選項並插入管理員自己在設備上配置的Option82選項。

對於Insert和Rebuild兩種方式,當設備接收到DHCP服務器的響應報文時,處理方式一致。

  • DHCP響應報文中有Option82選項:
    • 如果設備收到的DHCP請求報文中沒有Option82選項

      則設備將刪除DHCP響應報文中的Option82選項,之後轉發給DHCP Client。

    • 如果設備收到的DHCP請求報文中有Option82選項

      則設備將DHCP響應報文中的Option 82選項格式還原爲DHCP請求報文中的Option82選項,之後轉發給DHCP Client。

  • DHCP響應報文不含有Option82選項:直接轉發。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章