• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

19-安全配置指导

目录

20-uRPF配置

本章节下载 20-uRPF配置  (355.02 KB)

20-uRPF配置


1 uRPF

1.1  uRPF简介

uRPF(unicast Reverse Path Forwarding,单播反向路径转发)是一种单播逆向路由查找技术,用来防范基于源地址欺骗的攻击手段,例如基于源地址欺骗的DoS(Denial of Service,拒绝服务)攻击和DDoS(Distributed Denial of Service,分布式拒绝服务)攻击。

1.1.1  uRPF应用场景

对于使用基于IPv4地址验证的应用来说,基于源地址欺骗的攻击手段可能导致未被授权用户以他人,甚至是管理员的身份获得访问系统的权限。因此即使响应报文没有发送给攻击者或其它主机,此攻击方法也可能会造成对被攻击对象的破坏。

图1-1 源地址欺骗攻击示意图

 

图1-1所示,攻击者在Device A上伪造并向Device B发送大量源地址为2.2.2.1的报文,Device B响应这些报文并向真正的“2.2.2.1”(Device C)回复报文。因此这种非法报文对Device B和Device C都造成了攻击。如果此时网络管理员错误地切断了Device C的连接,可能会导致网络业务中断甚至更严重的后果。

攻击者也可以同时伪造不同源地址的攻击报文或者同时攻击多个服务器,从而造成网络阻塞甚至网络瘫痪。

uRPF可以有效防范上述攻击。一般情况下,设备在收到报文后会根据报文的目的地址对报文进行转发或丢弃。而uRPF可以在转发表中查找报文源地址对应的接口是否与报文的入接口相匹配,如果不匹配则认为源地址是伪装的并丢弃该报文,从而有效地防范网络中基于源地址欺骗的恶意攻击行为的发生。

1.1.2  uRPF检查方式

uRPF检查有严格(strict)型和松散(loose)型两种。

1. 严格型uRPF检查

不仅检查报文的源地址是否在转发表中存在,而且检查报文的入接口与转发表是否匹配。

在一些特殊情况下(如非对称路由,即设备上行流量的入接口和下行流量的出接口不相同),严格型uRPF检查会错误地丢弃非攻击报文。

一般将严格型uRPF检查布置在ISP的用户端和ISP端之间。

2. 松散型uRPF检查

仅检查报文的源地址是否在转发表中存在,而不再检查报文的入接口与转发表是否匹配。

松散型uRPF检查可以避免错误的拦截合法用户的报文,但是也容易忽略一些攻击报文。

一般将松散型uRPF检查布置在ISP-ISP端。另外,如果用户无法保证路由对称,可以使用松散型uRPF检查。

1.1.3  uRPF扩展功能

1. 链路层检查

严格型uRPF检查中还可以进一步进行链路层检查,即用源地址查转发表得到的下一跳地址再查一次ARP表,确保报文的源MAC地址和查到的ARP表项中的MAC地址一样才允许报文通过。

链路层检查功能对于运营商用一个三层以太网接口接入大量PC机用户时部署非常合适。

松散型uRPF检查不支持链路层检查功能。

2. 与缺省路由配合使用

当设备上配置了缺省路由后,会导致uRPF根据转发表检查源地址时,所有源地址都能查到下一跳。针对这种情况,支持用户配置uRPF是否允许匹配缺省路由。如果允许匹配缺省路由(配置allow-default-route),则当uRPF查询转发表得到的结果是缺省路由时,认为查到了匹配的表项;如果不允许匹配缺省路由,则当uRPF查询转发表得到的结果是缺省路由时,认为没有查到匹配的表项。

缺省情况下,如果uRPF查询转发表得到的结果是缺省路由,则按没有查到表项处理,丢弃报文。

运营商网络边缘位置一般不会有缺省路由指向客户侧设备,所以一般不需要配置allow-default-route。如果在客户侧边缘设备接口上面启用uRPF,这时往往会有缺省路由指向运营商,此时需要配置allow-default-route

