18-ND攻擊防禦配置
本章節下載: 18-ND攻擊防禦配置 (257.42 KB)
目 錄
ND協議功能強大,但是卻沒有任何安全機製,容易被攻擊者利用。如圖1-1所示,當Device作為接入設備時,攻擊者Host B可以仿冒其他用戶、仿冒網關發送偽造的ND報文,對網絡進行攻擊:
· 如果攻擊者仿冒其他用戶的IPv6地址發送NS/NA/RS報文,將會改寫網關或者其他用戶的ND表項,導致被仿冒用戶的報文錯誤的發送到攻擊者的終端上。
· 如果攻擊者仿冒網關發送RA報文,會導致其他用戶的IPv6配置參數錯誤和ND表項被改寫。
圖1-1 ND攻擊示意圖
偽造的ND報文具有如下特點:
· 偽造的ND報文中源MAC地址和源鏈路層選項地址中的MAC地址不一致。
· 偽造的ND報文中源IPv6地址和源MAC地址的映射關係不是合法用戶真實的映射關係。
根據上述攻擊報文的特點,設備開發了多種功能對ND攻擊進行檢測,可以有效地防範ND攻擊帶來的危害。
如下所有配置均為可選,請根據實際情況選擇配置。
ND協議報文源MAC地址一致性檢查功能主要應用於網關設備上,防禦ND報文中的源MAC地址和以太網數據幀首部中的源MAC地址不同的ND攻擊。
開啟本特性後,網關設備會對接收的ND協議報文進行檢查。如果ND報文中的源MAC地址和以太網數據幀首部中的源MAC地址不一致,則認為是攻擊報文,將其丟棄;否則,繼續進行ND學習。
若開啟ND日誌信息功能,當用戶ND報文中的源MAC地址和以太網數據幀首部中的源MAC地址不同時,會有相關的日誌信息輸出。設備生成的ND日誌信息會交給信息中心模塊處理,信息中心模塊的配置將決定日誌信息的發送規則和發送方向。關於信息中心的詳細描述請參見“網絡管理和監控配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 開啟ND協議報文源MAC地址一致性檢查功能。
ipv6 nd mac-check enable
缺省情況下,ND協議報文源MAC地址一致性檢查功能處於關閉狀態。
(3) (可選)開啟ND日誌信息功能。
ipv6 nd check log enable
缺省情況下,ND日誌信息功能處於關閉狀態。
為了防止設備輸出過多的ND日誌信息,一般情況下建議不要開啟此功能。
ND Detection功能主要應用於接入設備上,檢查用戶的合法性。對於合法用戶的ND報文進行正常轉發,否則直接丟棄,從而防止仿冒用戶、仿冒網關的攻擊。
ND Detection功能將接入設備上的接口分為兩種:ND信任接口、ND非信任接口。
· 對於ND信任接口,不進行用戶合法性檢查;
· 對於ND非信任接口,如果收到RA和RR消息,則認為是非法報文直接丟棄,如果收到其它類型的ND報文,則需要進行用戶合法性檢查,以防止仿冒用戶的攻擊。
用戶合法性檢查是根據ND報文中源IPv6地址和源MAC地址,檢查用戶是否是報文收到接口所屬VLAN上的合法用戶,包括IPv6 Source Guard靜態綁定表項、ND Snooping表項和DHCPv6 Snooping安全表項的檢查。隻要能查詢到表項,就認為該ND報文合法,進行轉發。如果沒有匹配的表項,則認為是非法報文,直接丟棄。
IPv6 Source Guard靜態綁定表項通過ipv6 source binding命令生成,詳細介紹請參見“安全配置指導”中的“IP Source Guard”。DHCPv6 Snooping安全表項通過DHCPv6 Snooping功能自動生成,詳細介紹請參見“三層技術-IP業務配置指導”中的“DHCPv6 Snooping”。ND Snooping表項通過ND Snooping功能自動生成,詳細介紹請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
· 配置ND Detection功能時,必須至少配置IPv6 Source Guard靜態綁定表項、DHCPv6 Snooping功能和ND Snooping功能三者之一,否則所有從ND非信任接口收到的ND報文都將被丟棄。
· 在與ND Detection功能配合時,IPv6 Source Guard綁定表項中必須指定VLAN參數,且該VLAN為配置ND Detection功能的VLAN,否則ND報文將無法通過接口的IPv6 Source Guard靜態綁定表項的檢查。
(1) 進入係統視圖。
system-view
(2) 進入VLAN視圖。
vlan vlan-id
(3) 開啟ND Detection功能。
ipv6 nd detection enable
缺省情況下,ND Detection功能處於關閉狀態。即不進行用戶合法性檢查。
(4) (可選)將不需要進行用戶合法性檢查的接口配置為ND信任接口。
a. 退回係統視圖。
quit
b. 進入接口視圖。
interface interface-type interface-number
c. 將不需要進行用戶合法性檢查的接口配置為ND信任接口。
ipv6 nd detection trust
缺省情況下,接口為ND非信任接口。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後ND Detection的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下,用戶可以執行reset命令清除ND Detection的統計信息。
表1-1 ND Detection功能顯示和維護
操作 |
命令 |
顯示ND Detection丟棄報文的統計信息 |
display ipv6 nd detection statistics [ interface interface-type interface-number ] |
清除ND Detection的統計信息 |
reset ipv6 nd detection statistics [ interface interface-type interface-number ] |
用戶Host A和Host B通過DeviceB接入網關Device A。用戶Host A的IPv6地址是10::5/64,MAC地址是0001-0203-0405。用戶Host B的IPv6地址是10::6/64,MAC地址是0001-0203-0607。
要求:在Device B上配置ND Detection功能對用戶的合法性進行檢查,保證合法用戶的報文可以被正常轉發,非法用戶的報文被丟棄。
圖1-2 配置ND Detection組網圖
# 創建VLAN 10。
<DeviceA> system-view
[DeviceA] vlan 10
[DeviceA-vlan10] quit
# 配置接口GigabitEthernet1/0/3允許VLAN 10的報文通過。
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet1/0/3] port link-type trunk
[DeviceA-GigabitEthernet1/0/3] port trunk permit vlan 10
[DeviceA-GigabitEthernet1/0/3] quit
# 配置VLAN接口10的IPv6地址。
[DeviceA] interface vlan-interface 10
[DeviceA-Vlan-interface10] ipv6 address 10::1/64
[DeviceA-Vlan-interface10] quit
(2) 配置Device B
# 創建VLAN 10。
<DeviceB> system-view
[DeviceB] vlan 10
[DeviceB-vlan10] quit
# 配置接口GigabitEthernet1/0/1~GigabitEthernet1/0/3允許VLAN 10的報文通過。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] port link-type access
[DeviceB-GigabitEthernet1/0/1] port access vlan 10
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port link-type access
[DeviceB-GigabitEthernet1/0/2] port access vlan 10
[DeviceB-GigabitEthernet1/0/2] quit
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] port link-type trunk
[DeviceB-GigabitEthernet1/0/3] port trunk permit vlan 10
[DeviceB-GigabitEthernet1/0/3] quit
# 開啟ND Detection功能。
[DeviceB] vlan 10
[DeviceB-vlan10] ipv6 nd detection enable
# 開啟ND Snooping表項獲取功能,通過ND報文的源地址(包括全球單播地址和鏈路本地地址)生成ND Snooping表項。
[DeviceB-vlan10] ipv6 nd snooping enable global
[DeviceB-vlan10] ipv6 nd snooping enable link-local
[DeviceB-vlan10] quit
# 將上行接口GigabitEthernet1/0/3配置為ND信任接口,下行接口GigabitEthernet1/0/1和GigabitEthernet1/0/2采用缺省配置,即為ND非信任接口。
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] ipv6 nd detection trust
完成上述配置後,對於接口GigabitEthernet1/0/1和GigabitEthernet1/0/2收到的ND報文,基於ND Snooping安全表項進行檢查。
RA Guard功能用來在二層接入設備上防範路由通告報文(RA報文)欺騙攻擊。
二層接入設備收到目的MAC地址為單播或組播地址的RA報文後,RA Guard功能按照如下方式處理RA報文:
· 如果接收RA報文的接口配置了接口角色,則通過係統根據接口角色來選擇轉發還是丟棄該報文:
¡ 若接口角色為路由器,則直接轉發RA報文;
¡ 若接口角色為用戶,則直接丟棄RA報文。
· 如果接收RA報文的接口沒有配置接口角色,則該報文繼續匹配該接口屬VLAN內的RA Guard策略:
¡ 若RA Guard策略中未配置任何匹配規則,則應用該策略的接口直接轉發RA報文;
¡ 若RA Guard策略中配置了匹配規則,則RA報文需匹配策略下所有規則成功才會被轉發;否則,該報文即被丟棄。
可根據接口在組網中的位置來配置接口的角色。如果確認接口連接的是用戶主機,則配置接口角色為用戶角色(host);如果確定接口連接的是路由器,則配置接口角色路由器角色(router)。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
¡ 進入二層以太網接口視圖
interface interface-type interface-number
¡ 進入二層聚合接口視圖
interface bridge-aggregation interface-number
(3) 配置接口角色。
ipv6 nd raguard role { host | router }
缺省情況下,未配置接口角色。
對於下麵兩種情況,可通過配置RA Guard策略對RA報文按規則匹配條件進行過濾:
· 不能判斷接口連接的設備/終端類型,即不能通過配置接口角色來選擇丟棄還是轉發RA報文;
· 確認接口連接的是路由器,但用戶不希望直接轉發RA報文而是進行過濾。
(1) 進入係統視圖。
system-view
(2) 創建RA Guard策略,並進入RA Guard策略視圖。
ipv6 nd raguard policy policy-name
(3) 配置RA Guard策略。請至少選擇其中一項進行配置。
¡ 配置ACL匹配規則。
if-match acl { ipv6-acl-number | name ipv6-acl-name }
¡ 配置前綴匹配規則。
if-match prefix acl { ipv6-acl-number | name ipv6-acl-name }
¡ 配置路由最高優先級匹配規則。
if-match router-preference maximum { high | low | medium }
¡ 配置被管理地址標誌位匹配規則。
if-match autoconfig managed-address-flag { off | on }
¡ 配置其他信息配置標誌位匹配規則。
if-match autoconfig other-flag { off | on }
¡ 配置RA報文內跳數最大值或最小值匹配規則。
if-match hop-limit { maximum | minimum } limit
缺省情況下,未配置RA Guard策略。
(4) 退回係統視圖。
quit
(5) 進入VLAN視圖。
vlan vlan-number
(6) 應用RA Guard策略。
ipv6 nd raguard apply policy [ policy-name ]
缺省情況下,未應用RA Guard策略。
RA Guard日誌可以方便管理員定位問題和解決問題,對處理RA報文的信息進行的記錄。開啟RA Guard日誌功能後,設備在檢測到非法RA報文時將生成檢測日誌,日誌內容包括:受到攻擊的接口名稱、RA報文的源IP地址和丟棄的RA報文總數。
設備生成的RA Guard日誌信息會交給信息中心模塊處理,信息中心模塊的配置將決定日誌信息的發送規則和發送方向。關於信息中心的詳細描述請參見“網絡管理和監控配置指導”中的“信息中心”。
(1) 進入係統視圖。
system-view
(2) 開啟RA Guard日誌功能。
ipv6 nd raguard log enable
缺省情況下,RA Guard日誌功能處於關閉狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示RA Guard策略的信息。
表1-2 RA Guard 功能顯示和維護
操作 |
命令 |
顯示已創建的RA Guard策略信息 |
display ipv6 nd raguard policy [ policy-name ] |
顯示RA Guard的報文統計信息 |
display ipv6 nd raguard statistics [ interface interface-type interface-number ] |
清除RA Guard的報文統計信息 |
reset ipv6 nd raguard statistics [ interface interface-type interface-number ] |
如圖1-3所示,在Device B上通過接口GigabitEthernet1/0/1和GigabitEthernet1/0/2分別連接主機Host和Device C,通過接口GigabitEthernet1/0/3連接Device A。接口GigabitEthernet1/0/1、GigabitEthernet1/0/2和GigabitEthernet1/0/3都屬於VLAN 10。
為防範路由通告報文(RA報文)欺騙攻擊,可在Device B上配置RA Guard策略規則,並在VLAN 10下應用該策略規則:
· 接口GigabitEthernet1/0/2連接的是未知設備,用戶希望該接口對RA報文按RA Guard策略規則進行匹配過濾;
· 接口GigabitEthernet1/0/1連接的是用戶,用戶希望該接口完全過濾RA報文將其直接丟棄;
· 接口GigabitEthernet1/0/3連接的是Device A,用戶希望該接口完全信任RA報文將其直接轉發。
圖1-3 RA Guard功能組網圖
# 在Device B上創建RA Guard策略policy1,並配置匹配規則。匹配最高路由優先級為高,被管理地址標誌位置為1、其他信息配置標誌位置為1、跳數最小值為100且最大值為120的RA報文。
<DeviceB> system-view
[DeviceB] ipv6 nd raguard policy policy1
[DeviceB-raguard-policy-policy1] if-match router-preference maximum high
[DeviceB-raguard-policy-policy1] if-match autoconfig managed-address-flag on
[DeviceB-raguard-policy-policy1] if-match autoconfig other-flag on
[DeviceB-raguard-policy-policy1] if-match hop-limit maximum 120
[DeviceB-raguard-policy-policy1] if-match hop-limit minimum 100
[DeviceB-raguard-policy-policy1] quit
# 配置接口GigabitEthernet1/0/1~GigabitEthernet1/0/3允許VLAN 10的報文通過,並在VLAN 10下應用RA Guard策略。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] port link-type access
[DeviceB-GigabitEthernet1/0/1] port access vlan 10
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port link-type access
[DeviceB-GigabitEthernet1/0/2] port access vlan 10
[DeviceB-GigabitEthernet1/0/2] quit
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] port link-type trunk
[DeviceB-GigabitEthernet1/0/3] port trunk permit vlan 10
[DeviceB-GigabitEthernet1/0/3] quit
[DeviceB] vlan 10
[DeviceB-vlan10] ipv6 nd raguard apply policy policy1
[DeviceB-vlan10] quit
# 配置接口GigabitEthernet1/0/1為用戶角色。
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ipv6 nd raguard role host
[DeviceB-GigabitEthernet1/0/1] quit
# 配置接口GigabitEthernet1/0/3為路由器角色。
[DeviceB] interface gigabitethernet 1/0/3
[DeviceB-GigabitEthernet1/0/3] ipv6 nd raguard role router
[DeviceB-GigabitEthernet1/0/3] quit
完成上述配置後:
· 從接口GigabitEthernet1/0/2收到的RA報文,會匹配RA Guard策略policy1:
¡ 如果匹配失敗則丟棄;
¡ 如果匹配成功,報文會被轉發到VLAN 10下其他接口。
· 從接口GigabitEthernet1/0/1收到的RA報文,不會匹配RA Guard策略policy1,RA報文都被直接丟棄。
· 對於接口GigabitEthernet1/0/3收到的RA報文,不會和策略policy1下的規則進行匹配,RA報文都直接被轉發,在同一VLAN的其他接口也會收到此RA報文。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!