选择区域语言: EN CN HK

09 安全配置指导

18-ND攻击防御配置

本章节下载  (163.08 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/CE3000/CE3000-EI/Configure/Operation_Manual/H3C_CE3000-32F-EI_CG-Release_1211-6W100/09/201107/721440_30005_0.htm

18-ND攻击防御配置


1 ND攻击防御配置

1.1  ND攻击防御简介

IPv6 ND(Neighbor Discovery,邻居发现)协议使用五种类型的ICMPv6消息,实现下面五种功能:地址解析、验证邻居是否可达、重复地址检测、路由器发现/前缀发现及地址自动配置、重定向。

ND协议使用的五种ICMPv6消息如下:

l              邻居请求消息NS(Neighbor Solicitation)

l              邻居通告消息NA(Neighbor Advertisement)

l              路由器请求消息RS(Router Solicitation)

l              路由器通告消息RARouter Advertisement

l              重定向消息RRRedirect

*

关于ND协议五种功能的详细介绍,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。

 

ND协议功能强大,但是却没有任何安全机制,容易被攻击发起者利用。

图1-1所示,当设备Switch作为二层接入设备时,攻击者Host B可以仿冒其他用户、仿冒网关发送伪造的ND报文,对网络进行攻击:

l              如果攻击者仿冒其他用户的IP发送NS/NA/RS报文,将会改写网关或者其他用户的ND表项,导致被仿冒用户的报文错误的发送到攻击者的PC上。

l              如果攻击者仿冒网关发送RA报文,会导致其它用户的IPv6配置参数错误和ND表项被改写。

图1-1 ND攻击示意图

 

伪造的ND报文具有如下特点:

l              伪造的ND报文中源MAC地址和源链路层选项地址中的MAC地址不一致。

l              伪造的ND报文中源IPv6地址和源MAC地址的映射关系不是合法用户真实的映射关系。

根据上述攻击报文的特点,设备开发了多种功能对ND攻击进行检测,可以有效地防范ND攻击带来的危害。

1.2  配置ND协议报文源MAC地址一致性检查功能

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地址一致性检查功能。

 

1.3  配置ND Detection功能

1.3.1  ND Detection功能简介

ND Detection功能主要应用于接入设备上,检查用户的合法性。对于合法用户的ND报文进行正常转发,否则直接丢弃,从而防止仿冒用户、仿冒网关的攻击。

ND Detection功能将接入设备上的端口分为两种:ND信任端口、ND非信任端口。

l              对于ND信任端口,不进行用户合法性检查;

l              对于ND非信任端口,如果收到RA和RR消息,则认为是非法报文直接丢弃,如果收到其它类型的ND报文,则需要进行用户合法性检查,以防止仿冒用户的攻击。

用户合法性检查是根据ND报文中源IPv6地址和源MAC地址,检查用户是否是报文收到端口所属VLAN上的合法用户,包括基于IP Source Guard静态绑定表项的检查、基于ND Snooping表项的检查和基于DHCPv6 Snooping安全表项的检查。在这三种表项都存在的情况下,检查过程如下:

l              首先进行基于IP Source Guard静态绑定表项检查。如果找到了对应源IPv6地址和源MAC地址的静态绑定表项,认为该ND报文合法,进行转发。如果找到了对应源IPv6地址的静态绑定表项但源MAC地址不符,认为该ND报文非法,进行丢弃。如果没有找到对应源IPv6地址的静态绑定表项,继续进行DHCPv6 Snooping安全表项、ND Snooping安全表项检查。

l              在基于IP Source Guard静态绑定表项检查之后进行基于DHCPv6 Snooping安全表项、ND Snooping安全表项检查,只要符合两者中任何一个,就认为该ND报文合法,进行转发。

l              如果所有检查都没有找到匹配的表项,则认为是非法报文,直接丢弃。

*

l          IP Source Guard静态绑定表项通过user-bind ipv6命令生成,详细介绍请参见“安全配置指导”中的“IP Source Guard”。

l          DHCPv6 Snooping安全表项通过DHCPv6 Snooping功能自动生成,详细介绍请参见“三层技术-IP业务配置指导”中的“DHCPv6”。

l          ND Snooping安全表项通过ND Snooping功能自动生成,详细介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”。

 

1.3.2  配置ND Detection功能

表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非信任端口

 

*

l          配置ND Detection功能时,必须至少配置IP Source Guard静态绑定表项、DHCPv6 Snooping功能、ND Snooping功能三者之一,否则所有从ND非信任端口收到的ND报文都将被丢弃。

l          在配置IP Source Guard静态绑定表项时,必须指定VLAN参数,否则ND报文将无法通过基于IP Source Guard静态绑定表项的检查。

 

1.3.3  ND Detection功能显示和维护

在完成上述配置后,在任意视图下执行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 ]

 

1.3.4  ND Detection功能配置举例

1. 组网需求

用户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功能对用户的合法性进行检查,保证合法用户的报文可以被正常转发,非法用户的报文被丢弃。

2. 组网图

图1-2 配置ND Detection组网图

 

3. 配置步骤

(1)        配置Switch A

# 使能IPv6转发功能。

<SwitchA> system-view

[SwitchA] ipv6

# 创建VLAN 10。

[SwitchA] vlan 10

[SwitchA-vlan10] quit

# 配置端口GigabitEthernet1/0/3允许VLAN 10的报文通过。

[SwitchA] interface GigabitEthernet 1/0/3

[SwitchA-GigabitEthernet1/0/3] port link-type trunk

[SwitchA-GigabitEthernet1/0/3] port trunk permit vlan 10

[SwitchA-GigabitEthernet1/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

# 创建VLAN 10。

[SwitchB] vlan 10

[SwitchB-vlan10] quit

# 配置端口GigabitEthernet1/0/1~GigabitEthernet1/0/3允许VLAN 10的报文通过。

[SwitchB] interface GigabitEthernet 1/0/1

[SwitchB-GigabitEthernet1/0/1] port link-type trunk

[SwitchB-GigabitEthernet1/0/1] port trunk permit vlan 10

[SwitchB-GigabitEthernet1/0/1] quit

[SwitchB] interface GigabitEthernet 1/0/2

[SwitchB-GigabitEthernet1/0/2] port link-type trunk

[SwitchB-GigabitEthernet1/0/2] port trunk permit vlan 10

[SwitchB-GigabitEthernet1/0/2] quit

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] port link-type trunk

[SwitchB-GigabitEthernet1/0/3] port trunk permit vlan 10

[SwitchB-GigabitEthernet1/0/3] quit

# 使能ND Snooping功能。

[SwitchB] vlan 10

[SwitchB-vlan10] ipv6 nd snooping enable

# 使能ND Detection功能。

[SwitchB-vlan10] ipv6 nd detection enable

[SwitchB-vlan10] quit

# 将上行端口GigabitEthernet1/0/3配置为ND信任端口,下行端口GigabitEthernet1/0/1和GigabitEthernet1/0/2采用缺省配置,即为ND非信任端口。

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] ipv6 nd detection trust

完成上述配置后,对于端口GigabitEthernet1/0/1和GigabitEthernet1/0/2收到的ND报文,基于ND Snooping安全表项进行检查。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!