3. 与ACL配合使用

如果用户确认具有某些特征的报文是合法报文,则可以在ACL中指定这些报文,那么这些报文在逆向路由不存在的情况下,不做丢弃处理,按正常报文进行转发。

1.1.4  uRPF处理流程

说明

组播报文不进行uRPF检查。

uRPF的处理流程如图1-2所示。

图1-2 uRPF处理流程图

 

(1)     检查地址合法性:对于目的地址是组播地址的报文直接放行。否则,进入步骤(2);

(2)     检查用户是否配置为松散型检查,如果是,则根据报文源IP地址查找转发表;否则,根据报文源IP地址和入接口查找转发表。检查完成后进入步骤(3);

(3)     对于源IP地址是全零的报文,如果目的地址是广播,则放行;如果目的地址不是广播,则进入步骤(8);

(4)     对于源IP地址不是全零的报文,判断报文的源IP地址在转发表中是否存在匹配的单播路由:如果不存在,则进入步骤(8),否则进入步骤(5);

(5)     如果转发表中匹配的是上送本机路由,即查到InLoop接口,则检查报文入接口是否是InLoop接口:如果是,则直接放行,否则进入步骤(8);如果转发表中匹配的不是上送本机路由则继续步骤(6);

(6)     如果转发表中匹配的是缺省路由,则检查用户是否配置了允许匹配缺省路由(参数allow-default-route):如果没有配置,则进入步骤(8),否则进入步骤(7);如果转发表中匹配的不是缺省路由,则进入步骤(7);

(7)     检查用户是否配置了对链路层信息进行检查(参数link-check):如果没有配置,则认为报文通过检查,进行正常的转发。如果已经配置,则根据转发表中的下一跳查询ARP表,并比较IP报文源MAC地址与ARP表中的MAC地址是否一致。如果两者一致,则报文通过检查并放行;如果查询失败或两者不一致,则进入步骤(8);

(8)     ACL检查流程。如果报文符合ACL,则报文继续进行正常的转发(此类报文称为被抑制丢弃的报文);否则报文被丢弃。

1.1.5  uRPF典型组网应用

图1-3 uRPF典型组网应用

 

通常在ISP上配置uRPF,在ISP与用户端,配置严格型uRPF检查,在ISP与ISP端,配置松散型uRPF检查。

如果有特殊用户,或者具有一定特征,需要特殊处理的报文,可以配置ACL规则。

1.2  uRPF配置限制和指导

如果在接口下打开uRPF功能,用户可以通过display ip interface命令查看uRPF功能丢弃报文的统计信息(uRPF Information:Drops表示被丢弃的报文数目;Suppressed drops表示被抑制丢弃的报文数目);但如果在全局下打开uRPF功能,系统不会输出相关统计信息。

配置松散型uRPF检查时不建议配置allow-default-route参数,否则可能导致防攻击能力失效。

当同时在全局和接口上配置uRPF功能时,接口上的配置优先生效。

1.3  全局开启uRPF

1. 配置限制和指导

全局配置的uRPF对设备的所有接口生效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启全局uRPF功能。

ip urpf { loose [ allow-default-route ] [ acl acl-number ] | strict [ allow-default-route ] [ acl acl-number ] [ link-check ] }

缺省情况下,uRPF功能处于关闭状态。

1.4  接口上开启uRPF

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     开启uRPF功能。

ip urpf { loose [ allow-default-route ] [ acl acl-number ] | strict [ allow-default-route ] [ acl acl-number ] [ link-check ] }

缺省情况下,uRPF功能处于关闭状态。

 

 

1.5  虚拟模板接口上开启uRPF

1. 功能简介

在虚拟模板接口视图下开启uRPF功能可以对接口上的L2TP和PPPoE用户的流量进行合法性检查。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚拟模板接口视图。

interface virtual-template number

(3)     开启uRPF功能。

ip urpf { loose [ allow-default-route ] [ acl acl-number ] | strict [ allow-default-route ] [ acl acl-number ] }

