HCNP Routing&Switching之ARP安全

  前文我們了解了IP安全相關話題,回顧請參考//www.cnblogs.com/qiuhom-1874/p/16652367.html;今天我們來聊一聊ARP安全相關話題;

  什麼是ARP?

  ARP是Address Resolution Protocol的首字母縮寫,翻譯成中文就是地址解析協議;它主要是將ip地址解析成對應設備的mac地址;我們知道乙太網設備之間通訊都是需要二層mac地址的封裝;那麼我們平常配置的ip地址給設備,它是怎麼和對端通訊的呢?首先本端要發送ARP請求通訊目標mac地址(如果本地ARP快取表裡沒有對應條目的情況下,如果有就直接封裝本端mac和ip地址為源mac和源ip,把對端的mac和ip封裝成目標mac和目標ip);只有對端回復了arp請求以後,本端就會將arp回復報文中的源mac當作對應通訊目標的mac,並將對應資訊存入arp快取表中,以備後續再次通訊使用;簡單講ARP就是根據IP地址獲取mac地址的TCP/IP協議;ARP協議有一個特點,區域網絡上的主機可以自主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP快取;這樣一來非法主機在區域網里惡意發送偽造的arp應答報文,就會對應網路造成影響;

  ARP工作環境

  提示:arp主要工作在主機與主機之間,或者主機和網關之間,通常都是在同一vlan下,不會垮網段;

  ARP主要攻擊方式和危害

  1、仿冒網關:所謂仿冒網關就是以網關的口吻欺騙其他主機;告訴其他主機自己就是網關;讓其他主機誤以為攻擊者就是網關;

  提示:如上圖所示,主機A向主機B發送arp回復報文說,網關的mac地址為222,主機B收到此報文後,會將原來在自己的arp快取表裡的對應條目的mac地址給覆蓋掉,這樣一來帶來的後果是,主機B和正常的網關通訊就中斷了;主機B和網關的通訊會統統發送給主機A;

  2、欺騙網關:所謂欺騙網關就是冒充合法主機的口吻向網關發送非法arp回復報文;讓網關誤以為攻擊者就是真正的合法主機;

  提示:如上圖所示,主機A向網關發送,主機B的mac為555,網關收到此報文後,會將主機的arp快取表更新為對應收到的arp應答報文里的mac;這樣一來網關和真正合法主機的通訊就會中斷;

  3、欺騙主機:所謂欺騙主機就是冒充合法主機向另一主機發送非法的arp應答報文,讓另一主機誤以為攻擊者就是通訊的對端;

  提示:如上圖所示,主機A欺騙主機C,說主機B的MAC為555,主機C收到此報文後,會更新自己的arp快取表,將正常主機B的mac地址給覆蓋掉;這樣一來主機C就不能正常和真正的主機B通訊;

  中間人攻擊

  提示:所謂中間人攻擊就是仿冒網關、欺騙網關的結合;對於網關來說,攻擊者就是合法的主機(欺騙網關);對於合法主機來說,攻擊者就是網關(仿冒網關);正常主機B和網關的通訊會先發送給攻擊者,然後被攻擊者捕獲,然後再由攻擊者再次封裝將對應請求發送給網關;網關回包也是先將包回復給攻擊者,被攻擊者捕獲以後再封裝發送給合法主機;對於合法主機來說它是沒有任何感知的;上圖是主機A和主機B都被非法主機雙向欺騙;

  ARP MISS

  所謂ARP miss就是指網路中用戶向設備發送目標ip不能正常解析的ip報文(即路由表中存在對應IP報文的目標ip地址路由表項,但沒有對應路由下一跳的arp表項);這種觸發arp miss消息的ip報文我們就成為arp miss報文,即arp miss報文會被上傳到cpu處理;設備根據arp miss消息生成和下發臨時arp表項並向目標的網路發送arp請求報文,這樣就增加了設備cpu的負擔,同時消耗目標網路的頻寬資源;

  提示:如上圖所示,攻擊者發送不能正常解析的ip報文給交換機(如在區域網里不存在的ip),交換機收到以後,不能正常獲取到mac地址,此時就會觸發ARP MISS消息,同時會向目標網路發送arp請求消息;交換機收到不能正常解析的ip報文觸發arp miss消息加劇設備cpu的負擔,同時向目標網路發送arp請求,佔用目標網路的網路頻寬;雖然少量的arp請求不能對網路造成什麼影響,如果有人惡意發送大量的不能解析的ip報文,就會對設備cpu和目標網路的頻寬造成極大的影響;

  ARP攻擊防禦措施

  1、ARP防網關衝突:該技術的應用場景主要是防止有人惡意冒充網關;主要工作原理是我們在交換機上開啟了這項功能以後,如果ARP報文的源ip地址與報文入介面對應的VLANIF介面IP地址相同;或者ARP報文的源IP地址是入介面的虛擬IP地址,但ARP報文的源MAC地址不是VRRP的虛擬MAC;即上述兩種情況都是攻擊者在冒充網關的ip地址進行攻擊;交換機收到此類報文就會認為該ARP報文和網關地址衝突,交換機將生成ARP防攻擊表項,並在後續的一段時間內丟棄該介面收到的同VLAN以及同源MAC地址的ARP報文,這樣就可以防止與網關地址衝突的ARP報文在VLAN內廣播;

  提示:我們只需要在交換機的全局模式下開啟對應功能即可;

  查看ARP防止攻擊表項

  2、網關開啟主動發送免費arp:其實這是利用網關發送免費arp來覆蓋攻擊者的arp報文;

  提示:默認開啟發送免費arp報文功能後,間隔是60秒發送一次;我們可以使用interval 來指定間隔多久發送一次,最小間隔為1秒一次;

  抓包查看網關是否在發送免費arp呢?

  提示:可以看到現在pc上抓包,網關會每個兩秒發送一次免費arp,廣播給同一廣播域的其他主機,網關的mac資訊;這在一定程度上可以緩解攻擊者的攻擊;但是如果攻擊者發送偽造的arp報文如果比網關發送的免費arp報文快,則攻擊者的報文會覆蓋網關自身發送的免費arp廣播;一般使用該技術是結合上面的防網關衝突使用;

  3、ARP報文速率

    3.1、限制任意源MAC的ARP報文

    3.2、限制特定源MAC的ARP報文

    3.3、限制特定源IP的ARP報文

  4、ARP Miss消息限速

    4.1、限制任意源IP的ARP MISS消息

    4.2、限制特定源IP的ARP MISS消息

  查看當前ARP限速配置

  查看arp miss限速配置

  查看arp處理的報文統計數據

  5、DAI(Dynamic ARP Inspection,動態ARP檢測)可防止中間人攻擊;該技術建立在dhcp snooping的綁定表的基礎之上;當設備收到ARP報文時,將此ARP報文對應的源ip、源mac、vlan以及介面資訊和綁定表的資訊進行比較,如果資訊匹配,說明發送該ARP報文的用戶是合法用戶,允許此用戶的arp報文通過,否則就認為是攻擊,丟棄對應arp報文;

   DAI配置流程

  1、全局開啟dhcp snooping功能;

  2、在某個VLAN內開啟dhcp snooping功能;

  3、配置信任介面;

  4、在接入設備的介面開啟ARP動態監測功能即可;

  實驗,如下拓撲配置DAI監測

  sw1的基礎配置

sys
sys sw1
vlan 2
int g0/0/1
p l a 
p d v 2
int g0/0/2
p l a
p d v 2
int g0/0/3
p l a
p d v 2

View Code

  dhcp-server的基礎配置

sys
sys dhcp-server
dhcp en
vlan 2
int g0/0/1
p l a 
p d v 2
int vlanif 2
ip add 172.16.20.254 24
dhcp se int

View Code

  驗證DHCP伺服器地址池

  提示:可以看到有兩個地址被使用,說明dhcp伺服器正常工作;

  1、在sw1上開啟全局開啟dhcp snooping功能

  提示:全局開啟dhcp snooping功能,需要現在全局開啟dhcp功能;

  2、在vlan2內開啟dhcp snooping功能

  3、配置dhcp snooping 信任介面

  查看綁定表

  提示:如果我們是後面才開啟的dhcp snooping功能,需要讓pc重新拿地址,對應綁定表就會形成;

  4、在介面開啟arp動態檢測功能

  驗證配置結果

  查看arp檢測到arp報文丟棄計數

  提示:我這裡是沒有模擬攻擊,如果有攻擊,這對應統計數量就會有;