14-ND攻擊防禦配置
本章節下載: 14-ND攻擊防禦配置 (177.67 KB)
目 錄
IPv6 ND(Neighbor Discovery,鄰居發現)協議使用五種類型的ICMPv6消息,實現下麵五種功能:地址解析、驗證鄰居是否可達、重複地址檢測、路由器發現/前綴發現及地址自動配置、重定向。
ND協議使用的五種ICMPv6消息如下:
· 鄰居請求消息NS(Neighbor Solicitation)
· 鄰居通告消息NA(Neighbor Advertisement)
· 路由器請求消息RS(Router Solicitation)
· 路由器通告消息RA(Router Advertisement)
· 重定向消息RR(Redirect)
關於ND協議五種功能的詳細介紹,請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
ND協議功能強大,但是卻沒有任何安全機製,容易被攻擊發起者利用。
如圖1-1所示,一般ND攻擊來自於用戶,當Switch作為二層接入設備時,正常情況下,用戶發送的ND組播報文,將在VLAN內廣播,ND單播報文,將進行二層轉發。攻擊者可以仿冒其他用戶、仿冒網關發送偽造的ND報文,對網絡進行攻擊:
· 如果攻擊者仿冒其他用戶的IP發送NS/NA/RS報文,將會改寫網關或者其他用戶的ND表項,導致被仿冒用戶的報文錯誤的發送到攻擊者的PC上。
· 如果攻擊者仿冒網關發送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地址不同,則認為是攻擊報文,將其丟棄。
表1-1 配置ND協議報文源MAC地址一致性檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
使能ND協議報文源MAC地址一致性檢查功能 |
ipv6 nd mac-check enable |
可選 缺省情況下,ND協議報文源MAC地址一致性檢查功能處於關閉狀態 |
對於VRRP組網,目前NA回複報文的源MAC地址和源鏈路層選項地址中的MAC地址都是不一致的,因此對於VRRP組網不要使能ND協議報文源MAC地址一致性檢查功能。
ND Detection功能主要應用於接入設備上,檢查用戶的合法性。對於合法用戶的ND報文進行正常轉發,否則直接丟棄,從而防止仿冒用戶、仿冒網關的攻擊。
ND Detection功能將接入設備上的端口分為兩種:ND信任端口、ND非信任端口。
· 對於ND信任端口,不進行用戶合法性檢查;
· 對於ND非信任端口,如果收到RA和RR消息,則認為是非法報文直接丟棄,如果收到其它類型的ND報文,則需要進行用戶合法性檢查,以防止仿冒用戶的攻擊。
用戶合法性檢查是根據ND報文中源IPv6地址和源MAC地址,檢查用戶是否是報文收到端口所屬VLAN上的合法用戶,包括基於IP Source Guard靜態綁定表項的檢查、基於ND Snooping表項的檢查和基於DHCPv6 Snooping安全表項的檢查。在這三種表項都存在的情況下,檢查過程如下:
· 首先進行基於IP Source Guard靜態綁定表項檢查。如果找到了對應源IPv6地址和源MAC地址的靜態綁定表項,認為該ND報文合法,進行轉發。如果找到了對應源IPv6地址的靜態綁定表項但源MAC地址不符,認為該ND報文非法,進行丟棄。如果沒有找到對應源IPv6地址的靜態綁定表項,繼續進行DHCPv6 Snooping安全表項、ND Snooping安全表項檢查。
· 在基於IP Source Guard靜態綁定表項檢查之後進行基於DHCPv6 Snooping安全表項、ND Snooping安全表項檢查,隻要符合兩者中任何一個,就認為該ND報文合法,進行轉發。
· 如果所有檢查都沒有找到匹配的表項,則認為是非法報文,直接丟棄。
· IP Source Guard靜態綁定表項通過ipv6 source binding命令生成,詳細介紹請參見“安全配置指導”中的“IP Source Guard”。
· DHCPv6 Snooping安全表項通過DHCPv6 Snooping功能自動生成,詳細介紹請參見“三層技術-IP業務配置指導”中的“DHCPv6”。
· ND Snooping安全表項通過ND Snooping功能自動生成,詳細介紹請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
表1-2 配置ND Detection功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入VLAN視圖 |
vlan vlan-id |
- |
使能ND Detection功能 |
ipv6 nd detection enable |
必選 缺省情況下,ND Detection功能處於關閉狀態。即不進行用戶合法性檢查 |
退回係統視圖 |
quit |
- |
進入二層以太網接口視圖或二層聚合接口視圖 |
interface interface-type interface-number |
- |
將不需要進行用戶合法性檢查的端口配置為ND信任端口 |
ipv6 nd detection trust |
可選 缺省情況下,端口為ND非信任端口 |
· 配置ND Detection功能時,必須至少配置IP Source Guard靜態綁定表項、DHCPv6 Snooping功能、ND Snooping功能三者之一,否則所有從ND非信任端口收到的ND報文都將被丟棄。
· 在配置IP Source Guard靜態綁定表項時,必須指定VLAN參數,否則ND報文將無法通過基於IP Source Guard靜態綁定表項的檢查。
· 僅當配置acl ipv6 enable命令後,設備支持ND Detection功能。acl ipv6 enable命令的介紹請參見“ACL和QoS命令參考”中的“ACL”。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後ND Detection的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下,用戶可以執行reset命令清除ND Detection的統計信息。
表1-3 ND Detection功能顯示和維護
操作 |
命令 |
顯示ND Detection的配置信息 |
display ipv6 nd detection [ | { begin | exclude | include } regular-expression ] |
顯示ND Detection進行用戶合法性檢查時丟棄報文的統計信息 |
display ipv6 nd detection statistics [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
清除ND Detection的統計信息 |
reset ipv6 nd detection statistics [ interface interface-type interface-number ] |
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP。
用戶Host A和Host B通過Switch B接入網關Switch A。用戶Host A的IPv6地址是10::5,MAC地址是0001-0203-0405。用戶Host B的IPv6地址是10::6,MAC地址是0001-0203-0607。
要求:在Switch B上啟用ND Detection功能對用戶的合法性進行檢查,保證合法用戶的報文可以被正常轉發,非法用戶的報文被丟棄。
圖1-2 配置ND Detection組網圖
# 使能IPv6轉發功能。
<SwitchA> system-view
[SwitchA] ipv6
# 創建VLAN 10。
[SwitchA] vlan 10
[SwitchA-vlan10] quit
# 配置端口GigabitEthernet3/0/3允許VLAN 10的報文通過。
[SwitchA] interface GigabitEthernet 3/0/3
[SwitchA-GigabitEthernet3/0/3] port link-type trunk
[SwitchA-GigabitEthernet3/0/3] port trunk permit vlan 10
[SwitchA-GigabitEthernet3/0/3] quit
# 配置VLAN接口10的IPv6地址。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ipv6 address 10::1/64
[SwitchA-Vlan-interface10] quit
(2) 配置Switch B
# 使能IPv6轉發功能。
<SwitchB> system-view
[SwitchB] ipv6
# 設置係統ACL規則長度為80字節(本功能配置後,必須重啟設備後才會生效。)
[SwitchB] acl ipv6 enable
# 創建VLAN 10。
[SwitchB] vlan 10
[SwitchB-vlan10] quit
# 配置端口GigabitEthernet3/0/1~ GigabitEthernet3/0/3允許VLAN 10的報文通過。
[SwitchB] interface GigabitEthernet 3/0/1
[SwitchB-GigabitEthernet3/0/1] port link-type trunk
[SwitchB-GigabitEthernet3/0/1] port trunk permit vlan 10
[SwitchB-GigabitEthernet3/0/1] quit
[SwitchB] interface GigabitEthernet 3/0/2
[SwitchB-GigabitEthernet3/0/2] port link-type trunk
[SwitchB-GigabitEthernet3/0/2] port trunk permit vlan 10
[SwitchB-GigabitEthernet3/0/2] quit
[SwitchB] interface GigabitEthernet 3/0/3
[SwitchB-GigabitEthernet3/0/3] port link-type trunk
[SwitchB-GigabitEthernet3/0/3] port trunk permit vlan 10
[SwitchB-GigabitEthernet3/0/3] quit
# 使能ND Snooping功能。
<SwitchB> system-view
[SwitchB] vlan 10
[SwitchB-vlan10] ipv6 nd snooping enable
# 使能ND Detection功能。
[SwitchB-vlan10] ipv6 nd detection enable
[SwitchB-vlan10] quit
# 將上行端口GigabitEthernet3/0/3配置為ND信任端口,下行端口GigabitEthernet3/0/1和GigabitEthernet3/0/2采用缺省配置,即為ND非信任端口。
[SwitchB] interface GigabitEthernet 3/0/3
[SwitchB-GigabitEthernet3/0/3] ipv6 nd detection trust
完成上述配置後,對於端口GigabitEthernet3/0/1和GigabitEthernet3/0/2收到的ND報文,基於ND Snooping安全表項進行檢查。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!