1、ARP報文限速?
????????上一章我們說過ARP報文也是需要上送CPU進行處理的協議報文,如果設備對收到的大量ARP報文全部進行處理,可能導致CPU負荷過重而無法處理其他業務。因此,在處理之前需要對ARP報文進行限速,以保護CPU資源。
1.根據源MAC地址或源IP地址進行ARP限速
? ? ? ? 當設備檢測到某一個用戶在短時間內發送大量的ARP報文,可針對該用戶配置基于源MAC地址或源IP地址的ARP報文限速。在1s時間內,如果該用戶的ARP報文數目超過設定閾值(全局配置,適用于所有接口),則丟棄超出閾值部分的ARP報文。
- 根據源MAC地址進行ARP報文限速時,如果指定MAC地址,則針對指定源MAC地址的ARP報文,根據限速值進行限速;如果不指定MAC地址,則針對每一個源MAC地址的ARP報文,根據限速值進行限速。(僅S5720EI、S5720HI、S6720EI、S6720HI和S6720S-EI子系列,以及框式系列交換機支持該功能
- 根據源IP地址進行ARP報文限速時,如果指定IP地址,則針對指定源IP地址的ARP報文,根據限速值進行限速;如果不指定IP地址,則針對每一個源IP地址的ARP報文,根據限速值進行限速。
根據任意源MAC進行限速
SW1
system
sysname SW1
arp speed-limit source-mac maximum 100 //對任意源MAC限速
根據指定源MAC進行限速
arp speed-limit source-mac 0003-0f8c-1011 maximum 100 //對指定源MAC進行限速
根據任意源IP進行限速
arp speed-limit source-ip maximum 100 //對任意源IP進行限速
根據指定源IP進行限速
arp speed-limit source-ip 1.1.1.1 maximum 100
2.針對全局、VLAN和接口的ARP報文限速
? ? ? ? 設備支持在全局、VLAN和接口下配置ARP報文的限速值和限速時間,接口下的配置優先級最高,其次是VLAN下的配置,最后是全局的配置。
配置基于全局的ARP報文限速
arp anti-attack rate-limit enable
配置基于VLAN的ARP報文限速
vlan 1
arp anti-attack rate-limit enable
配置基于接口的ARP報文限速
interface g0/0/1
arp anti-attack rate-limit enable
我們也可以配置ARP報文的限速時間以及指定持續丟棄超過ARP報文限速值的接口下收到的所有ARP報文的時長。
arp anti-attack rate-limit 200 block timer 200
我們還可以配置告警閾值,當丟棄的ARP報文數超過告警閾值時,設備將產生告警信息。
arp anti-attack rate-limit alarm enable
arp anti-attack rate-limit alarm threshold 200
? ? ? ? 另外,如果設備的某個接口在ARP報文限速時間內接收到的ARP報文數目超過了設定閾值(ARP報文限速值),則丟棄超出閾值部分的ARP報文,并在接下來的一段時間內(即阻塞ARP報文時間段)持續丟棄該接口下收到的所有ARP報文。
- 針對全局的ARP報文限速;在設備出現ARP攻擊時,限制全局處理的ARP報文數量。
- 針對VLAN的ARP報文限速;在某個VLAN內的所有接口出現ARP攻擊時,限制處理收到的該VLAN內的ARP報文數量,配置本功能可以保證不影響其他VLAN內所有接口的ARP學習。
- 針對接口的ARP報文限速;在某個接口(二層或三層物理接口)出現ARP攻擊時,限制處理該接口收到的ARP報文數量,但不影響其他接口的ARP學習。
2、ARP Miss消息限速
? ? ? ? 如果網絡中有用戶向設備發送大量目標IP地址不能解析的IP報文(即路由表中存在該IP報文的目的IP地址所對應的路由表項,但設備上卻沒有該路由表項下一跳對應的ARP表項),這樣就沒辦法對報文進行幀封裝了,于是會導致設備觸發大量的ARP Miss消息來解析下一跳IP地址對應的MAC地址。
? ? ? ? 這種觸發ARP Miss消息的IP報文(即ARP Miss報文)會被上送到CPU進行處理,設備會根據ARP Miss消息生成和下發大量臨時ARP表項(這類表項中的MAC地址的顯示的是incomplete)并向目的網絡發送大量的ARP請求報文,這樣就增加了設備CPU的負擔,同時嚴重消耗目的網絡的帶寬資源。
? ? ? ? 為了避免這種IP報文攻擊所帶來的危害,設備提供了如下幾類針對ARP Miss消息的限速功能(其實與上節介紹的針對ARP報文的限速功能即配置方法都差不多)。
1.基于源IP地址進行ARP Miss消息限速
? ? ? ? 當設備檢測到某一源IP地址的IP報文在1s內觸發的ARP Miss消息數量超過了ARP Miss消息限速值,就認為此源IP地址存在攻擊。此時如果設備對ARP Miss報文的處理方式是block(阻止方式),設備會丟棄超出限速值部分的ARP Miss報文,并下發一條ACL來丟棄該源IP地址的后續所有ARP Miss報文;如果是none-block方式,設備只會通過軟件限速的方式丟棄超出限速值部分的ARP Miss報文。
? ? ? ? 根據源IP地址進行ARP Miss消息限速,如果指定了IP地址,則針對指定源IP地址的ARP Miss消息,根據限速值進行限速;如果不指定IP地址,則針對任意源IP地址的ARP Miss消息,根據限速值進行限速。僅S5720EI、S5720HI、S5720S-SI、S520SI、S5730-EI、S5730SI、S6720EI、S6720HI、S6720LI、S6720-EI、S6720S-LI、S6720S-SI和S6720S,以及框式系列交換機支持該功能。
根據任意源IP進行ARP Miss消息限速
arp-miss speed-limit source-ip maximum 100
根據指定源IP進行ARP Miss消息限速并設置處理方式
arp-miss speed-limit source-ip 1.1.1.1 maximum 100 block timer 200
2.針對全局、VLAN和接口的ARP Miss消息限速
? ? ? ? 設備支持在全局、VLAN和接口下配置ARP Miss消息限速。這3個位置的配置的有效順序為接口優先,VLAN其次,最后為全局。(與ARP報文限速一致)
配置基于全局的ARP Miss消息限速功能
arp-miss anti-attack rate-limit enable
配置基于VLAN的ARP Miss消息限速功能
vlan 1
arp-miss anti-attack rate-limit enable
?配置基于接口的ARP Miss消息限速功能
interface g0/0/1
arp-miss anti-attack rate-limit enable
同樣我們也可以配置告警信息
arp-miss anti-attack rate-limit alarm enable
arp-miss anti-attack rate-limit alarm threshold 200
- 針對全局的ARP Miss消息限速:在設備出現目標IP地址不能解析的IP報文攻擊時,限制全局處理的ARP Miss消息數量。
- 針對VLAN的ARP Miss消息限速:在某個VLAN內的所有接口出現目標IP地址不能解析的IP報文攻擊時,限制處理該VLAN內報文觸發的ARP Miss消息數量,配置本功能可以保證不影響其他VLAN內所有接口的IP報文轉發。
- 針對接口的ARP Miss消息限速:在某個接口(同樣可以是二層或三層物理接口)出現目標IP地址不能解析的IP報文攻擊時,限制處理該接口收到的報文觸發的ARP Miss消息數量,配置本功能可以保證不影響其他接口的IP報文轉發。
3.配置臨時ARP表項的老化時間
? ? ? ? 當IP報文觸發ARP Miss消息時,設備會根據ARP Miss消息生成臨時ARP表項,并且向目的網段發送ARP請求報文。臨時ARP表項有老化時間,而且可以基于三層接口(可以時VLANIF接口或三層物理接口)手動配置。
? ? ? ? 1.在臨時ARP表項老化時間范圍內:
- 設備收到ARP應答報文前,匹配臨時ARP表項的IP報文將被丟棄并且不會觸發ARP Miss消息;
- 設備收到ARP應答報文后,則生成正確的ARP表項來替換臨時ARP表項。
? ? ? ? 2.當老化時間超時過后,設備會清楚臨死ARP表項。此時如果設備轉發IP報文匹配不到對應的ARP表項,則會重新觸發ARP Miss消息并生成臨時ARP表項,如此循環重復。
? ? ? ? 當判斷設備收到攻擊時,可以增大臨時ARP表項的老化時間,減小設備ARP Miss消息的觸發頻率,從而減小攻擊對設備的影響。
配置臨時ARP表項的老化時間
int vlan 1
arp-fake expire-time 100
3、ARP表項嚴格學習
? ? ? ? ?如果大量用戶在同一時間段內向設備發送大量的ARP報文,或者攻擊者偽造正常用戶的ARP報文發送給設備,則會造成如下傷害。
- 設備因處理大量ARP報文而導致CPU負荷過重,同時設備學習大量的ARP報文可能導致設備ARP表項資源被無效的ARP表項耗盡,造成合法用戶的ARP報文不能繼續生成ARP表項,導致用戶無法正常通信。
- 偽造的ARP報文將錯誤地更新設備ARP表項,導致合法用戶無法正常通信。
? ? ? ? 為避免上述危害,可以在網關設備上配置ARP表項嚴格學習功能。配置該功能后,只有本設備主動發送的ARP請求報文的應答報文才能觸發本設備學習ARP,其他設備主動向本設并發送的ARP報文不能觸發本設備學習。這樣,可以拒絕大部分的ARP報文攻擊。
? ? ? ? ARP表項嚴格學習功能可以在全局和三層接口(三層VLANIF接口或三層物理接口)視圖下進行配置。如果全局使能該功能,則設備的所有三層接口均進行ARP表項嚴格學習;如果接口下使能該功能,則只有該三層接口進行ARP表項嚴格學習,接口下配置的優先級高于侵權劇配置的優先級。
全局下配置ARP表項嚴格學習
arp learning strict
接口下配置ARP表項嚴格學習
int vlan 1
arp learning strict force-enable
4、ARP表項限制
? ? ? ? ARP表項限制功能應用在網關設備上,可以限制設備的某個接口(二層或三層物理接口、三層以太網子接口和VLANIF接口都可以)學習動態ARP表項的數目。
接口下配置ARP表項限制
interface g0/0/1
arp-limit vlan 1 maximum 100
VLANIF接口下配置ARP表項限制
interface vlanif 1
arp-limit maximum 100
????????默認情況下,接口可以學習的動態ARP表項數目規格與全局的ARP表項規格保持一致。當部署完ARP表項限制功能后,如果指定接口下的動態ARP表項達到了允許學習的最大數目,將不再允許該接口繼續學習動態ARP表項,以保證當嚴格接口所接入的某一用戶主機發起ARP攻擊時,不會導致整個設備的ARP表資源都被耗盡。
5、禁止接口學習ARP表項
? ? ? ? 當某接口(僅可是VLANIF接口)下學習了大量動態ARP表項時,出于安全考慮,可以通過配置禁止該接口的動態ARP表項學習功能,以防止該接口下所接入的用戶主機發起ARP攻擊使整個設備的ARP表資源都被耗盡。
? ? ? ? 禁止接口學習ARP表項功能和ARP表項嚴格學習功能配置起來使用,可以使設備對接口下動態ARP的學習進行更加細致的控制。
VLANIF接口下配置禁止ARP學習表項
interface vlanif 1
arp learning disable
6、ARP表項固化
? ? ? ? 為了防止網關欺騙攻擊,可在網關上配置ARP表項固化功能,這樣網關設備在第一次學習到某IP地址的ARP表項以后,不再允許用戶更新此ARP表項,或只允許更新此ARP表項的部分信息,或者通過發送單播ARP請求報文的方式對更新ARP條目的報文進行合法性確認。
? ? ? ? 華為設備提供了以下3種ARP表項固化模式,且是互斥關系。
- fixed-mac方式:這種固化模式是以報文中源MAC地址與ARP表中現有對應IP地址表項中的MAC地址是否匹配為審查的關機依據。當這兩個MAC地址不匹配時,則直接丟棄該ARP報文;如果這兩個MAC地址是匹配的,但是報文中的接口或VLAN信息與ARP表中對應表項不匹配時,則可以更新對應ARP表項中的接口和VLAN信息。這種模式適用于靜態配置IP地址,但網絡存在冗余鏈路(這樣可以改變出接口和VLAN)的情況。當鏈路切換時,ARP表項中的接口信息可以快速改變。
- fixed-all方式:這種固化方式是僅當ARP報文對應的MAC地址、接口、VLAN信息和ARP表中對應表項的信息完全匹配時,設備才可以更新ARP表項的其他內容。這種模式匹配最嚴格,適用于靜態配置IP地址,網絡沒有冗余鏈路(這樣不可以改變出接口和VLAN),且同一IP地址用戶不會從不同接口接入的情況。
- send-ack方式:這種模式是當設備收到嚴格涉及MAC地址、VLAN、接口修改的ARP報文時,不會立即更新ARP表項,而是向待更新的ARP表項現有MAC地址對應的用戶發送一個單播的ARP請求報文,再根據用戶的確認結果決定是否更新ARP表項中的MAC地址、VLAN和接口信息。此方式適用于動態分配IP地址,有冗余鏈路的網絡。
? ? ? ? 可以在全局和VLANIF接口下配置ARP表項固化功能。全局配置該功能后,缺省設備上所有VLNAIF接口的ARP表項固化功能均已使能。當全局和VLANIF接口下同時配置了該功能時,VLNAIF接口下的配置優先生效。
全局下配置ARP表項固化
arp anti-attack entry-check fixed-mac enable
接口下配置ARP表項固化
int vlan 1
arp anti-attack entry-check fixed-mac enable
7、動態ARP檢測(DAI)
? ? ? ? ?中間人攻擊(Man-int-the-middle attack)是常見的ARP欺騙攻擊防止之一。所謂"中間人攻擊"是指攻擊者與通信的兩端分別創建獨立的聯系,并交換其所收到的數據,使通信的兩端認為與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通信雙方的通話并插入新的內容。
PC2與PC3在互相訪問時都會先將報文轉發給PC1,在由PC1轉發給對方,這樣數據在交互過程中都會先經過PC1。
? ? ? ? 為了防御中間人攻擊,避免合法用戶的數據被中間人竊取,可以使能DAI(Dynamic ARP Inspection,動態ARP檢測)功能,僅適用于啟用了DHCP Snooping的場景。這樣,設備會將ARP報文中的源IP、源MAC、接口、VLNA信息和DHCP Snooping中的綁定表(或者手動添加靜態綁定表)信息進行比較,如果匹配,說明發送該ARP報文的用戶是合法用戶,允許此用戶的ARP報文通過,否則就認為是攻擊,丟棄該ARP報文。
注意:設備使能DHCP Snooping功能后,當DHCP用戶上線時設備會自動生成DHCP Snooping綁定表。對于靜態配置IP地址的用戶,設備不會生成DHCP Snooping綁定表,所以需要手動添加靜態綁定表。可用user-bind static命令配置IP地址、MAC地址、接口和內/外層VLNA的靜態用戶綁定表項。
? ? ? ? 如果希望僅匹配綁定表中某一項或某兩項內容的特俗ARP報文也能夠通過,則可用配置對ARP報文進行綁定表匹配檢查時只檢查某一項或某兩項內容。如果希望設備在丟棄不匹配綁定表的ARP報文數量較多時能夠以告警的方式提醒網絡管理員,則可以使能動態ARP檢查丟棄報文告警功能。這樣,當丟棄的ARP報文數超過告警閾值時,設備將產生告警信息。
? ? ? ? 可在接口(僅限二層物理接口,Eth-Trunk接口和端口組)視圖或VLAN視圖下配置動態ARP檢查功能,在接口視圖下使能時,對該接口收到的所有ARP報文進行綁定表匹配檢查:在VLAN視圖下使能時,對加入該VLAN的接口收到的屬于該VLAN的ARP報文進行綁定表匹配檢查。
接口或VLAN上使能動態ARP檢查功能
interface g0/0/1
arp anti-attack check user-bind enable
vlan 1
arp anti-attack check user-bind enable
接口或VLAN上使能動態ARP部分檢查功能
interface g0/0/1
arp anti-attack check user-bind check-item ip-address
vlan 1
arp anti-attack check user-bind check-item ip-address
默認情況下對ARP報文的IP地址、MAC地址和接口信息都進行檢查?
接口使能動態ARP告警功能
interface g0/0/1
arp anti-attack check user-bind alarm enable
arp anti-attack check user-bind alarm threshold 200
8、ARP防網關沖突
? ? ? ? 如果攻擊者仿冒網關,在局域網內部發送源IP地址是網關IP地址的ARP報文,就會導致局域網內其他用戶主機的ARP表記錄錯誤的網關地址映射關系。這樣,其他用戶主機就會把發往網關的流量均發送給了攻擊者,攻擊者可輕易地竊取聽到他們發送的數據內容,并且最終會造成這些用戶主機無法訪問網絡。這就是我們最常見的一種ARP攻擊類型--網關欺騙ARP攻擊
????????
我們將SW1的VLAN1的IP設置為192.168.1.254,然后讓PC1去訪問192.168.1.254,PC1就會形成關于這個地址的ARP表項
此時我們再將AR1的接口配置為192.168.1.254/24就會發送一份免費ARP,則會刷新PC1的ARP表項
????????攻擊者B將偽造網關的ARP報文發送給用戶A,使用戶A誤以為攻擊者即為網關。用戶A的ARP表中會記錄錯誤的網關地址映射關系,使得用戶A跟網關的正常數據通信中斷。
? ? ? ? 為了防范攻擊者仿冒網關,可以在網關設備上使能ARP防網關沖突功能。僅S5720EI、S5720HI、S5720S-SI、S5720SI、S5730S-EI、S5730SI、S6720EI、S6720HI、S6720LI、S6720S-EI、S6720S-LI、S6720S-SI和S6720SI,以及框式系列交換機支持該功能。
? ? ? ? 當設備收到的ARP報文存在下列情況之一,設備就認為該ARP報文是與網關地址沖突的ARP報文,設備將生成ARP防攻擊表項,并在后續一段時間內丟棄該接口收到的同VLAN以及同源MAC地址的ARP報文,這樣可以防止與網關地址沖突的ARP報文在VLAN內廣播。此時,還可以在設備上通過下面介紹的使能發送免費ARP報文功能,通過廣播發送正確的免費ARP報文到所有用戶,迅速將已經被攻擊的用戶記錄的錯誤網關地址映射關系修正正確。
在全局模式下配置ARP防網關沖突
arp anti-attack gateway-duplicate enable
9、配置發送免費ARP報文
? ? ? ? 如果有攻擊者向其他用戶發送仿冒網關的ARP報文,會導致其他用戶的ARP表中記錄錯誤的網關地址映射關系,從而造成其他用戶的正常數據不能被網關接收。
????????此時可以在網關設備上配置發送免費ARP報文的功能,用來定期更新合法用戶的ARP表項,使得合法用戶ARP表項中記錄正確的網關地址映射關系。
? ? ? ? 可在網關設備上全局或VLANIF接口下配置發送免費ARP報文功能。全局配置該功能后,則缺省設備上所有接口的發送ARP免費報文功能均已使能。當全局和VLANIF接口下同時配置了該功能時,VLANIF接口下的配置優先生效。
全局或接口下使能發送免費ARP報文功能
arp gratuitous-arp send enable
interface vlanif 1
arp gratuitous-arp send enable
全局或接口下配置免費ARP報文發送時間間隔
arp gratuitous-arp send interval 200
interface vlanif 1
arp gratuitous-arp send interval 200
上面我們說了一般情況下我們都會使用ARP防網關沖突和發送免費ARP報文兩個功能來實現安全防護,這是因為ARP防網關沖突在第一次網關欺騙時不能起到防護的效果。我們可以通過以下實驗來進一步了解。
?這里我們先讓PC1去訪問網關形成ARP表項
形成ARP表項之后我們在路由器的接口上配置一個與網關同一個IP的地址并發出免費ARP
?
我們能看到PC1的ARP表項更新了,網關的MAC變為了路由器的MAC,這就是網關欺騙攻擊
現在我們在交換機上配置ARP防網關沖突看看能不能防止這種攻擊,我們先把路由器上的IPundo掉,再讓PC1重新去ping一次網關學習到正確的ARP表項。
隨后我們去交換機上配置網關沖突的相關指令,隨后去路由器上配置IP地址發出免費ARP報文
可以看到PC1的ARP表項還是刷新了,我們再去看看交換機上的防網關沖突表項有沒有記錄這條IP地址
我們發現交換機是有記錄的那為什么PC1的ARP表項還是刷新了呢?
這是因為路由器的免費ARP在第一次到達交換機時還沒有形成相應的表項,所以免費ARP可以被轉發到PC1,所以如果只配置防網關沖突的話,只能夠防止第二次的攻擊,第一次的攻擊防止不了。此時就需要結合我們的發送免費ARP報文來實現安全防護。
10、ARP網關保護功能
? ? ? ? 當網絡中存在攻擊者Attacker仿冒網關或用戶誤配主機IP地址為網關地址時,其發送的ARP報文會使得網絡中其他用戶誤以為Attacker是網關設備,造成正常用戶跟網關的數據通信中斷。在設備與網關相連的接口上配置ARP網關保護功能,可以防止偽造網關攻擊,僅盒式交換機系列交換機支持。當來自網關的ARP報文到達設備時:
- 開啟了對網關地址保護功能的接口,正常接收轉發該ARP報文;
- 未開啟對網關地址保護功能的接口,丟棄該ARP報文;
- 開啟了對網關IP地址:192.168.1.254保護功能的接口,正常接收轉發該ARP報文;
- 未開啟對網關IP地址:192.168.1.254保護功能的接口,丟棄該ARP報文;
ARP網關保護功能是在二層物理接口下配置
interface g0/0/1
arp trust source 192.168.1.254
11、ARP報文內MAC地址一致性檢查
? ? ? ? ARP報文內MAC地址一致性檢查功能主要應用于網關設備上,可以防御以太網數據幀頭部中的源/目的MAC地址和ARP報文數據區中的源/目的MAC地址不同的ARP攻擊。配置該功能后,網關設備在進行ARP表項學習前將對ARP報文進行檢查。如果以太網幀頭部中的源/目的MAC地址和ARP報文數據區中的源/目的MAC地址不同,則認為是攻擊報文,將其丟棄;否則,繼續進行ARP學習。
ARP報文內MAC地址一致性檢查配置
interface g0/0/1
arp validate source-mac destination-mac
12、ARP報文合法性檢查
? ? ? ? 為了防止非法ARP報文的攻擊,可以在接入設備或網關設備上配置ARP報文合法性檢查功能,用來對MAC地址和IP地址不合法的ARP報文進行過濾。設備提供以下3中可以任意組合的檢查項配置。
- IP地址檢查:設備會檢查ARP報文中的源IP和目的IP地址,全0、全1或者組播IP地址都是不合法的,需要丟棄。對于ARP應答報文,源IP和目的IP地址都進行檢查;對于ARP請求報文,只檢查源IP地址。
- 源MAC地址檢查:設備會檢查ARP報文中的源MAC地址和以太網數據幀頭部中的源MAC地址是否一致,一致則認為合法,否則丟棄該報文。
- 目的MAC地址檢查:設備會檢查ARP應答報文中的目的MAC地址是否和以太網數據幀頭部中的目的MAC地址一致,一致則認為合法,否則丟棄報文。
ARP報文合法性檢查配置
arp anti-attack packet-check sender-mac
全局使能ARP報文合法性檢查功能(作用于所有接口接收的ARP報文)。
13、DHCP觸發ARP學習
? ? ? ? 在DHCP用戶場景下,當DHCP用戶數目很多時,設備進行大規模ARP表項的學習和老化會對設備性能和網絡環境形成沖擊。為了避免此問題,可以在網關設備上使能DHCP觸發ARP學習功能。當DHCP服務器給用戶分配了IP地址,網關設備會根據VLANIF接口上收到的DHCP ACK報文直接生成該用戶的ARP表項。
注意:DHCP觸發ARP學習功能生效的前提是已在二層交換設備全局和對應二層接口上通過dhcp snooping enable命令使能了DHCP Snooping功能。
? ? ? ? DHCP觸發ARP學習的配置方法僅在網關設備對應的VLANIF接口視圖下執行。缺省情況下,沒有使能DHCP觸發ARP學習功能。
DHCP觸發ARP學習配置
?
arp learning dhcp-trigger
以上就是本章的全部內容了,覺得博主做的還可以的可以給博主點一個關注,我們下一章來介紹ARP安全實驗經典使用場景實驗配置,部分內容可能與教材雷同,有意可聯系博主刪除,謝謝你的流量觀看!