19-ND攻擊防禦配置
本章節下載: 19-ND攻擊防禦配置 (276.23 KB)
IPv6 ND(IPv6 Neighbor Discovery,IPv6鄰居發現)協議使用五種類型的ICMPv6消息,實現下麵五種功能:地址解析、驗證鄰居是否可達、重複地址檢測、路由器發現/前綴發現及地址自動配置和重定向。
ND協議使用的五種ICMPv6消息如下:
· 鄰居請求消息NS(Neighbor Solicitation)
· 鄰居通告消息NA(Neighbor Advertisement)
· 路由器請求消息RS(Router Solicitation)
· 路由器通告消息RA(Router Advertisement)
· 重定向消息RR(Redirect)
關於ND協議五種功能的詳細介紹,請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。
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攻擊帶來的危害。
表1-1 ND攻擊防禦配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
防止仿冒用戶、仿冒網關攻擊 |
開啟ND協議報文源MAC地址一致性檢查功能 |
可選 建議在網關設備上開啟本功能 |
|
配置ND Detection功能 |
可選 建議在接入設備上配置本功能 |
||
配置RA Guard功能 |
可選 建議在接入設備上配置本功能 |
ND協議報文源MAC地址一致性檢查功能主要應用於網關設備上,防禦ND報文中的源MAC地址和以太網數據幀首部中的源MAC地址不同的ND攻擊。
開啟本特性後,網關設備會對接收的ND協議報文進行檢查。如果ND報文中的源MAC地址和以太網數據幀首部中的源MAC地址不一致,則認為是攻擊報文,將其丟棄;否則,繼續進行ND學習。
若開啟ND日誌信息功能,當用戶ND報文中的源MAC地址和以太網數據幀首部中的源MAC地址不同時,會有相關的日誌信息輸出。設備生成的ND日誌信息會交給信息中心模塊處理,信息中心模塊的配置將決定日誌信息的發送規則和發送方向。關於信息中心的詳細描述請參見“網絡管理和監控配置指導”中的“信息中心”。為了防止設備輸出過多的ND日誌信息,一般情況下建議不要開啟此功能。
表1-2 開啟ND協議報文源MAC地址一致性檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟ND協議報文源MAC地址一致性檢查功能 |
ipv6 nd mac-check enable |
缺省情況下,ND協議報文源MAC地址一致性檢查功能處於關閉狀態 |
(可選)開啟ND日誌信息功能 |
ipv6 nd check log enable |
缺省情況下,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基礎”。
表1-3 配置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功能時,必須至少配置IPv6 Source Guard靜態綁定表項、DHCPv6 Snooping功能和ND Snooping功能三者之一,否則所有從ND非信任端口收到的ND報文都將被丟棄。
在與ND Detection功能配合時,IPv6 Source Guard綁定表項中必須指定VLAN參數,且該VLAN為配置ND Detection功能的VLAN,否則ND報文將無法通過接口的IPv6 Source Guard靜態綁定表項的檢查。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後ND Detection的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下,用戶可以執行reset命令清除ND Detection的統計信息。
表1-4 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-5 配置端口角色
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入二層以太網端口視圖/二層聚合端口視圖 |
interface interface-type interface-number |
- |
配置端口角色 |
ipv6 nd raguard role { host | router } |
缺省情況下,未配置端口角色 |
對於下麵兩種情況,可通過配置RA Guard策略對RA報文按規則匹配條件進行過濾:
· 不能判斷端口連接的設備/終端類型,即不能通過配置端口角色來選擇丟棄還是轉發RA報文;
· 確認端口連接的是路由器,但用戶不希望直接轉發RA報文而是進行過濾。
表1-6 配置RA Guard策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建RA Guard策略,並進入RA Guard策略視圖 |
ipv6 nd raguard policy policy-name |
缺省情況下,設備上不存在任何RA Guard策略 |
(可選)配置ACL匹配規則 |
if-match acl { ipv6-acl-number | name ipv6-acl-name } |
缺省情況下,未配置ACL匹配規則 |
(可選)配置前綴匹配規則 |
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報文跳數最大值或最小值匹配規則 |
退回係統視圖 |
quit |
- |
進入VLAN視圖 |
vlan vlan-number |
- |
應用RA Guard策略 |
ipv6 nd raguard apply policy [ policy-name ] |
缺省情況下,未應用RA Guard策略 |
RA Guard日誌是為了滿足網絡管理員審計的需要,對處理RA報文的信息進行的記錄。開啟RA Guard日誌功能後,設備在檢測到非法RA報文時將生成檢測日誌,日誌內容包括:受到攻擊的接口名稱、RA報文的源IP地址和丟棄的RA報文總數。
設備生成的RA Guard日誌信息會交給信息中心模塊處理,信息中心模塊的配置將決定日誌信息的發送規則和發送方向。關於信息中心的詳細描述請參見“網絡管理和監控配置指導”中的“信息中心”。
表1-7 配置RA Guard日誌功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟RA Guard日誌功能 |
ipv6 nd raguard log enable |
缺省情況下,RA Guard日誌功能處於關閉狀態 |
在完成上述配置後,在任意視圖下執行display命令可以顯示RA Guard策略的信息。
表1-8 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保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!