缺省情况下,uRPF功能处于关闭状态。

 

1.6  uRPF显示和维护

可在任意视图下执行以下命令,显示uRPF的配置信息。

display ip urpf [ interface interface-type interface-number ] [ slot slot-number ]

1.7  uRPF典型配置举例

1.7.1  接口上开启uRPF配置举例

1. 组网需求

·     客户Router A与ISP Router B直连,在Router B的接口GigabitEthernet0/0/1上配置严格型uRPF检查,源地址能够匹配ACL 2010的报文在任何情况下都能通过检查。

·     在Router A的接口GigabitEthernet0/0/1上配置严格型uRPF检查,同时允许匹配缺省路由。

2. 组网图

图1-4 uRPF接口配置举例组网图

3. 配置步骤

(1)     配置Router B

# 配置ACL 2010,允许10.1.1.0/24网段的流量通过uRPF检查。

<RouterB> system-view

[RouterB] acl basic 2010

[RouterB-acl-ipv4-basic-2010] rule permit source 10.1.1.0 0.0.0.255

[RouterB-acl-ipv4-basic-2010] quit

# 配置接口GigabitEthernet0/0/1的IP地址。

[RouterB] interface gigabitethernet 0/0/1

[RouterB-GigabitEthernet0/0/1] ip address 1.1.1.2 255.255.255.0

# 在接口GigabitEthernet0/0/1上配置严格型uRPF检查。

[RouterB-GigabitEthernet0/0/1] ip urpf strict acl 2010

(2)     配置Router A

# 配置接口GigabitEthernet0/0/1。

<RouterA> system-view

[RouterA] interface gigabitethernet 0/0/1

[RouterA-GigabitEthernet0/0/1] ip address 1.1.1.1 255.255.255.0

# 在接口GigabitEthernet0/0/1上配置严格型uRPF检查,同时允许匹配缺省路由。

[RouterA-GigabitEthernet0/0/1] ip urpf strict allow-default-route


2 IPv6 uRPF

2.1  IPv6 uRPF简介

IPv6 uRPF(unicast Reverse Path Forwarding,单播反向路径转发)是一种单播逆向路由查找技术,用来防范基于源地址欺骗的攻击手段,例如基于源地址欺骗的DoS(Denial of Service,拒绝服务)攻击和DDoS(Distributed Denial of Service,分布式拒绝服务)攻击。

2.1.1  IPv6 uRPF应用场景

对于使用基于IPv6地址验证的应用来说,基于源地址欺骗的攻击手段可能导致未被授权用户以他人,甚至是管理员的身份获得访问系统的权限。因此即使响应报文没有发送给攻击者或其它主机,此攻击方法也可能会造成对被攻击对象的破坏。

图2-1 源地址欺骗攻击示意图

 

图2-1所示,攻击者在Router A上伪造并向Router B发送大量源地址为2000::1的报文,Router B响应这些报文并向真正的“2000::1”(Router C)回复报文。因此这种非法报文对Router B和Router C都造成了攻击。如果此时网络管理员错误地切断了Router C的连接,可能会导致网络业务中断甚至更严重的后果。

攻击者也可以同时伪造不同源地址的攻击报文或者同时攻击多个服务器,从而造成网络阻塞甚至网络瘫痪。

IPv6 uRPF可以有效防范上述攻击。一般情况下,设备在收到报文后会根据报文的目的地址对报文进行转发或丢弃。而IPv6 uRPF可以在转发表中查找报文源地址对应的接口是否与报文的入接口相匹配,如果不匹配则认为源地址是伪装的并丢弃该报文,从而有效地防范网络中基于源地址欺骗的恶意攻击行为的发生。

2.1.2  IPv6 uRPF检查方式

IPv6 uRPF检查有严格(strict)型和松散(loose)型两种。

1. 严格型IPv6 uRPF检查

不仅检查报文的源地址是否在IPv6转发表中存在,而且检查报文的入接口与IPv6转发表是否匹配。

在一些特殊情况下(如非对称路由,即设备上行流量的入接口和下行流量的出接口不相同),严格型IPv6 uRPF检查会错误地丢弃非攻击报文。

一般将严格型IPv6 uRPF检查布置在ISP的用户端和ISP端之间。

2. 松散型IPv6 uRPF检查

仅检查报文的源地址是否在IPv6转发表中存在,而不再检查报文的入接口与IPv6转发表是否匹配。

松散型IPv6 uRPF检查可以避免错误的拦截合法用户的报文,但是也容易忽略一些攻击报文。

一般将松散型IPv6 uRPF检查布置在ISP-ISP端。另外,如果用户无法保证路由对称,可以使用松散型IPv6 uRPF检查。

2.1.3  IPv6 uRPF扩展功能

1. 与缺省路由配合使用

当设备上配置了缺省路由后,会导致IPv6 uRPF根据IPv6转发表检查源地址时,所有源地址都能查到下一跳。针对这种情况,支持用户配置IPv6 uRPF是否允许匹配缺省路由。如果允许匹配缺省路由(配置allow-default-route),则当IPv6 uRPF查询IPv6转发表得到的结果是缺省路由时,认为查到了匹配的表项;如果不允许匹配缺省路由,则当IPv6 uRPF查询IPv6转发表得到的结果是缺省路由时,认为没有查到匹配的表项。

缺省情况下,如果IPv6 uRPF查询IPv6转发表得到的结果是缺省路由,则按没有查到表项处理,丢弃报文。

运营商网络边缘位置一般不会有缺省路由指向客户侧设备,所以一般不需要配置allow-default-route。如果在客户侧边缘设备接口上面启用IPv6 uRPF,这时往往会有缺省路由指向运营商,此时需要配置allow-default-route

2. 与ACL配合使用

如果用户确认具有某些特征的报文是合法报文,则可以在IPv6 ACL中指定这些报文,那么这些报文在逆向路由不存在的情况下,不做丢弃处理,按正常报文进行转发。

2.1.4  IPv6 uRPF处理流程

IPv6 uRPF的处理流程如图2-2所示。

图2-2 IPv6 uRPF处理流程图

(1)     检查地址合法性:对于目的地址是组播地址的报文直接放行。否则,进入步骤(2);

(2)     检查用户是否配置为松散型检查,如果是,则根据报文源IP地址查找IPv6转发表;否则,根据报文源IP地址和入接口查找IPv6转发表。检查完成后进入步骤(3);

(3)     对于源地址是链路本地地址的报文,检查报文入接口是否是InLoop接口:如果是,则直接放行,否则进入步骤(4);

(4)     对于源地址是全零地址的报文,直接进入步骤(8),否则进入步骤(5);

(5)     检查报文的源地址在IPv6转发表中是否存在匹配的单播路由:如果在IPv6转发表中查找失败,则进入步骤(8),否则进入步骤(6);

(6)     如果IPv6转发表中匹配的是上送本机路由,则检查报文入接口是否是InLoop接口:如果是,则直接放行,否则进入步骤(8);如果IPv6转发表中匹配的不是上送本机路由则继续步骤(7);

(7)     如果IPv6转发表中匹配的是缺省路由,则检查用户是否配置了允许匹配缺省路由(参数allow-default-route),如果没有配置,则进入步骤(8),否则进行正常转发;如果IPv6转发表中匹配的不是缺省路由,则进入步骤(8);

(8)     IPv6 ACL检查流程。如果报文符合IPv6 ACL,则报文继续进行正常的转发(此类报文称为被抑制丢弃的报文);否则报文被丢弃。

2.1.5  IPv6 uRPF典型组网应用

图2-3 IPv6 uRPF典型组网应用

 

通常在ISP上配置uRPF,在ISP与用户端,配置严格型IPv6 uRPF检查,在ISP与ISP端,配置松散型IPv6 uRPF检查。

如果有特殊用户,或者具有一定特征,需要特殊处理的报文,可以配置IPv6 ACL规则。

2.2  IPv6 uRPF配置限制和指导

如果在接口下打开IPv6 uRPF功能,用户可以通过display ipv6 interface命令查看IPv6 uRPF功能丢弃报文的统计信息(IPv6 uRPF Information:Drops表示被丢弃的报文数目;Suppressed drops表示被抑制丢弃的报文数目);但如果在全局下打开IPv6 uRPF功能,系统不会输出相关统计信息。

配置松散型IPv6 uRPF检查时不建议配置allow-default-route参数,否则可能导致防攻击能力失效。

当同时在全局和接口上配置IPv6 uRPF功能时,接口上的配置优先生效。

严格型uRPF不能与等价路由功能同时使用,否则匹配等价路由的业务报文无法通过严格型uRPF的检查,导致业务报文被丢弃。

2.3  全局开启IPv6 uRPF

1. 配置限制和指导

全局配置的IPv6 uRPF对设备的所有接口生效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启全局IPv6 uRPF功能。

ipv6 urpf { loose | strict } [ allow-default-route ] [ acl acl-number ]

缺省情况下,IPv6 uRPF功能处于关闭状态。

2.4  接口上开启IPv6 uRPF

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     开启IPv6 uRPF功能。

ipv6 urpf { loose | strict } [ allow-default-route ] [ acl acl-number ]

缺省情况下,IPv6 uRPF功能处于关闭状态。

2.5  虚拟模板接口上开启IPv6 uRPF

1. 功能简介

在虚拟模板接口视图下开启IPv6 uRPF功能可以对接口上的L2TP和PPPoE用户的流量进行合法性检查。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入虚拟模板接口视图。

interface virtual-template number

(3)     开启IPv6 uRPF功能。

ipv6 urpf { loose | strict } [ allow-default-route ] [ acl acl-number ]

缺省情况下,IPv6 uRPF功能处于关闭状态。

2.6  IPv6 uRPF显示和维护

可在任意视图下执行以下命令,显示IPv6 uRPF的配置信息。

display ipv6 urpf [ interface interface-type interface-number ] [ slot slot-number ]

2.7  IPv6 uRPF典型配置举例

2.7.1  接口上开启IPv6 uRPF配置举例

1. 组网需求

·     客户Router A与ISP Router B直连,在Router B的接口GigabitEthernet0/0/1上配置严格型IPv6 uRPF检查,源地址能够匹配IPv6 ACL 2010的报文在任何情况下都能通过检查。

·     在Router A的接口GigabitEthernet0/0/1上配置严格型IPv6 uRPF检查,同时允许匹配缺省路由。

2. 组网图

图2-4 IPv6 uRPF接口配置举例组网图

3. 配置步骤

(1)     配置Router B

# 配置IPv6 ACL 2010,允许1010::/64网段的流量通过IPv6 uRPF检查。

<RouterB> system-view

[RouterB] acl ipv6 basic 2010

[RouterB-acl-ipv6-basic-2010] rule permit source 1010:: 64

[RouterB-acl-ipv6-basic-2010] quit

# 配置接口GigabitEthernet0/0/1的IPv6地址。

[RouterB] interface gigabitethernet 0/0/1

[RouterB-GigabitEthernet0/0/1] ipv6 address 1000::2/64

# 在接口GigabitEthernet0/0/1上配置严格型IPv6 uRPF检查。

[RouterB-GigabitEthernet0/0/1] ipv6 urpf strict acl 2010

(2)     配置Router A

# 配置接口GigabitEthernet0/0/1。

<RouterA> system-view

[RouterA] interface gigabitethernet 0/0/1

[RouterA-GigabitEthernet0/0/1] ip address 1000::1/64

# 在接口GigabitEthernet0/0/1上配置严格型IPv6 uRPF检查,同时允许匹配缺省路由。

[RouterA-GigabitEthernet0/0/1] ipv6 urpf strict allow-default-route

 

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

新华三官网
联系我们