选择区域语言: EN CN HK

H3C CR19000核心路由器安全加固手册(V7)-5W100

手册下载

H3C CR19000核心路由器安全加固手册(V7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2019 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文档中的信息可能变动,恕不另行通知。


 

1 本书约定·· 1

1.1 读者对象·· 1

1.2 接口编号约定·· 1

1.3 特别申明·· 1

2 概述·· 1

2.1 安全威胁·· 1

2.1.1 管理平面和控制平面的安全威胁·· 1

2.1.2 转发平面的安全威胁·· 2

2.2 安全体系架构·· 3

2.3 安全加固的基本原则·· 4

3 管理平面安全加固·· 5

3.1 登录及访问设备的安全·· 5

3.1.1 通过Console/USB口登录·· 5

3.1.2 通过Stelnet登录设备·· 6

3.1.3 通过Restful访问设备·· 7

3.1.4 通过SNMP访问设备·· 8

3.1.5 文件访问安全·· 9

3.2 登录用户及权限管理·· 11

3.2.1 管理登录用户权限(RBAC·· 11

3.2.2 AAA(认证、授权、计费)·· 11

3.2.3 命令行授权·· 12

3.2.4 Password Control 12

3.3 密码设置安全·· 13

3.4 设备管理安全·· 13

3.4.1 配置密码恢复功能·· 13

3.4.2 关闭USB接口·· 13

3.5 配置文件加密·· 14

3.6 安全日志·· 14

3.7 VXLAN安全·· 15

3.7.1 MAC地址学习·· 15

3.7.2 ARP/ND安全·· 16

4 控制平面安全加固·· 16

4.1 ARP攻击防御·· 16

4.1.1 MAC为组播的ARP表项检查功能·· 16

4.1.2 泛洪类ARP报文攻击防范·· 17

4.1.3 防御ARP欺骗类攻击功能·· 19

4.2 ND攻击防御·· 21

4.2.1 ND协议报文源MAC地址一致性检查功能·· 21

4.3 接入业务安全·· 21

4.3.1 PPP· 21

4.4 DHCP安全·· 25

4.4.1 防止DHCP饿死攻击功能·· 25

4.4.2 DHCP用户类白名单功能·· 26

4.4.3 DHCP中继用户地址表项管理功能·· 27

4.5 DNS安全·· 28

4.6 ICMP安全·· 28

4.7 TCP安全·· 29

4.7.1 SYN Cookie功能·· 29

4.7.2 禁止发送TCP报文时添加TCP时间戳选项信息·· 29

4.8 路由协议安全·· 29

4.8.1 RIP/RIPng· 29

4.8.2 OSPF/OSPFv3· 31

4.8.3 IS-IS· 32

4.8.4 BGP· 32

4.9 组播安全·· 35

4.9.1 PIM/IPv6 PIM·· 35

4.9.2 MSDP· 36

4.10 MPLS安全·· 37

4.10.1 LDP· 37

4.10.2 RSVP· 37

4.11 控制平面限速及丢包告警·· 38

4.11.1 协议报文限速·· 38

4.12 高可靠性协议报文认证·· 38

4.12.1 DLDP报文认证·· 38

4.12.2 VRRP报文认证·· 39

4.12.3 BFD控制报文认证·· 39

4.13 时间管理协议报文认证·· 40

4.13.1 NTP服务的访问控制权限·· 40

4.13.2 NTP报文认证·· 41

4.13.3 SNTP报文认证·· 45

5 转发平面安全加固·· 47

5.1 广播、组播、未知单播抑制·· 47

5.1.1 风暴抑制和流量阈值控制·· 47

5.2 MAC地址安全管理·· 47

5.2.1 关闭MAC地址学习·· 47

5.2.2 控制MAC地址学习·· 48

5.3 数据流保护·· 48

5.3.1 IPsec· 48

5.4 报文&流量过滤·· 49

5.4.1 ACL· 49

5.4.2 流量过滤·· 49

5.4.3 Flowspec· 50

5.4.4 uRPF· 50

5.5 攻击检测与防范·· 51

5.5.1 DoS攻击检测与防范·· 51

5.5.2 基于IP的攻击防御·· 51

 


1 本书约定

1.1  读者对象

本手册主要适用于如下工程师:

·     网络规划人员

·     现场技术支持与维护人员

·     负责网络配置和维护的网络管理员

1.2  接口编号约定

本手册中出现的接口编号仅作示例,并不代表设备上的实际接口编号。实际使用过程中,请以设备上存在的接口编号为准。

1.3  特别申明

本文档不严格与具体软、硬件版本对应,如果使用过程中与产品实际情况有差异,请以设备实际情况为准。

本文档中的配置均是在实验室环境下进行的配置和验证,配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置,为了保证配置效果,请确认现有配置和以下举例中的配置不冲突。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。

2 概述

本文档针对基于Comware系统的设备,指导用户从管理平面、控制平面和转发平面对设备进行加固维护。

2.1  安全威胁

2.1.1  管理平面和控制平面的安全威胁

设备的管理平面给网络管理人员提供TelnetSSHWebSNMP等方式来管理设备;设备的控制平面用于控制和管理所有网络协议的运行,为转发平面提供数据转发所必须的各种网络信息和转发查询表项。

由于网络设备之间或网络设备与其它网络实体之间的通信可能会穿过各种各样的中间系统,而中间系统的可信性以及对端身份的真实性会给设备的管理平面和控制平面带来各种安全威胁。另外,如果设备上的安全策略配置不当,也会威胁到设备的安全。

设备的管理平面和控制平面常见的安全威胁主要包括以下几类:

·     非授权的访问

攻击者通过伪装身份、重放管理会话或者中间人攻击来获取管理员权限,这会危害到设备的安全以及设备所处网络的安全。建议管理员使用强身份认证,以及支持防重放、信息完整性验证的安全通道来访问设备。同时,建议在设备上启用操作日志、安全日志功能对管理行为进行记录和审计。

·     弱密钥

弱密钥很容易被破解。设备上支持启用密码策略来防止用户配置弱密钥。

·     敏感信息泄漏

由于网络节点间的通信所经过的中间系统的可信性无法保障,通信内容可能会被窥探;设备存储介质中的信息也可能在介质转移、替换的过程中存在信息泄露的风险。为了防止信息泄露,设备的管理通道需要使用安全协议保护,例如SSHIPsecSFTPHTTPS等,禁止使用TelnetFTPTFTPHTTP等没有保护的通道进行通信。另外,建议使用配置文件加密功能,以及对从现网替换下来且不再使用的存储介质进行格式化。

·     消息篡改和伪造

报文在网络中传输的过程中,可能会被恶意篡改,或者被攻击者捕获之后重放,攻击者借此向设备中注入恶意的数据,或直接破坏设备的合法数据。例如,通过更改路由协议报文的数据来破坏或改变设备的路由表,使用户的流量无法正常转发。为防止该类型攻击,可使用带完整性验证,防重放等功能的安全协议对数据进行保护。

·     DDoS

DDoSDistributed Denial of Service,分布式拒绝服务)是指攻击者利用大流量来消耗设备的CPU、内存、连接数、带宽等资源,使合法用户无法使用网络。可使用白名单,黑名单,以及限制未识别流量上送控制平面的速率来防止此类攻击。

·     管理员配置失误

管理员配置失误会造成设备的访问控制策略、权限控制策略的配置错误,或者造成授权不当的结果。为了及早发现此类问题,可以通过实施前对配置进行审核,实施后定期观察实施效果、查看操作日志和系统运行日志来发现配置中的错误。

2.1.2  转发平面的安全威胁

设备的转发平面需要处理各端口上大量不同类型数据流量的转发任务。如果数据流量不合法,或者转发平面处理资源被挤占,将会影响设备对正常数据流量的处理效率,甚至导致非法流量向网络中扩散。常见的转发平面威胁如下:

·     畸形报文攻击

畸形报文攻击利用网络设备处理报文的漏洞使设备出现异常,使设备无法提供正常服务。可以打开攻击检测与防范中相应攻击的开关来防止此类攻击。

·     DDoS攻击

攻击者使用大流量对设备进行攻击,消耗设备的CPU、内存、连接、带宽等资源。对于这类威胁,可以通过限制设备资源占用以及识别合法用户等措施,尽量保证已识别的合法用户对网络的使用,并对未识别的用户的流量进行一定限制。

·     身份仿冒

网络中的很多攻击行为都伴随着身份仿冒,而网络的开放性给身份识别带来了困难,尤其是在转发平面。转发平面提供了一些基本的方法可在一定程度上防止身份仿冒,比如SYN CookieARP/ND检测等。

·     消息篡改和伪造

消息的完整性至关重要,虚假的数据会使网络故障、甚至瘫痪。可以使用IPsec等安全协议来保护网络数据,提供完整性、私密性、身份验证等功能。

2.2  安全体系架构

Comware系统的安全体系架构如2-1所示:

图2-1 Comware系统安全体系架构图

 

设备基于以上安全体系架构在不同层面实施相应的安全防护,具体过程如下:

(1)     对于硬件转发类设备,收到目的地址为本机的报文并上送CPU处理前,会通过以下两种通道机制来保证上层的控制平面/管理平面不会受到DoS/DDoS等大流量的攻击:

¡     白名单:对于已经建立连接,并确认来源是可靠的报文,设备会下发白名单保证其优先上送CPU

¡     优先级队列:对于由控制平面、管理平面处理的应用流量,在设备没有与其建立连接之前,因不能匹配到白名单,会进入优先级队列,根据不同的应用优先级处理。

(2)     对于由转发平面转发的报文,设备提供了一系列的措施来保证设备的安全和网络用户的安全:

¡     畸形报文检测

¡     包过滤

¡     防仿冒,例如uRPF

¡     DDoS攻击防范

¡     资源占用限制:包括连接数限制、ARP/ND表项限制等等,防止DDoS等恶意流量攻击。

¡     数据保护协议:IPsec等,为本机和用户数据提供数据私密性、完整性、放重放等安全保护。

(3)     对于目的地址为本机的业务报文,可以采用以下安全加固策略:

a.     通过控制平面的QoS策略对上送控制平面/管理平面的流量进行限制,例如限制带宽等。另外,各协议本身(TCPICMP/ICMPv6ARP/ND)也有相应的防护措施。

b.     在控制平面/管理平面,各业务模块采用相应的安全协议或安全选项,对业务报文提供更好的安全服务。

2.3  安全加固的基本原则

虽然设备可提供丰富的安全加固策略,但对于设备而言,并不是实施的安全加固策略越多效果越好。每一项安全加固措施对网络、业务都有或多或少的影响,比如会影响设备性能、内存资源、部署成本、用户使用习惯。所以,需要根据网络和业务的特点来综合评估可能存在的风险和威胁,并在充分了解到各类安全加固策略可能对网络和业务产生的影响后作出恰当的选择。

安全加固策略选择的普遍原则如下:

·     根据安全风险和威胁发生的可能性由大到小的顺序,依次考虑相应的安全加固策略;

·     按照安全加固策略对网络和业务影响程度由小到大的顺序,逐步实施各策略,并观察效果;

·     每一次安全加固策略实施后要观察效果,并根据效果调整当前策略以及选择后续的加固策略;

·     遵循业务优先原则,将安全加固策略对业务的影响降到最低,或者将其控制在可接受的范围内。

3 管理平面安全加固

3.1  登录及访问设备的安全

3.1.1  通过Console/USB口登录

【安全威胁】

Console/USB口均属于物理接口,通过它们进行登录是登录设备的基本方式之一如果攻击者获取了Console/USB口的使用权限,在缺省情况下可以非常容易登录到设备上,获取到设备的管理权限。

【安全加固策略】

可以在用户线/用户线类视图下配置以下两种认证方式,提高通过Console/USB登录设备的安全性:

·     password方式:表示下次使用该用户线登录时,需要输入密码。只有密码正确,用户才能登录到设备上。配置认证方式为password后,请妥善保存密码。FIPS模式下不支持该认证方式。

·     scheme方式:表示下次使用该用户线登录设备时需要进行用户名和密码认证,用户名或密码错误,均会导致登录失败。配置认证方式为scheme后,请妥善保存用户名及密码。

【注意事项】

改变Console/USB口登录的认证方式后,新认证方式对新登录的用户生效。

FIPS模式下,不支持passwordnone方式,仅支持scheme方式。

【配置举例】

·     通过Console/USB登录(仅以用户线视图为例

# Console用户线视图下设置认证方式为密码认证(password方式)

<Sysname> system-view

[Sysname] line console 0

[Sysname-line-console0] authentication-mode password

# 设置认证密码为明文123456123456仅为示例)。

[Sysname-line-console0] set authentication password simple 123456

# Console用户线视图下设置认证方式为AAA认证(scheme方式)

<Sysname> system-view

[Sysname] line console 0

[Sysname-line-console0] authentication-mode scheme

[Sysname-line-console0] quit

# ISP域视图下为login用户配置认证方法。

如果选择本地认证,请配置本地用户及相关属性;如果选择远程认证,请配置RADIUSHWTACACSLDAP方案。相关配置的详细介绍请参见“安全配置指导”中的“AAA”。

3.1.2  通过Stelnet登录设备

【安全威胁】

在使用Stelnet登录设备的组网环境中,设备将会面临以下安全威胁:

·     攻击者监听到设备的SSH服务端口后,可通过多次尝试连接,获取设备的访问权限。

·     设备可支持的SSH用户数有限,攻击者通过伪造IP地址,仿冒大量的合法用户登录设备,使得用户数达到上限后,其他合法用户无法登录。

【安全加固策略】

针对以上攻击行为,可以在设备上配置如下安全策略:

·     password认证

利用AAA对客户端身份进行认证。用户在客户端上输入用户名和密码后,该密码将被加密后发送给服务器,通过服务器验证用户名和密码的合法性后,用户才可以登录设备。

·     publickey认证

采用数字签名的方式来认证客户端。客户端发送包含用户名、公钥和公钥算法或者携带公钥信息的数字证书的认证请求给服务器端。服务器对公钥进行合法性检查,如果合法,则发送消息请求客户端的数字签名;如果不合法,则直接发送失败消息;服务器收到客户端的数字签名之后,使用客户端的公钥对其进行解密,并根据计算结果返回认证成功或失败的消息

·     password-publickey认证

对于SSH2版本的客户端,要求同时进行passwordpublickey两种方式的认证,且只有两种认证均通过的情况下,才认为客户端身份认证通过;对于SSH1版本的客户端,只要通过其中任意一种认证即可。

·     关闭Stelnet服务

当设备上开启Stelnet服务器功能后SSH服务端口号易被攻击者扫描到。安全起见,在不使用Stelnet服务时,可以关闭Stelnet服务器功能

·     改变SSH服务端口号

缺省情况下,SSH服务的端口号为知名端口号22,易被扫描和攻击。通过修改SSH服务的端口号为非知名端口号,可以降低被扫描的风险。

·     SSH用户进行访问控制

只有匹配ACLpermit规则的IPv4 SSH客户端可以访问设备,其他客户端不可以访问设备。

·     限制同时在线的最大SSH用户数

当前在线SSH用户数超过设定的最大值时,系统会拒绝新的SSH连接请求。

【注意事项】

改变Stelnet登录的认证方式后,新认证方式对新登录的用户生效。

【配置举例】

·     # 配置服务器采用password认证(用户名client001仅为示例)。

<Sysname> system-view

[Sysname] ssh user client001 service-type stelnet authentication-type password

# 若进行本地认证,则还需要创建本地用户;若在远程服务器(如RADIUS服务器)进行认证,则还需要在服务器上创建相应的SSH用户。相关配置的详细介绍请参见“安全配置指导”中的“AAA”。

·     # 配置服务器采用publickey认证(用户名client002、公钥clientkey仅为示例)

<Sysname> system-view

[Sysname] ssh user client002 service-type stelnet authentication-type publickey assign publickey clientkey

# 创建同名的本地用户,用于下发授权属性:工作目录、用户角色。相关配置的详细介绍请参见“安全配置指导”中的“AAA

·     # 关闭Stelnet服务。

<Sysname> system-view

[Sysname] undo ssh server enable

·     # 设置SSH服务端口号为10251025仅为示例)。

<Sysname> system-view

[Sysname] ssh server port 1025

·     # 只允许IPv4地址为1.1.1.1SSH用户向设备发起SSH访问ACL2001仅为示例)。

<Sysname> system-view

[Sysname] acl basic 2001

[Sysname-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0

[Sysname-acl-ipv4-basic-2001] quit

[Sysname] ssh server acl 2001

·     # 限制同时在线的最大SSH用户数为1616仅为示例)。

<Sysname> system-view

[Sysname] aaa session-limit ssh 16

3.1.3  通过Restful访问设备

【安全加固策略】

基于HTTPRESTful方式登录设备并不安全,推荐用户使用基于HTTPSRESTful方式登录设备。在设备上开启基于HTTPSRESTful功能,配置基于HTTPSRESTful功能与SSL服务器端策略关联,可以进一步提高基于HTTPSRESTful功能的安全性。

【注意事项】

配置基于HTTPSRESTful功能与SSL服务器端策略关联后,如果对关联的SSL服务器端策略进行了更改,需要依次执行undo restful https enablerestful https enable命令,新的策略才会生效。

【配置举例】

# 配置SSL服务器端策略。

关于SSL服务器端策略的具体配置,请参见“安全配置指导”中的“SSL”。

# 配置基于HTTPSRESTful功能与SSL服务器端策略policy1关联。

<Sysname> system-view

[Sysname] restful https ssl-server-policy policy1

# 开启基于HTTPSRESTful功能。

[Sysname] restful https enable

3.1.4  通过SNMP访问设备

【安全威胁】

设备作为SNMP Agent时,将面临以下安全威胁:

·     SNMPv1SNMPv2c的团体名被窃取,非法NMS使用该团体名访问设备。

·     SNMP报文被窃听、篡改。

·     NMS对一些重要参数误操作,导致设备不能正常工作。

【安全加固策略】

针对以上攻击行为,设备提供了以下功能来加强通过SNMP访问设备的安全性:

·     当不需要通过NMS管理设备时,可关闭SNMP功能。(SNMP功能缺省处于关闭状态)

·     除了SNMPv1SNMPv2c版本,设备支持安全性更高的SNMPv3三种版本。SNMPv3采用用户名认证,可配置认证密码和加密密码。其中,

¡     用户名和认证密码用于对NMS进行身份认证,以免非法NMS访问设备;

¡     加密密码用于对NMS和设备之间传输的报文进行加密,以免报文被窃听。

·     支持VACMRBAC两种访问控制方式。

¡     VACM(基于视图的访问控制模型):将团体名/用户名与指定的MIB视图进行绑定,可以限制NMS能够访问哪些MIB对象,以及对MIB对象可执行读操作还是读写操作。

¡     RBAC(基于角色的访问控制):创建团体名/用户名时,可以指定对应的用户角色,通过用户角色下制定的规则,来限制NMS能够访问哪些MIB对象,以及对MIB对象可执行读操作还是读写操作。

RBAC配置方式限制的是MIB节点的读写权限,VACM配置方式限制的是MIB视图的读写权限,而一个视图中通常包括多个MIB节点。所以,RBAC配置方式更精准、更灵活。

·     支持引用ACL限制可以登录的NMS

·     设备在发送告警信息可以携带安全参数,只有符合安全参数要求的NMS才能接收该告警信息。

【注意事项】

只有NMS和设备使用的SNMP版本、团体名(或者用户名、密码)相同时,NMS才能和Agent建立连接。

【配置举例】

·     关闭SNMP功能。

# 关闭SNMP功能。

<Sysname> system-view

[Sysname] undo snmp-agent

·     配置具有认证和加密机制的SNMPv3版本来管理设备,并通过用户角色控制NMSMIB节点的访问权限

# 配置设备支持SNMPv3版本。

<Sysname> system-view

[Sysname] snmp-agent sys-info version v3

# 创建用户角色test并配置访问权限:用户只能读节点snmpMIBOID1.3.6.1.6.3.1)下的对象,不可以访问其它MIB对象。(各参数仅为示例)

[Sysname] role name test

[Sysname-role-test] rule 1 permit read oid 1.3.6.1.6.3.1

# 配置用户角色test具有systemOID1.3.6.1.2.1.1)的读权限与interfacesOID1.3.6.1.2.1.2)的读写权限,以便接口状态变化时,Agent会向NMS发送告警信息。(各参数仅为示例)

[Sysname-role-test] rule 2 permit read oid 1.3.6.1.2.1.1

[Sysname-role-test] rule 3 permit read write oid 1.3.6.1.2.1.2

[Sysname-role-test] quit

# 创建用户RBACtest,为其绑定用户角色test,认证算法为SHA-1,认证密码为123456TESTauth&!,加密算法为AES,加密密码是123456TESTencr&!。(各参数仅为示例)

[Sysname] snmp-agent usm-user v3 RBACtest user-role test simple authentication-mode sha 123456TESTauth&! privacy-mode aes128 123456TESTencr&!

·     配置ACL限制可以访问设备的NMS

# 创建SNMPv3testGroup,并加入一个用户testUser,安全级别为认证加密,认证算法为SHA-1,认证密码为123456TESTauth&!,加密算法为AES,加密密码是123456TESTencr&!,只有IP地址为1.1.1.1NMS可以使用用户名testUser访问设备。

<Sysname> system-view

[Sysname] acl basic 2000

[Sysname-acl-ipv4-basic-2000] rule permit source 1.1.1.1 0

[Sysname-acl-ipv4-basic-2000] rule deny source any

[Sysname-acl-ipv4-basic-2000] quit

[Sysname] snmp-agent group v3 testGroup authentication

[Sysname] snmp-agent usm-user v3 testUser testGroup simple authentication-mode sha 123456TESTauth&! privacy-mode aes128 123456TESTencr&! acl 2000

·     配置NMS告警功能

# 开启NMS告警功能,告警信息发送到主机1.1.1.2,使用的用户名为testUser,需要认证和加密。(各参数仅为示例)

<Sysname> system-view

[Sysname] snmp-agent trap enable

[Sysname] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname testUser v3 privacy

3.1.5  文件访问安全

【安全威胁】

FTPTFTP是通用的文件传输协议,使用明文形式传输数据,攻击者很容易截取报文,自身的安全性能并不高。

【安全加固策略】

针对以上攻击行为,可采用SFTPSecure FTP)协议。SFTP协议基于SSH2,使用加密形式传输数据,可提供安全可靠的网络文件传输服务,使得用户可以安全登录到远程设备上进行文件管理操作,且能保证文件传输的安全性。

SFTP提供如下安全策略:

·     password认证

利用AAA对客户端身份进行认证。用户在客户端上输入用户名和密码后,该密码将被加密后发送给服务器,通过服务器验证用户名和密码的合法性后,用户才可以登录设备。

·     publickey认证

采用数字签名的方式来认证客户端。客户端发送包含用户名、公钥和公钥算法或者携带公钥信息的数字证书的认证请求给服务器端。服务器对公钥进行合法性检查,如果合法,则发送消息请求客户端的数字签名;如果不合法,则直接发送失败消息;服务器收到客户端的数字签名之后,使用客户端的公钥对其进行解密,并根据计算结果返回认证成功或失败的消息

·     password-publickey认证

对于SSH2版本的客户端,要求同时进行passwordpublickey两种方式的认证,且只有两种认证均通过的情况下,才认为客户端身份认证通过;对于SSH1版本的客户端,只要通过其中任意一种认证即可。

·     改变SSH服务端口号

缺省情况下,SSH服务的端口号为知名端口号22,易被扫描和攻击。通过修改SSH服务的端口号为非知名端口号,可以降低被扫描的风险。

·     SSH用户进行访问控制

只有匹配ACLpermit规则的IPv4 SSH客户端可以访问设备,其他客户端不可以访问设备。

·     限制同时在线的最大SSH用户数

当前在线SSH用户数超过设定的最大值时,系统会拒绝新的SSH连接请求。

【配置举例】

·     # 开启SFTP服务器功能,并配置服务器采用password认证(用户名client001仅为示例)。

<Sysname> system-view

[Sysname] sftp server enable

[Sysname] ssh user client001 service-type sftp authentication-type password

# 若进行本地认证,则还需要创建本地用户;若在远程服务器(如RADIUS服务器)进行认证,则还需要在服务器上创建相应的SSH用户。相关配置的详细介绍请参见“安全配置指导”中的“AAA”。

·     # 开启SFTP服务器功能,并配置服务器采用publickey认证(用户名client002、公钥clientkey仅为示例)

<Sysname> system-view

[Sysname] sftp server enable

[Sysname] ssh user client002 service-type sftp authentication-type publickey assign publickey clientkey

# 创建同名的本地用户,用于下发授权属性:工作目录、用户角色。相关配置的详细介绍请参见“安全配置指导”中的“AAA

·     # 设置SSH服务端口号为10251025仅为示例)。

<Sysname> system-view

[Sysname] ssh server port 1025

·     # 只允许IPv4地址为1.1.1.1SSH用户向设备发起SSH访问ACL2001仅为示例)。

<Sysname> system-view

[Sysname] acl basic 2001

[Sysname-acl-ipv4-basic-2001] rule permit source 1.1.1.1 0

[Sysname-acl-ipv4-basic-2001] quit

[Sysname] ssh server acl 2001

·     # 限制同时在线的最大SSH用户数为1616仅为示例)。

<Sysname> system-view

[Sysname] aaa session-limit ssh 16

3.2  登录用户及权限管理

3.2.1  管理登录用户权限(RBAC

RBACRole Based Access Control)通过建立“权限<->角色”的关联实现将权限赋予给角色,并通过建立“角色<->用户”的关联实现为用户指定角色,从而使用户获得相应角色所具有的权限。

通常,对登录设备人员的权限管理方式是将用户和权限进行简单的关联,这种绑定关系很难应对人员以及设备安全等级的变化。RBAC的基本思想就是给用户指定角色,这些角色中定义了允许用户操作哪些系统功能以及资源对象。RBAC采用权限与用户分离的思想,提高用户权限分配的灵活性,减小用户授权管理的复杂度,降低管理开销,间接地提高了设备在登录用户管理方面的安全性能。

关于RBAC的详细信息,请参见“基础配置指导”中的“RBAC”。

3.2.2  AAA(认证、授权、计费)

AAAAuthenticationAuthorizationAccounting,认证、授权、计费)是网络安全的一种管理机制,它可以为登录设备的用户提供以下三种安全功能。

·     认证:确认访问网络的远程用户的身份,判断访问者是否为合法的网络用户。

·     授权:对不同用户赋予不同的权限,限制用户可以使用的服务。例如,管理员授权办公用户才能对服务器中的文件进行访问和打印操作,而其它临时访客不具备此权限。

·     计费:记录用户使用网络服务过程中的所有操作,包括使用的服务类型、起始时间、数据流量等,用于收集和记录用户对网络资源的使用情况,并可以实现针对时间、流量的计费需求,也对网络起到监视作用。

AAA可以通过多种协议来实现,这些协议规定了设备与服务器之间如何传递用户信息。目前设备支持RADIUSRemote Authentication Dial-In User Service,远程认证拨号用户服务)协议、HWTACACSHW Terminal Access Controller Access Control SystemHW终端访问控制器控制系统协议)协议和LDAPLightweight Directory Access Protocol,轻量级目录访问协议)协议,在实际应用中,最常使用RADIUS协议。LDAP协议的支持情况与设备的型号有关,请以设备的实际情况为准。

虽然HWTACACS协议与RADIUS协议都实现了认证、授权和计费功能,且都使用共享密钥对传输的用户信息进行加密,也都有较好的灵活性和可扩展性,但是HWTACACS协议还具有以下优点:

·     协议使用TCP,网络传输更可靠。

·     除了HWTACACS报文头,报文主体全部进行加密。

·     协议报文较为复杂,认证和授权分离,使得认证、授权服务可以分离在不同的服务器上实现。

支持对设备上命令行的使用进行授权和计费。

3.2.3  命令行授权

【安全加固策略】

缺省情况下,用户登录设备后可以使用的命令行由用户拥有的用户角色决定。当用户线采用AAA认证方式并配置命令行授权功能后,用户可使用的命令行将受到用户角色和AAA授权的双重限制。用户每执行一条命令都会进行授权检查,只有授权成功的命令才被允许执行。

【配置举例】

# 开启命令行授权功能,限制用户只能使用授权成功的命令

<Sysname> system-view

[Sysname] line vty 0 4

[Sysname-line-vty0-4] authentication-mode scheme

[Sysname-line-vty0-4] command authorization

# ISP域视图下配置命令行授权方法。命令行授权方法可以和login用户的授权方法相同,也可以不同。相关详细介绍请参见“安全配置指导”中的“AAA”。

3.2.4  Password Control

Password Control是设备提供的密码安全管理功能,它根据管理员定义的安全策略,对本地用户登录密码、super密码的设置、老化、更新等方面进行管理,并对用户的登录状态进行控制。

保存在设备上的用户密码存在一些安全隐患,比如:

·     密码长度短、复杂度低、不限制尝试次数,攻击者可以简单快速地借助密码字典进行爆破攻击。

·     密码未设置老化时间、长期闲置,攻击者可通过长时间持续尝试的方法进行破解,一旦破解了该密码,则一劳永逸。

·     初始密码可能是统一规则的弱密码,如果不作更改,后期被攻破的可能性较大。

Password Control可以解决上述问题,可提供以下密码管理功能:

1.  密码设置控制

·     密码最小长度限制

·     密码的组合检测功能

·     密码的复杂度检测功能

2. 密码更新与老化

·     密码更新管理

·     密码老化管理

·     密码过期提醒

·     密码老化后允许登录管理

·     密码历史记录

3. 用户登录控制

·     用户首次登录控制

·     密码尝试次数限制

·     用户帐号闲置时间管理

关于本地用户类型的详细介绍,请参见“安全配置指导”中的“AAA”。关于super密码的详细介绍,请参见“基础配置指导”中的“RBAC”。关于Password Control的详细信息,请参见“安全”中的“Password Control”。

3.3  密码设置安全

设备提供如下几种密码(或密钥)设置方式:

·     明文方式:用户以明文方式输入密码,设备以密文或哈希方式存储该密码(具体以各业务模块实现为准)。

·     密文方式:用户以密文方式输入密码,设备以密文方式存储该密码。

·     哈希方式:用户以密文方式输入密码,设备以哈希方式存储该密码。

为了提高系统的安全性和可维护性,对密码的设置有以下建议:

·     提高密码的长度和复杂度,不要使用弱密码。

·     不同特性的密码不要重复使用,避免攻击者非法获取了某业务的密码后,对其它业务的安全性造成威胁。

·     以密文或哈希方式设置的密码必须可被设备解析,否则无法成功设置。这两种密码设置方式通常用于测试或配置恢复。正常业务需求下,请不要尝试自行构造密文密码或哈希密码用于设置业务密码。

3.4  设备管理安全

3.4.1  配置密码恢复功能

【安全威胁】

缺省情况下,设备上的密码恢复功能处于开启状态。当用户忘记Console口认证密码或者登录认证失败时,可通过Console口连接设备,并在硬件重启设备过程中根据提示按组合键<Ctrl+B>进入BootWare菜单,再选择对应的BootWare菜单选项来修复这个问题。这会给非法用户访问设备带来便利。

【安全加固策略】

关闭密码恢复功能后,设备将处于一个安全性更高的状态,即当出现上述情况时,若想继续使用Console口登录设备,只能通过BootWare菜单选择将设备恢复为出厂配置之后方可继续操作,这样可以有效地防止非法用户获取启动配置文件。

【配置举例】

# 关闭密码恢复功能。

<Sysname> system-view

[Sysname] undo password-recovery enable

3.4.2  关闭USB接口

【安全威胁】

用户可通过USB口进行文件的上传和下载。同时开放USB接口也会给用户带来安全隐患,例如,感染U盘携带的病毒,重要文件被非法拷贝等。

【安全加固策略】

为了安全起见,建议在安全环境下按需开启USB接口,使用完毕后,立即关闭USB接口。

【注意事项】

如果您对U盘进行了分区,请先使用umount命令卸载所有U盘分区,否则不能关闭USB接口。

【配置举例】

# 关闭USB接口。

<Sysname> system-view

[Sysname] usb disable

3.5  配置文件加密

【安全加固策略】

开启配置文件加密功能后,管理员每次执行save命令,设备都会先将当前生效的配置进行加密,再保存。配置文件加密功能支持使用公钥和私钥两种方式进行加密,由于所有运行Comware V7平台软件的设备拥有相同的公钥和私钥,因此加密后的文件只能被所有运行Comware V7平台软件的设备识别和解析。为了防止非法用户对加密后配置文件的解析,需确保只有合法用户才能获取加密后的配置文件,进一步提高配置文件的安全性。

【注意事项】

开启配置文件加密功能后,将不能使用more命令查看加密配置文件(后缀名为“.cfg”的配置文件)的内容,可以使用display saved-configuration命令查看加密的下次启动配置文件内容。

【配置举例】

·     # 设置保存配置文件时使用公钥进行加密。

<Sysname> system-view

[Sysname] configuration encrypt public-key

·     # 设置保存配置文件时使用私钥进行加密。

<Sysname> system-view

[Sysname] configuration encrypt private-key

3.6  安全日志

【安全加固策略】

查看系统日志是了解设备状态、定位和排除网络问题的一个重要方法,而在系统日志中与设备安全相关的安全日志显得尤为重要。但通常情况下,安全日志与其它日志一同输出,经常被淹没在大量的系统日志中,很难识别、不便于查看。针对这个问题,系统提供了安全日志同步保存功能和安全日志文件管理功能。

开启安全日志同步保存功能后,安全业务模块根据业务需要,会将某些信息同时封装成普通日志和安全日志,普通日志根据信息中心的配置可以输出到控制台、监视终端、日志缓冲区、日志主机等方向,安全日志只能按周期输出到安全日志文件。这样既实现了安全日志的集中管理,又有利于用户随时快捷地查看安全日志,了解设备状态。

安全日志同步保存功能的配置和安全日志文件的管理相互分离,安全日志文件实行专人专管:

·     设备管理员可配置安全日志同步保存功能,包括开启安全日志同步保存功能,开启安全日志同步保存功能,配置单个安全日志文件最大能占用的存储空间的大小,配置安全日志文件使用率的告警上限等。

·     安全日志管理员才能管理安全日志文件,例如修改安全日志文件的存储路径、手工将安全日志保存到安全日志文件等。安全管理员只能管理安全日志文件,不能对设备执行其他操作。

【配置举例】

·     配置安全日志同步保存功能

# 开启安全日志同步保存功能。

<Sysname> system-view

[Sysname] info-center security-logfile enable

# 配置安全日志自动保存到文件的频率为600秒。(600秒仅为示例)

[Sysname] info-center security-logfile frequency 600

# 配置单个安全日志文件最大能占用的存储空间的大小为2MB。(2MB仅为示例)

[Sysname] info-center security-logfile size-quota 2

·     管理安全日志文件

# 以安全日志管理员身份登录设备。

# 配置存放安全日志文件的目录为flash:/testflash:/test仅为示例)

<Sysname> mkdir test

Creating directory flash:/test... Done.

<Sysname> system-view

[Sysname] info-center security-logfile directory flash:/test

[Sysname] quit

# 手动将安全日志缓冲区中的内容保存到安全日志文件。

<Sysname> security-logfile save

The contents in the security log file buffer have been saved to the file flash:/seclog/seclog.log.

3.7  VXLAN安全

3.7.1  MAC地址学习

【安全威胁】

VXLAN网络中,设备学习MAC地址时可能存在以下安全威胁:

·     攻击者通过伪造VXLAN报文,使VTEP学习到错误的远端MAC地址。

·     若网络中存在环路或网络攻击,可能会造成与VXLAN关联的不同三层接口学习到相同的MAC地址,导致MAC地址不稳定。

【安全加固策略】

针对以上安全威胁,可以在VTEP和网关上配置如下安全策略:

关闭远端MAC地址自动学习功能

为了避免VTEP学习到错误的远端MAC地址,可以关闭远端MAC地址自动学习功能,手动添加静态的远端MAC地址或通过EVPNMAC/IP发布路由学习远端MAC地址。

【配置举例】

# 关闭远端MAC地址自动学习功能。

<Sysname> system-view

[Sysname] vxlan tunnel mac-learning disable

3.7.2  ARP/ND安全

【安全威胁】

若攻击者向EVPN VXLAN网络中发送错误或畸形的ARP/ND报文,会使VTEP和网关学习到错误的ARP/ND表项,影响网络中报文的正常转发。

【安全加固策略】

为避免VTEP和网关学习到错误的ARP/ND表项,可手工关闭远端ARP/ND的自动学习功能,通过EVPNMAC/IP发布路由中携带的ARP/ND信息形成APR/ND表项指导报文转发。

【注意事项】

本安全策略仅适用于EVPN VXLAN网络。

【配置举例】

# 关闭远端ARP自动学习功能。

<Sysname> system-view

[Sysname] vxlan tunnel arp-learning disable

# 关闭远端ND自动学习功能。

<Sysname> system-view

[Sysname] vxlan tunnel nd-learning disable

4 控制平面安全加固

4.1  ARP攻击防御

4.1.1  MAC为组播的ARP表项检查功能

【安全威胁】

合法的ARP报文发送端MAC地址为单播,攻击源可以伪造发送端MAC地址为组播的ARP报文。如果网关学习到源MAC为组播地址的ARP表项,那么当它基于该类表项转发报文时,会将报文组播发送,严重占用网络资源。

【安全加固策略】

开启ARP表项的检查功能后,设备将不能学习ARP报文中发送端MAC地址为组播MAC的动态ARP表项,也不能手工添加MAC地址为组播MAC的静态ARP表项。

【配置举例】

# 开启动态ARP表项的检查功能。

<Sysname> system-view

[Sysname] arp check enable

4.1.2  洪类ARP报文攻击防范

1. ARP防止IP报文攻击

【安全威胁】

如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:

·     设备向目的网段发送大量ARP请求报文,加重目的网段的负载。

·     设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。

【安全加固策略】

为避免这种IP报文攻击所带来的危害,设备提供了下列两个功能:

·     ARP源抑制功能:如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中每5秒内从某IP地址向设备某接口发送目的IP地址不能解析的IP报文超过了设置的阈值,则设备将不再处理由此IP地址发出的IP报文直至该5秒结束,从而避免了恶意攻击所造成的危害。

·      ARP黑洞路由功能:无论发送攻击报文的源是否固定,都可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,并同时发起ARP主动探测,如果在黑洞路由老化时间内ARP解析成功,则设备马上删除此黑洞路由并开始转发去往该地址的报文,否则设备直接丢弃该报文。在删除黑洞路由之前,后续去往该地址的IP报文都将被直接丢弃。用户可以通过命令配置ARP请求报文的发送次数和发送时间间隔。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则进行转发,否则仍然产生一个黑洞路由将去往该地址的报文丢弃。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。

【配置举例】

·     # 开启ARP源抑制功能,并指定ARP源抑制的阈值为100100仅为示例)。

<Sysname> system-view

[Sysname] arp source-suppression enable

[Sysname] arp source-suppression limit 100

·     # 开启ARP黑洞路由功能,并配置发送ARP探测报文个数为5,发送ARP探测报文的时间间隔为3秒。(各参数仅为示例)

<Sysname> system-view

[Sysname] arp resolving-route enable

[Sysname] arp resolving-route probe-count 5

[Sysname] arp resolving-route probe-interval 3

2. MAC地址固定的ARP攻击检测功能

【安全威胁】

如果攻击源向设备发送大量的源MAC地址固定的ARP攻击报文,会导致设备表项被占满,无法学习合法的ARP表项。

【安全加固策略】

开启源MAC地址固定的ARP攻击检测功能后,设备会根据ARP报文的源MAC地址对上送CPUARP报文进行统计,在5秒内,如果收到同一源MAC地址(源MAC地址固定)的ARP报文超过一定的阈值,则认为存在攻击,系统会将此MAC地址添加到攻击检测表项中。

当开启了ARP日志信息功能,且在该攻击检测表项老化之前,如果设置的检查模式为过滤模式,则会打印日志信息并且将该源MAC地址发送的ARP报文过滤掉;如果设置的检查模式为监控模式,则只打印日志信息,不会将该源MAC地址发送的ARP报文过滤掉。

【注意事项】

切换源MAC地址固定的ARP攻击检查模式时,如果从监控模式切换到过滤模式,过滤模式马上生效;如果从过滤模式切换到监控模式,已生成的攻击检测表项,到表项老化前还会继续按照过滤模式处理。

对于网关或一些重要的服务器,可能会发送大量ARP报文,为了使这些ARP报文不被过滤掉,可以将这类设备的MAC地址配置成保护MAC地址,这样,即使该设备存在攻击也不会被检测或过滤。

【配置举例】

# 开启源MAC地址固定的ARP攻击检测功能,并选择过滤模式。

<Sysname> system-view

[Sysname] arp source-mac filter

如果选择监控模式,则需要执行arp source-mac monitor命令。

# 配置源MAC地址固定的ARP报文攻击检测的阈值为30个(30仅为示例)。

[Sysname] arp source-mac threshold 30

# 配置源MAC地址固定的ARP攻击检测表项的老化时间为60秒(60仅为示例)。

[Sysname] arp source-mac aging-time 60

# 配置保护MAC地址为001e-1200-0213001e-1200-0213仅为示例)。

[Sysname] arp source-mac exclude-mac 001e-1200-0213

# 开启源MAC地址固定的ARP攻击检测日志信息功能。

[Sysname] arp source-mac log enable

3. ARP报文限速

【安全威胁】

攻击源向设备发送大量的ARP攻击报文,导致设备表项被占满,无法学习合法的ARP表项。同时,会导致设备的CPU负担过重,造成其他功能无法正常运行甚至设备瘫痪。

【安全加固策略】

接口上开启ARP报文限速功能后,如果单位时间接口收到的ARP报文数量超过用户设定的限速值,则有如下处理机制:

·     当开启了ARP模块的告警功能后,设备将这个时间间隔内的超速峰值作为告警信息发送出去,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性。有关告警信息的详细介绍请参见“网络管理和监控命令参考”中的SNMP

·     当开启了ARP限速日志功能后,设备将这个时间间隔内的超速峰值作为日志的速率值发送到设备的信息中心,通过设置信息中心的参数,最终决定日志报文的输出规则(即是否允许输出以及输出方向)有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。

【配置举例】

# 开启ARP报文限速的告警功能

<Sysname> system-view

[Sysname] snmp-agent trap enable arp rate-limit

# 开启ARP报文限速日志功能。

[Sysname] arp rate-limit log enable

# 配置当设备收到的ARP报文速率超过用户设定的限速值时,设备发送告警或日志的时间间隔为120秒(120仅为示例)。

[Sysname] arp rate-limit log interval 120

# 在接口GigabitEthernet1/2/0/1上开启ARP报文限速功能,并设置ARP报文限速速率为50pps50仅为示例)。

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] arp rate-limit 50

4.1.3  防御ARP欺骗类攻击功能

1. 源地址冲突提示功能

【安全威胁】

攻击者仿冒网关,发送错误的网关IP地址和MAC地址对应关系给合法客户端,导致合法客户端不能正常访问网关。

【安全加固策略】

开启源地址冲突提示功能后,设备接收到其它设备发送的ARP报文后,如果发现报文中的源IP地址和自己的IP地址相同,该设备会根据当前源IP地址冲突提示功能的状态,进行如下处理:

·     如果源IP地址冲突提示功能处于关闭状态时,设备发送一个免费ARP报文确认是否冲突,只有收到对应的ARP应答后才提示存在IP地址冲突。

·     如果源IP地址冲突提示功能处于开启状态时,设备立刻提示存在IP地址冲突。

【配置举例】

# 开启源IP地址冲突提示功能。

<Sysname> system-view

[Sysname] arp ip-conflict log prompt

2. ARP报文源MAC地址一致性检查功能

安全加固策略】

开启 ARP报文源MAC地址一致性检查功能后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。

【配置举例】

# 开启ARP报文源MAC地址一致性检查功能。

<Sysname> system-view

[Sysname] arp valid-check enable

3. 配置ARP主动确认功能

【安全威胁】

攻击者仿冒用户的IP地址发送ARP请求给网关,网关收到ARP表项后,新建了错误的ARP表项或更新已有ARP表项的MAC地址,则合法用户无法收到报文。

【安全加固策略】

配置ARP主动确认功能后,设备在新建或更新ARP表项前需进行主动确认,防止产生错误的ARP表项。

为了对ARP表项的学习执行更严格的检查,可以开启严格模式的ARP主动确认功能,具体机制如下:

·     收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但不建立ARP表项;

·     收到ARP应答报文时,需要确认本设备是否对该报文中的源IP地址发起过ARP解析:若发起过解析,解析成功后则设备启动主动确认功能,主动确认流程成功完成后,设备可以建立该表项;若未发起过解析,则设备丢弃该报文。

【配置举例】

# 开启严格模式的ARP主动确认功能。

<Sysname> system-view

[Sysname] arp active-ack strict enable

4. 授权ARP功能

【安全加固策略】

开启授权ARPAuthorized ARP)功能后,在动态学习ARP的过程中,只有和DHCP服务器生成的租约或DHCP中继生成的安全表项一致的ARP报文才能够被学习。配置接口的授权ARP功能后,可以防止用户仿冒其他用户的IP地址或MAC地址对网络进行攻击,保证只有合法的用户才能使用网络资源,增加了网络的安全性。关于DHCP服务器和DHCP中继的介绍,请参见“三层技术-IP业务配置指导”中的“DHCP服务器”和“DHCP中继”。

【配置举例】

# GigabitEthernet1/2/0/1上开启授权ARP功能。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] arp authorized enable

5. ARP自动扫描、固化功能

【安全加固策略】

ARP自动扫描功能一般与ARP固化功能配合使用,用来防御局域网内的ARP欺骗行为:

·     开启ARP自动扫描功能后,设备会对局域网内的邻居自动进行扫描(向邻居发送ARP请求报文,获取邻居的MAC地址,建立动态ARP表项)。

·     开启固化功能后,设备会将当 前的ARP动态表项(包括ARP自动扫描生成的动态ARP表项)转换为静态ARP表项。通过对动态ARP表项的固化,可以有效防止攻击者修改ARP表项。

【注意事项】

接口上开启了ARP自动扫描功能后,会向扫描区间的所有IP地址同时发送ARP请求报文,这会造成设备瞬间CPU利用率过高、网络负载过大的问题。您可以通过设置接口发送ARP报文的速率解决此问题。

固化生成的静态ARP表项数量同样受到设备可以支持的静态ARP表项数目的限制,由于静态ARP表项数量的限制可能导致只有部分动态ARP表项被固化。

【配置举例】

# 对接口GigabitEthernet1/2/0/1上的主IP地址网段内的邻居进行ARP自动扫描。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] arp scan

[Sysname-GigabitEthernet1/2/0/1] quit

# 将设备上的动态ARP表项转化成静态ARP表项。

[Sysname] arp fixup

4.2  ND攻击防御

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

【安全威胁】

如果网络中存在攻击源向设备发送大量ND报文,则会造成设备需要处理大量ND报文,增加了CPU的负担。

【安全加固策略】

当攻击报文的源MAC地址和以太网数据帧首部中的源MAC地址不一致时,可以通过ND协议报文源MAC地址一致性检查功能避免此类攻击。开启本特性后,网关设备会对接收的ND协议报文进行检查。如果ND报文中的源MAC地址和以太网数据帧首部中的源MAC地址不一致,则认为是攻击报文,将其丢弃;否则,继续进行ND学习。

若开启ND日志信息功能,当ND报文中的源MAC地址和以太网数据帧首部中的源MAC地址不同时,会打印相关的日志信息。设备生成的ND日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心。

【配置举例】

# 开启ND协议报文源MAC地址一致性检查功能。

<Sysname> system-view

[Sysname] ipv6 nd mac-check enable

# 开启ND日志信息功能。

[Sysname] ipv6 nd check log enable

4.3  接入业务安全

4.3.1  PPP

1. 配置PPP认证

【安全加固策略】

通过与AAA的配合,PPP提供了在其链路上对对端进行安全认证的手段,具体包括以下几种方式。

·     PAP认证

PAP为两次握手协议,它通过用户名和密码来对用户进行认证。

PAP在网络上以明文的方式传递用户名和密码,认证报文如果在传输过程中被截获,便有可能对网络安全造成威胁。因此,它适用于对网络安全要求相对较低的环境。

·     CHAP认证

CHAP为三次握手协议。

CHAP认证过程分为两种方式:认证方配置了用户名、认证方未配置用户名。推荐使用认证方配置用户名的方式,这样被认证方可以对认证方的身份进行确认。

CHAP只在网络上传输用户名,并不传输用户密码(准确的讲,它不直接传输用户密码,传输的是用MD5算法将用户密码与一个随机报文ID一起计算的结果),因此它的安全性要比PAP高。

·     MSCHAP认证

MSCHAP为三次握手协议,认证过程与CHAP类似,MSCHAPCHAP的不同之处在于:

¡     MSCHAP支持重传机制。在被认证方认证失败的情况下,如果认证方允许被认证方进行重传,被认证方会将认证相关信息重新发回认证方,认证方根据此信息重新对被认证方进行认证。认证方最多允许被认证方重传3次。

·     MSCHAPv2认证

MSCHAPv2为三次握手协议,认证过程与CHAP类似,MSCHAPv2CHAP的不同之处在于:

¡     MSCHAPv2通过报文捎带的方式实现了认证方和被认证方的双向认证。

¡     MSCHAPv2支持重传机制。在被认证方认证失败的情况下,如果认证方允许被认证方进行重传,被认证方会将认证相关信息重新发回认证方,认证方根据此信息重新对被认证方进行认证。认证方最多允许被认证方重传3次。

¡     MSCHAPv2支持修改密码机制。被认证方由于密码过期导致认证失败时,被认证方会将用户输入的新密码信息发回认证方,认证方根据新密码信息重新进行认证。

【注意事项】

若认证方采用本地AAA认证,则必须为被认证方配置本地用户的用户名和密码;若认证方采用远程AAA认证,则必须为被认证方配置远程用户的用户名和密码。

·     采用PAP认证方式

在认证方上为被认证方配置的用户名和密码必须与被认证方上通过ppp pap local-user命令配置的用户名和密码相同。

·     采用CHAP认证方式(认证方配置了用户名)

在认证方上为被认证方配置的用户名和密码必须满足如下要求:

¡     用户名必须与被认证方上通过ppp chap user命令配置的被认证方的用户名相同。

¡     密码必须与被认证方上为认证方配置的用户名的密码相同。

在被认证方上为认证方配置的用户名和密码必须满足如下要求:

¡     用户名必须与认证方上通过ppp chap user命令配置的认证方的用户名相同。

¡     密码必须与认证方上为被认证方配置的用户名的密码相同。

在被认证方上不能通过ppp chap password命令配置进行CHAP认证时采用的密码,否则即使认证方配置了用户名,CHAP仍将按照认证方未配置用户名的情况进行认证。

·     采用CHAP认证方式(认证方未配置用户名)

在认证方上为被认证方配置的用户名和密码必须满足如下要求:

¡     用户名必须与被认证方上通过ppp chap user命令配置的被认证方的用户名相同。

¡     密码必须与被认证方上通过ppp chap password命令配置的密码相同。

·     采用MSCHAPMSCHAPv2认证方式

¡     设备只能作为MSCHAPMSCHAPv2的认证方来对其它设备进行认证。

¡     L2TP环境下仅支持MSCHAP认证,不支持MSCHAPv2认证。

¡     MSCHAPv2认证只有在RADIUS认证的方式下,才能支持修改密码机制。

¡     MSCHAPv2认证时不支持为PPP用户配置认证方式为none

¡     为被认证方配置的用户名和密码必须与被认证方上的配置相同。

¡     若认证方配置了用户名,则在被认证方上为认证方配置的用户名必须与认证方上ppp chap user命令配置的用户名相同。

【配置举例】

·     配置PAP认证

¡     配置认证方

# 配置认证方采用PAP方式认证被认证方。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname-Pos1/2/1/0] ppp authentication-mode pap domain system

# 配置认证方采用本地或远程AAA认证方式对被认证方进行认证。

具体配置请参见“安全配置指导”中的“AAA”。

¡     配置认证方

# 配置采用PAP方式时被认证方的用户名和密码。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname-Pos1/2/1/0] ppp pap local-user userb password simple passb

·     配置CHAP认证(认证方配置了用户名)

¡     配置认证方

# 配置认证方采用CHAP方式认证被认证方。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname-Pos1/2/1/0] ppp authentication-mode chap domain system

# 配置采用CHAP认证时认证方的用户名。

[Sysname-Pos1/2/1/0] ppp chap user usera

# 配置认证方采用本地或远程AAA认证方式对被认证方进行认证。

具体配置请参见“安全配置指导”中的“AAA”。

¡     配置认证方

# 配置采用CHAP认证时被认证方的用户名。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname-Pos1/2/1/0] ppp chap user userb

# 配置被认证方采用本地或远程AAA认证方式对认证方进行认证。

具体配置请参见“安全配置指导”中的“AAA”。

·     配置CHAP认证(认证方未配置用户名)

¡     配置认证方

# 配置认证方采用CHAP方式认证被认证方。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname-Pos1/2/1/0] ppp authentication-mode chap domain system

# 配置认证方采用本地或远程AAA认证方式对被认证方进行认证。

具体配置请参见“安全配置指导”中的“AAA”。

¡     配置认证方

# 配置采用CHAP认证时被认证方的用户名。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname Pos1/2/1/0] ppp chap user userb

# 配置采用CHAP认证时被认证方的认证密码。

[Sysname-Pos1/2/1/0] ppp chap password simple hello

·     配置MSCHAPMSCHAPv2认证(认证方配置了用户名)

¡     配置认证方

# 配置认证方采用MSCHAPMSCHAPv2方式认证被认证方。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

MSCHAP方式)

[Sysname-Pos1/2/1/0] ppp authentication-mode ms-chap domain system

MSCHAPv2方式)

[Sysname-Pos1/2/1/0] ppp authentication-mode ms-chap-v2 domain system

# 配置采用MSCHAPMSCHAPv2认证时认证方的用户名。

[Sysname-Pos1/2/1/0] ppp chap user usera

# 配置认证方采用本地或远程AAA认证方式对被认证方进行认证。

具体配置请参见“安全配置指导”中的“AAA”。

·     配置MSCHAPMSCHAPv2认证(认证方未配置用户名)

¡     配置认证方

# 配置认证方采用MSCHAPMSCHAPv2方式认证被认证方。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

MSCHAP方式)

[Sysname-Pos1/2/1/0] ppp authentication-mode ms-chap domain system

MSCHAPv2方式)

[Sysname-Pos1/2/1/0] ppp authentication-mode ms-chap-v2 domain system

# 配置认证方采用本地或远程AAA认证方式对被认证方进行认证。

具体配置请参见“安全配置指导”中的“AAA”。

2. 增强对PPP用户的管理和控制

【安全威胁】

PPP网络中将会面临以下安全威胁:

·     非法用户可能会使用穷举法试探合法用户密码。

·     非法用户发送大量认证报文消耗设备的CPU资源,对设备进行拒绝服务攻击。

·     用户使用非法IP地址访问网络资源。

【安全加固策略】

针对以上安全威胁,可以在设备上配置如下安全功能,增强PPP用户的管理和控制

·     PPP用户静默功能

对用户的认证次数进行监测。开启PPP用户静默功能后,当某PPP用户在检测周期内连续认证失败达次数达到允许的最大值时,将被静默一段时间,在静默周期内设备直接丢弃来自此PPP用户的报文,以降低非法用户使用穷举法试探合法用户密码的成功率,同时避免设备持续向认证服务器转发该PPP用户的认证报文而对设备处理性能造成影响。静默期后,如果设备再次收到该PPP用户的报文,则依然可以对其进行认证处理

·     PPP用户IP网段检查功能

PPP用户所在的网段进行检查。开启PPP用户IP网段检查功能后,当IPCP协商时,设备会检查PPP用户的IP地址与上线接口的IP地址是否在同一网段,如果不在同一网段,则IPCP协商失败,不允许用户上线。

【配置举例】

·     PPP用户静默功能

# 配置PPP用户在500秒内连续认证失败次数达到100次时,将被静默1000秒。(各参数仅为示例)

<Sysname> system-view

[Sysname] ppp authentication chasten 100 500 1000

·     PPP用户IP网段检查功能

# 在虚拟模板接口1上使能接口的IP网段检查功能。

<Sysname> system-view

[Sysname] interface pos 1/2/1/0

[Sysname-Pos1/2/1/0] ppp ipcp remote-address match

4.4  DHCP安全

4.4.1  防止DHCP饿死攻击功能

【安全威胁】

DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致DHCP服务器消耗过多的系统资源,无法处理正常业务。

【安全加固策略】

如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则通过限制端口可以学习到的MAC地址数,并配置学习到的MAC地址数达到最大值时,丢弃源MAC地址不在MAC地址表里的报文,能够避免攻击者申请过多的IP地址,在一定程度上阻止了DHCP饿死攻击。此时,不存在DHCP饿死攻击的端口下的DHCP客户端可以正常获取IP地址,但存在DHCP饿死攻击的端口下的DHCP客户端仍可能无法获取IP地址。

如果封装DHCP请求报文的数据帧的MAC地址都相同,则通过上述方法无法防止DHCP饿死攻击。在这种情况下,需要开启DHCP服务器/DHCP中继的MAC地址检查功能。开启该功能后,DHCP服务器/DHCP中继检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,进行后续处理;如果不一致,则丢弃该报文。

【配置举例】

# 在接口GigabitEthernet1/2/0/1上开启DHCP服务器的MAC地址检查功能。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] dhcp server check mac-address

# 在接口GigabitEthernet1/2/0/1上开启DHCP中继的MAC地址检查功能。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] dhcp relay check mac-address

4.4.2  DHCP用户类白名单功能

【安全威胁】

DHCP支持按照用户类分配IP地址。DHCP服务器会根据用户所在的用户类,从对应的地址空间中选择地址分给用户。当某些用户类中存在攻击源时,攻击源获取到地址后,就能在网络中发起攻击行为。

【安全加固策略】

为了避免上述问题,用户可以将不存在攻击源的用户类加入白名单。DHCP服务器只有收到属于用户类白名单的DHCP客户端发送的请求报文,才会进行处理。

【注意事项】

·     如果某个用户类未加入白名单,则该用户类对应的所有DHCP客户端都无法获取到IP地址。

·     如果DHCP客户端请求的是静态绑定租约,则DHCP服务器不进行白名单检查直接处理。

【配置举例】

# DHCP地址池0中开启DHCP用户类白名单功能(本例中的参数仅为示例)。

<Sysname> syatem-view

[Sysname] ip pool 0

[Sysname-dhcp-pool-0] verify class

# DHCP地址池0中配置DHCP白名单包括的用户类名为test1test2

[Sysname-dhcp-pool-0] valid class test1 test2

4.4.3  DHCP中继用户地址表项管理功能

【安全威胁】

在通过DHCP获取地址的组网环境中,所有合法客户端都通过DHCP方式获取到IP地址。某些非法主机使用自身伪造的IP地址发送攻击报文攻击网关,影响网关设备的正常工作。

【安全加固策略】

·     DHCP中继用户地址表项记录功能

开启本功能后,当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与硬件地址的绑定关系,生成DHCP中继的用户地址表项。

本功能与其他IP地址安全功能(如ARP地址检查和授权ARP)配合,可以实现只允许匹配用户地址表项中绑定关系的报文通过DHCP中继。从而,保证非法主机不能通过DHCP中继与外部网络通信。

·     DHCP中继动态用户地址表项定时刷新功能

DHCP中继动态用户地址表项定时刷新功能开启时,DHCP中继每隔指定时间采用客户端获取到的IP地址向DHCP服务器发送DHCP-REQUEST报文:

¡     如果DHCP中继接收到DHCP服务器响应的DHCP-ACK报文或在指定时间内未接收到DHCP服务器的响应报文,则表明这个IP地址已经可以进行分配,DHCP中继会删除动态用户地址表中对应的表项。为了避免地址浪费,DHCP中继收到DHCP-ACK报文后,会发送DHCP-RELEASE报文释放申请到的IP地址。

¡     如果DHCP中继接收到DHCP服务器响应的DHCP-NAK报文,则表示该IP地址的租约仍然存在,DHCP中继不会删除该IP地址对应的表项。

·     DHCP中继的用户下线探测功能

如果在接口上配置了DHCP中继的用户下线检测功能,则当ARP表项老化时,DHCP中继认为该表项对应的用户已经下线,删除对应的用户地址表项,并通过发送Release报文通知DHCP服务器删除下线用户的IP地址租约。

【注意事项】

手工删除ARP表项,不会触发DHCP中继删除对应的用户地址表项。

【配置举例】

# 开启DHCP中继用户地址表项记录功能。

<Sysname> system-view

[Sysname] dhcp relay client-information record

# 开启DHCP中继动态用户地址表项定时刷新功能。

[Sysname] dhcp relay client-information refresh enable

# 配置DHCP中继动态用户地址表项的刷新时间间隔为100秒(本例中的参数仅为示例)。

[Sysname] dhcp relay client-information refresh interval 100

# 开启用户下线探测功能。

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] dhcp client-detect

4.5  DNS安全

【安全威胁】

网络攻击者通过DHCP服务器为设备分配错误的域名后缀和域名服务器地址,会导致设备域名解析失败,或解析到错误的结果。

【安全加固策略】

在设备上指定DNS信任接口后,域名解析时只采用信任接口动态获得的域名后缀和域名服务器信息,非信任接口获得的信息不能用于域名解析,从而在一定程度上避免这类攻击。

【配置举例】

# 指定接口GigabitEthernet1/2/0/1DNS信任接口(本例中的参数仅为示例)

<Sysname> system-view

[Sysname] dns trust-interface gigabitethernet 1/2/0/1

4.6  ICMP安全

【安全威胁】

ICMP差错报文通常被网络层或传输层协议用来在异常情况发生时通知相应设备,以便进行控制和管理。当网络攻击源发送ICMP差错报文进行恶意攻击时,会改变设备的报文转发路径,影响报文的正常发送

【安全加固策略】

常见ICMP错报文包括ICMP重定向报文、ICMP超时报文和ICMP目的不可达报文。为了防止攻击,建议关闭这些ICMP报文发送功能。

【配置举例】

·     配置ICMPv4安全功能。

# 关闭设备的ICMP重定向报文发送功能。

<Sysname> system-view

[Sysname] undo ip redirects enable

# 关闭设备的ICMP超时报文发送功能。

[Sysname] undo ip ttl-expires enable

# 关闭设备的ICMP目的不可达报文发送功能。

[Sysname] undo ip unreachables enable

·     配置ICMPv6安全功能。

# 关闭设备的ICMPv6目的不可达报文发送功能。

<Sysname> system-view

[Sysname] undo ipv6 unreachables enable

# 关闭设备的ICMPv6超时报文发送功能。

[Sysname] undo ipv6 hoplimit-expires enable

# 关闭设备的ICMPv6重定向报文发送功能。

[Sysname] undo ipv6 redirects enable

4.7  TCP安全

4.7.1  SYN Cookie功能

【安全威胁】

SYN Flood攻击是指攻击者向设备发送大量请求建立TCP连接的SYN报文,而不回应设备的SYN ACK报文,导致设备上建立了大量的TCP半连接,从而达到耗费设备资源,使设备无法处理正常业务的目的。

【安全加固策略】

SYN Cookie功能用来防止SYN Flood攻击。配置SYN Cookie功能后,当设备收到TCP连接请求时,不建立TCP半连接,而直接向发起者回复SYN ACK报文。设备接收到发起者回应的ACK报文后,建立连接,并进入ESTABLISHED状态。通过这种方式,可以避免在设备上建立大量的TCP半连接。

【配置举例】

# 开启SYN Cookie功能。

<Sysname> system-view

[Sysname] tcp syn-cookie enable

4.7.2  禁止发送TCP报文时添加TCP时间戳选项信息

【安全威胁】

TCP报文携带TCP时间戳选项信息时,建立TCP连接的两台设备通过TCP报文中的时间戳字段就可计算出RTTRound Trip Time,往返时间)值。在某些组网中,TCP连接上的中间设备获取到TCP时间戳信息,学习到TCP连接成功的时间。如果中间设备存在攻击源,则TCP连接存在安全隐患。

【安全加固策略】

为了防止上述攻击,可以在TCP连接的任意一端关闭发送TCP报文时添加时间戳选项信息功能。

【配置举例】

# 配置发送TCP报文时不添加TCP时间戳选项信息。

<Sysname> system-view

[Sysname] undo tcp timestamps enable

4.8  路由协议安全

4.8.1  RIP/RIPng

【安全威胁】

攻击者仿冒RIP邻居或修改RIP路由信息,可能会使设备学习到错误的路由或引发网络中断。

【安全加固策略】

RIPRIPng提供了如下几种安全策略:

·     RIP-1RIPng报文的零域检查

RIP-1RIPng报文中的有些字段必须为零,称之为零域。用户可配置RIP-1在接收报文时对零域进行检查,零域值不为零的RIP-1报文将不被处理。

·     对接收到的RIP路由更新报文进行源IP地址检查

RIP在接收报文时进行源IP地址检查,即检查发送报文的接口IP地址与接收报文接口的IP地址是否处于同一网段。如果没有通过检查,则该RIP报文将不被处理。

·     RIPv2的报文认证机制

设备在发送报文时携带验证信息,在接收报文时对验证信息进行校验,如果报文校验失败,则该报文将被丢弃。这样可以避免设备接收无法信任的设备的RIPv2报文。

·     RIPng基于IPsec安全框架的认证方式

设备在发送的报文中会携带配置好的IPsec安全框架的SPISecurity Parameter Index,安全参数索引)值,接收报文时通过SPI值进行IPsec安全框架匹配:仅接收安全框架匹配的报文;否则该报文被丢弃无法正常建立邻居和学习路由IPsec安全框架的具体情况请参见“安全配置指导”中的“IPsec”。

【配置举例】

# 开启进程号为1RIP进程对RIP-1报文的零域检查功能。

<Sysname> system-view

[Sysname] rip

[Sysname-rip-1] checkzero

# 开启对接收到的RIP路由更新报文进行源IP地址检查的功能。

<Sysname> system-view

[Sysname-rip] rip 100

[Sysname-rip-100] validate-source-address

# 在接口GigabitEthernet1/2/0/1上配置RFC 2453格式的MD5明文验证,密钥为roserose仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] rip version 2

[Sysname-GigabitEthernet1/2/0/1] rip authentication-mode md5 rfc2453 plain rose

# 开启进程号为100RIPng进程对RIPng报文的零域检查功能。

<Sysname> system-view

[Sysname] ripng 100

[Sysname-ripng-100] checkzero

# 配置接口GigabitEthernet1/2/0/1应用的IPsec安全框架为profile001profile001仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] ripng ipsec-profile profile001

4.8.2  OSPF/OSPFv3

【安全加固策略】

OSPF/OSPFv3报文验证功能可避免路由信息外泄或者OSPF路由器受到恶意攻击。建立OSPF/OSPFv3邻居关系时,在发送的报文中携带配置的验证信息;接收报文时对验证信息进行校验。只有通过校验的报文才能接收,否则将不会接收报文,无法建立邻居。

除此之外,OSPFv3还可通过基于IPsec安全框架的认证方式来对OSPFv3报文进行有效性检查和验证。IPsec安全框架的详细介绍请参见“安全配置指导”中的“IPsec”。

GTSMGeneralized TTL Security Mechanism,通用TTL安全保护机制)功能可避免设备受到CPU利用(CPU-utilization)等类型的攻击(如CPU过载)。当设备收到来自OSPF普通邻居或虚连接邻居的报文时,会判断报文的TTL是否在255-hop-count+1255之间。如果在,就上送报文;如果不在,则直接丢弃报文。

【配置举例】

# 配置OSPF区域0使用MD5明文验证模式,验证字标识符为15,验证密钥为abc。(各参数仅为示例)

<Sysname> system-view

[Sysname] ospf 100

[Sysname-ospf-100] area 0

[Sysname-ospf-100-area-0.0.0.0] authentication-mode md5 15 plain abc

# 配置接口GigabitEthernet1/2/0/1采用MD5明文验证模式,验证字标识符为15,验证密钥为123456。(各参数仅为示例

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] ospf authentication-mode md5 15 plain 123456

# 配置OSPFv3区域1使用keychain验证模式,keychain名为testtest仅为示例)。

<Sysname> system-view

[Sysname] ospfv3 1

[Sysname-ospfv3-1] area 1

[Sysname-ospfv3-1-area-0.0.0.1] authentication-mode keychain test

# 配置OSPFv3进程1区域0的安全框架为profile001profile001仅为示例)。

<Sysname> system-view

[Sysname] ospfv3 1

[Sysname-ospfv3-1] area 0

[Sysname-ospfv3-1-area-0.0.0.0] enable ipsec-profile profile001

# 开启接口GigabitEthernet1/2/0/1GTSM功能,并指定最大跳数为254254仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] ospf ttl-security hops 254

4.8.3  IS-IS

【安全加固策略】

IS-IS提供邻居关系验证、区域验证以及路由域验证功能。设备将验证密钥按照设定的方式封装到相应的报文中,在接收报文时检查报文中携带的验证密钥,如果验证密钥不匹配,则该报文将被丢弃。不同的IS-IS安全加固策略应用场景不同,具体如下:

·     邻居关系验证:可以确认邻居的正确性和有效性,防止与无法信任的路由器形成邻居。验证密钥将会按照设定的方式封装到Hello报文中,并检查接收到的Hello报文中携带的验证密钥,通过检查才会形成邻居关系,否则无法形成邻居关系。

·     区域验证:可以防止从不可信任的路由器学习到的路由信息加入到本地Level-1LSDB中。验证密钥将会按照设定的方式封装到Level-1报文(LSPCSNPPSNP)中,并检查收到的Level-1报文中携带的验证密钥,通过检查的Level-1报文才会被接收,否则该报文将会被丢弃。

·     路由域验证:可以防止将不可信的路由信息注入当前路由域。验证密钥将会按照设定的方式封装到Level-2报文(LSPCSNPPSNP)中,并检查收到的Level-2报文中携带的验证密钥,通过检查的Level-2报文才会被接收,否则该报文将会被丢弃。

【配置举例】

# 为接口GigabitEthernet1/2/0/1配置邻居关系采用简单明文验证模式,验证密钥为123456123456仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] isis authentication-mode simple plain 123456

# IS-IS进程1下配置区域采用简单明文验证模式,验证密钥为123456123456仅为示例)。

<Sysname> system-view

[Sysname] isis 1

[Sysname-isis-1] area-authentication-mode simple plain 123456

# 配置路由域采用简单明文验证模式,认证密钥为123456123456仅为示例)。

<Sysname> system-view

[Sysname] isis 1

[Sysname-isis-1] domain-authentication-mode simple plain 123456

4.8.4  BGP

1. 限制从BGP对等体/对等体组接收的路由数量

【安全威胁】

非法用户通过向设备发送大量BGP路由的方式对设备进行攻击,浪费系统资源,引起网络故障。

【安全加固策略】

为了预防这种攻击,设备可以限制从指定对等体/对等体组接收路由的数量,并且在接收到的BGP路由达到配置值时,可以选择如下处理方式:

·     路由器中断与该对等体/对等体组的BGP会话,不再尝试重建会话。

·     路由器保持与该对等体/对等体组的BGP会话,可以继续接收路由,仅打印日志信息。

·     路由器保持与该对等体/对等体组的BGP会话,丢弃超出限制的路由,并打印日志信息。

·     路由器中断与该对等体/对等体组的BGP会话,经过指定的时间后自动与对等体/对等体组重建会话。

【配置举例】

# BGP IPv4单播地址族视图下,设置允许从对等体1.1.1.1收到的路由数量为10000。如果从对等体1.1.1.1收到的路由数量超过10000,则断开与该对等体的会话。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 109

[Sysname-bgp-default] address-family ipv4 unicast

[Sysname-bgp-default-ipv4] peer 1.1.1.1 route-limit 10000

2. 建立安全的BGP会话

【安全威胁】

攻击者可以冒充合法用户与设备建立BGP会话,或窃取并篡改BGP报文,影响BGP路由的学习。

【安全加固策略】

BGP使用TCP作为其传输层协议,为了避免受到以上两种方式的攻击,可以为BGP对等体配置BGPMD5认证或keychain认证:

·     BGP建立TCP连接时进行MD5认证,只有两台设备配置的密钥相同时,才能建立TCP连接,从而避免与非法的设备建立TCP连接。

·     传递BGP报文时,对封装BGP报文的TCP报文段进行MD5运算,从而保证BGP报文不会被篡改。

·     BGP建立TCP连接时,配置keychain认证,只有两台配置keychain认证的设备满足以下条件时才能正常建立TCP连接、交互BGP消息:

¡     同一时间内使用的key的标识符相同。

¡     相同标识符的key的认证算法和认证密钥一致。

【配置举例】

# BGP实例视图下,配置本地路由器10.1.100.1与对等体10.1.100.2之间的BGP会话使用MD5认证,密钥为明文字符串aabbcc。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 100

[Sysname-bgp-default] peer 10.1.100.2 password simple aabbcc

# BGP实例视图下,配置IP地址为10.1.1.1的对等体使用名为abckeychain认证。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 100

[Sysname-bgp-default] peer 10.1.1.1 as-number 100

[Sysname-bgp-default] peer 10.1.1.1 keychain abc

3. BGP GTSM

【安全威胁】

攻击者向网络设备发送大量有效的IP报文时,对网络设备造成CPU利用(CPU-utilization)等类型的攻击。

【安全加固策略】

GTSMGeneralized TTL Security Mechanism,通用TTL安全保护机制)是一种简单易行的、对基于IP协议的上层业务进行保护的安全机制。GTSM通过检查接收到的IP报文头中的TTL值是否在一个预先定义好的范围内,来判断IP报文是否合法。用户可以指定本地设备到达某个对等体的最大跳数,则从该对等体接收到的BGP报文的合法TTL范围为255-“最大跳数”+1255。只有来自该对等体的报文TTL值在该合法范围内时,才将报文上送CPU处理;否则,直接丢弃报文。另外,配置BGP GTSM功能后,设备会将发送报文的初始TTL设置为255

【注意事项】

对于直连EBGP对等体,GTSM可以提供最佳的保护效果;对于非直连EBGPIBGP对等体,由于中间设备可能对TTL值进行篡改,GTSM的保护效果受到中间设备安全性的限制。

【配置举例】

# BGP实例视图下,为已经创建的对等体组test开启BGP GTSM功能,并指定对等体组中的对等体到达本地设备的最大跳数为1。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 100

[Sysname-bgp-default] peer test ttl-security hops 1

4. BGP RPKI

【安全威胁】

BGP路由中的AS_PATH属性记录了某条路由从本地到某个IP地址(网段)所要经过的所有AS号。其中,该IP地址(网段)所处的AS称为源AS。如果攻击者篡改了源AS,则会导致指定IP地址(网段)不可达甚至网络瘫痪。攻击者还可以通过构造非法的源AS向网络设备通告路由,窃取BGP路由信息。

【安全加固策略】

配置BGP RPKIResource Public Key Infrastructure,资源公钥基础设施)功能后,设备在收到BGP路由的时候,会验证源AS是否合法,并根据验证结果来决定是否使用该BGP路由以及是否发布该路由。

【配置举例】

# 开启BGP RPKI功能,指定BGP RPKI服务器地址为1.1.1.1,配置与RPKI服务器建立连接的端口号为1234。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 100

[Sysname-bgp-default] rpki

[Sysname-bgp-default-rpki] server tcp 1.1.1.1

[Sysname-bgp-default-rpki-server] port 1234

5. BGP通过IPsec保护IPv6 BGP报文

【安全加固策略】

为了避免路由信息外泄或者非法者对设备进行恶意攻击,可以利用IPsec安全隧道对IPv6 BGP报文进行保护。通过IPsec提供的数据机密性、完整性、数据源认证等功能,确保IPv6 BGP报文不会被侦听或恶意篡改,并避免非法者构造IPv6 BGP报文对设备进行攻击。

在互为IPv6 BGP邻居的两台设备上都配置通过IPsec保护IPv6 BGP报文后,一端设备在发送IPv6 BGP报文时通过IPsec对报文进行加封装,另一端设备接收到报文后,通过IPsec对报文进行解封装。如果解封装成功,则接收该报文,正常建立IPv6 BGP对等体关系或学习IPv6 BGP路由;如果设备接收到不受IPsec保护的IPv6 BGP报文,或IPv6 BGP报文解封装失败,则会丢弃该报文。

【配置举例】

# 配置IPsec安全提议和手工方式的IPsec安全框架。相关配置的详细介绍请参见“安全配置指导”中的“IPsec”。

# BGP实例视图下,为对等体组test应用安全框架profile001。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 100

[Sysname-bgp-default] peer test ipsec-profile profile001

4.9  组播安全

4.9.1  PIM/IPv6 PIM

1. 配置Hello报文过滤器

【安全威胁】

PIM域中,设备上每个运行了PIM协议的接口通过定期向本网段的所有PIM设备(224.0.0.13)组播PIM Hello报文来发现PIM邻居,维护各设备之间的PIM邻居关系,从而构建和维护SPT。当设备上存在大量恶意Hello报文时,正常的PIM邻居建立机制受到干扰,导致PIM邻居关系无法正确建立,继而设备受到各种PIM协议报文攻击。

【安全加固策略】

可以通过在接口上配置Hello报文过滤器,通过ACL规则限制合法的Hello报文源地址范围,从而丢弃恶意的报文,提高设备对PIM协议报文处理的安全性。

【配置举例】

# 在接口GigabitEthernet1/2/0/1上配置合法Hello报文的源地址范围,只允许与来自网段10.1.1.0/24中的设备建立PIM邻居关系。(各参数仅为示例)

<Sysname> system-view

[Sysname] acl basic 2000

[Sysname-acl-ipv4-basic-2000] rule permit source 10.1.1.0 0.0.0.255

[Sysname-acl-ipv4-basic-2000] quit

[Sysname] interface gigabitethernet1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] pim neighbor-policy 2000

# 在接口GigabitEthernet1/2/0/1上配置合法Hello报文的源地址范围,只允许与来自网段FE80:101::101/64中的设备建立IPv6 PIM邻居关系。(各参数仅为示例)

<Sysname> system-view

[Sysname] acl ipv6 basic 2000

[Sysname-acl-ipv6-basic-2000] rule permit source fe80:101::101 64

[Sysname-acl-ipv6-basic-2000] quit

[Sysname] interface gigabitethernet1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] ipv6 pim neighbor-policy 2000

2. 配置加入/剪枝报文中加入信息过滤规则

【安全加固策略】

配置加入/剪枝报文中加入信息的过滤规则,通过ACL规则限制PIM加入/剪枝报文中加入信息的合法源地址范围和组地址范围,丢弃不合法的加入信息,不建立对应的(*G)或(SG)表项,以防止非法PIM加入/剪枝报文攻击。

【配置举例】

# 在接口GigabitEthernet1/2/0/1上配置过滤规则,只允许接收组地址范围是225.1.1.1/16的加入信息。(各参数仅为示例)

<Sysname> system-view

[Sysname] acl basic 2005

[Sysname-acl-ipv4-basic-2005] rule permit source 225.1.1.1 0.0.255.255

[Sysname-acl-ipv4-basic-2005] quit

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] pim join-policy 2005

# 在接口GigabitEthernet1/2/0/1上配置过滤规则,只允许接收组地址范围是FF25::1/128IPv6 PIM加入/剪枝报文。(各参数仅为示例)

<Sysname> system-view

[Sysname] acl ipv6 basic 2005

[Sysname-acl-ipv6-basic-2005] rule permit source FF25::1 128

[Sysname-acl-ipv6-basic-2005] quit

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] ipv6 pim join-policy 2005

4.9.2  MSDP

【安全加固策略】

通过在MSDP对等体上配置MD5认证功能,为TCP连接设置MD5认证密钥并由TCP完成认证。只有认证通过,才可以正常建立TCP连接,从而阻止非法报文的恶意攻击。

【注意事项】

参与MD5认证的两端MSDP对等体必须配置相同的认证方式和密钥,否则将由于不能通过认证而无法建立TCP连接。

【配置举例】

# 在公网实例中配置与MSDP对等体10.1.100.1建立TCP连接时进行MD5认证,并以明文方式设置密钥为aabbcc。(各参数仅为示例)

<Sysname> system-view

[Sysname] msdp

[Sysname-msdp] peer 10.1.100.1 password simple aabbcc

4.10  MPLS安全

4.10.1  LDP

【安全威胁】

LDP消息中的内容容易被窃取和篡改。当设备收到攻击者伪造的LDP报文时,会与之建立TCP连接,从而被攻击者捕获设备信息,造成设备重要信息泄露。

【安全加固策略】

为了提高LDP会话的安全性,可以配置在LDP会话使用的TCP连接上采用MD5认证,来验证LDP消息的完整性,防止网络攻击和恶意探测。

【配置举例】

# 配置公网LDPMD5认证功能:与对等体3.3.3.3建立的LDP会话上采用MD5认证,以明文方式设置密钥,密钥值为pass。(各参数仅为示例)

<Sysname> system-view

[Sysname] mpls ldp

[Sysname-ldp] md5-authentication 3.3.3.3 plain pass

4.10.2  RSVP

【安全加固策略】

为了防止伪造的资源预留请求非法占用网络资源,RSVP采用逐跳认证机制来验证RSVP消息的合法性。一条链路两端的设备上需要配置相同的认证密钥,只有这样,设备之间才可以正确地交互RSVP消息。

【注意事项】

RSVP认证功能可以在如下视图配置:

·     RSVP视图:该视图下的配置对所有RSVP SA生效。

·     RSVP邻居视图:该视图下的配置只对与指定RSVP邻居之间的RSVP SA生效。

·     接口视图:该视图下的配置只对根据指定接口下的配置生成的RSVP SA生效。

三个视图下配置的优先级从高到低依次为:RSVP邻居视图、接口视图、RSVP视图。

【配置举例】

# RSVP视图下全局开启RSVP认证功能,并指定认证密钥为明文@aa2019@aa2019仅为示例)。

<Sysname> system-view

[Sysname] rsvp

[Sysname-rsvp] authentication key plain @aa2019

# RSVP邻居视图下开启本地设备与邻居1.1.1.9之间的认证功能,并指定认证密钥为明文@aa2019@aa2019仅为示例)。

<Sysname> system-view

[Sysname] rsvp

[Sysname-rsvp] peer 1.1.1.9

[Sysname-rsvp-peer-1.1.1.9] authentication key plain @aa2019

# 在接口GigabitEthernet1/2/0/1上开启RSVP认证功能,并配置认证密钥为明文@aa2019@aa2019仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] rsvp authentication key plain @aa2019

4.11  控制平面限速及丢包告警

4.11.1  协议报文限速

【安全威胁】

设备上的控制平面是指运行大部分路由交换协议进程的处理单元,它的主要工作是进行协议报文的解析和协议的运行。与之相对应的核心物理实体是CPU,它具备灵活的报文处理能力,但数据吞吐能力有限。如果大量协议报文同时上送CPU,会使CPU一直忙于处理协议报文而无法顾及其它任务,最终导致过载甚至设备瘫痪。

【安全加固策略】

可以通过QoS策略实现协议报文限速:在流分类中配置匹配指定协议报文的规则,在流行为中配置限速动作,最后将QoS策略应用在控制平面上,达到对上送CPU的协议报文速率进行限制的目的,保证CPU的正常运转。

【配置举例】

# 定义策略p,并为流分类c指定流行为b

[Sysname] qos policy p

[Sysname-qospolicy-p] classifier c behavior b

[Sysname-qospolicy-p] quit

# 将策略p应用到指定成员设备指定slot的控制平面。

[Sysname] control-plane chassis 1 slot 1

[Sysname-cp-chassis1-slot1] qos apply policy p inbound

4.12  高可靠性协议报文认证

4.12.1  DLDP报文认证

【安全加固策略】

配置DLDP认证模式和密码后,设备将接收的DLDP报文的认证信息与本端配置的认证信息进行比较,若一致则认证通过,否则丢弃该报文DLDP的认证模式包括:不认证、明文认证和MD5认证。

通过配置适当的DLDP认证模式和密码,可以防止网络攻击和恶意探测。

【配置举例】

# 配置Device ADevice B通过光纤/网线连接的接口间的DLDP认证模式均为明文认证,认证密码均为abc。(各参数仅为示例)

·     Device A上的配置:

<DeviceA> system-view

[DeviceA] dldp authentication-mode simple

[DeviceA] dldp authentication-password simple abc

·     Device B上的配置:

<DeviceB> system-view

[DeviceB] dldp authentication-mode simple

[DeviceB] dldp authentication-password simple abc

4.12.2  VRRP报文认证

【安全威胁】

非法用户构造VRRP通告报文攻击VRRP备份组,导致VRRP备份组无法正常运行。

【安全加固策略】

VRRP通过在VRRP报文中增加认证字的方式,验证接收到的VRRP报文。VRRP提供了两种认证方式:

·     simple:简单字符认证。发送VRRP报文的路由器将认证字填入到VRRP报文中,而收到VRRP报文的路由器会将收到的VRRP报文中的认证字和本地配置的认证字进行比较。如果认证字相同,则认为接收到的报文是真实、合法的VRRP报文;否则认为接收到的报文是一个非法报文。

·     md5MD5认证。发送VRRP报文的路由器利用认证字和MD5算法对VRRP报文进行摘要运算,运算结果保存在Authentication Header(认证头)中。收到VRRP报文的路由器会利用认证字和MD5算法进行同样的运算,并将运算结果与认证头的内容进行比较。如果相同,则认为接收到的报文是真实、合法的VRRP报文;否则认为接收到的报文是一个非法报文。

【注意事项】

MD5认证比简单字符认证更安全,但是MD5认证需要进行额外的运算,占用的系统资源较多。

一个接口上的不同备份组可以设置不同的认证方式和认证字;加入同一备份组的成员需要设置相同的认证方式和认证字。

使用VRRPv3版本的IPv4 VRRP不支持认证。使用VRRPv3版本时,此配置不会生效。

【配置举例】

# 设置接口GigabitEthernet1/2/0/1上备份组1发送和接收IPv4 VRRP报文的认证方式为simple,认证字为Sysname。(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] vrrp vrid 1 authentication-mode simple plain Sysname

4.12.3  BFD控制报文认证

【安全威胁】

本地设备收到伪造的BFD报文,例如包含错误状态信息的BFD时,BFD会话状态发生变化,从而引起会话震荡,破坏BFD节点间的正常会话。

【安全加固策略】

在建立控制报文方式的BFD会话时,设备将认证信息封装到BFD控制报文中,在接收BFD控制报文时进行认证信息的检查,如果认证信息不匹配,则无法建立BFD会话。

【配置举例】

# 配置接口GigabitEthernet1/2/0/1对单跳BFD控制报文进行简单明文认证,认证字标识符为1,密钥为123456。(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/2/0/1

[Sysname-GigabitEthernet1/2/0/1] bfd authentication-mode simple 1 plain 123456

# 配置多跳BFD控制报文进行简单明文认证,认证字标识符为1,密钥为123456。(各参数仅为示例)

<Sysname> system-view

[Sysname] bfd multi-hop authentication-mode simple 1 plain 123456

4.13  时间管理协议报文认证

4.13.1  NTP服务的访问控制权限

【安全威胁】

一个使用NTP协议同步时间的网络中,如果没有配置NTP验证,非法的时间服务器就可以随意向网络中的设备发送时间同步信息,可能导致设备同步到错误的时间。

【安全加固策略】

可以通过关联ACL来限制对端设备对本地设备上NTP服务的访问控制权限。

NTP服务的访问控制权限从高到低依次为peerserversynchronizationquery

·     peer:完全访问权限。该权限既允许对端设备向本地设备的时间同步,对本地设备进行控制查询(查询NTP的一些状态,比如告警信息、验证状态、时间服务器信息等),同时本地设备也可以向对端设备的时间同步。

·     server:服务器访问与查询权限。该权限允许对端设备向本地设备的时间同步,对本地设备进行控制查询,但本地设备不会向对端设备的时间同步。

·     synchronization:仅具有访问服务器的权限。该权限只允许对端设备向本地设备的时间同步,但不能进行控制查询。

·     query:仅具有控制查询的权限。该权限只允许对端设备对本地设备的NTP服务进行控制查询,但是不能向本地设备的时间同步。

以上定义的访问控制权限都可以关联ACL,由ntp-service { peer | query | server | synchronization } acl命令配置。设备一旦收到NTP服务请求时,会先对其执行ACL规则匹配再为其分配ACL关联的访问控制权限。具体匹配规则如下:

当设备接收到NTP服务请求时,会按照权限从高到低的顺序依次进行匹配。匹配原则为:

·     如果没有指定权限应用的ACL或权限应用的ACL尚未创建,则继续匹配下一个权限。

·     如果所有的权限都没有应用ACL或权限应用的ACL尚未创建,则所有对端设备对本地设备NTP服务的访问控制权限均为peer

·     如果存在应用了ACL的权限,且该ACL已经创建,则只有NTP服务请求匹配了某个权限应用的ACL中的permit规则,发送该NTP服务请求的对端设备才会具有该访问控制权限。其他情况下(NTP服务请求匹配某个权限应用的ACL中的deny规则或没有匹配任何权限的任何规则),发送该NTP服务请求的对端设备不具有任何权限。

配置NTP服务的访问控制权限,仅提供了一种最小限度的安全措施,更安全的方法是使用NTP验证功能。

【配置举例】

# 创建并配置与访问权限关联的ACL

具体配置请参见“ACLQoS配置指导”中的“ACL

# 配置对端设备对本地设备NTP服务的访问控制权限(2001仅为示例)。

<Sysname> system-view

[Sysname] ntp-service peer acl 2001

4.13.2  NTP报文认证

【安全威胁】

网络上大多数信息都需要记录时间,如果设备从非法的时间服务器上获取了时间信息,则会导致设备同步到错误的时间。

【安全加固策略】

NTP通过验证功能来对接收到的NTP报文进行合法性验证。只有报文通过验证后,设备才会接收该报文,并从中获取时间同步信息;否则,设备会丢弃该报文。从而,保证设备不会与非法的时间服务器进行时间同步,避免时间同步错误。

图4-1 NTP验证功能示意图

 

4-1所示,NTP验证功能的工作过程为:

(1)     NTP报文发送者利用密钥ID标识的密钥对NTP报文进行加密运算,并将计算出来的摘要信息连同NTP报文和密钥ID一起发送给接收者。

(2)     接收者接收到该NTP报文后,根据报文中的密钥ID找到对应的密钥,并利用该密钥对报文进行相同的加密运算。接收者将运算结果与报文中的摘要信息比较,依据比较结果,有以下两种情况:

¡     比较结果不相同,则丢弃该报文。

¡     比较结果相同,则检查NTP报文发送者是否有权在本端使用该密钥ID,检查通过,则接收该报文;否则,丢弃该报文。

【注意事项】

客户端和服务器、主动对等体和被动对等体、广播客户端和广播服务器、组播客户端和组播服务器上进行不同的配置时,NTP验证结果有所不同,详细介绍请参见4-14-24-34-4。其中,表格中的“-”表示不管此项是否配置。

表4-1 客户端和服务器上进行不同配置时的NTP验证结果

客户端

服务器

结果

身份验证

关联密钥

关联密钥存在且为可信密钥

身份验证

关联密钥存在且为可信密钥

身份验证成功

身份验证失败

-

身份验证失败

-

-

身份验证失败

-

-

-

不进行身份验证

-

-

-

-

不进行身份验证

 

表4-2 主动对等体和被动对等体上进行不同配置时的NTP验证结果

主动对等体

被动对等体

结果

身份验证

关联密钥

关联密钥存在且为可信密钥

时钟层数

身份验证

关联密钥存在且为可信密钥

-

身份验证成功

-

身份验证失败

-

-

身份验证失败

-

-

-

身份验证失败

-

-

-

不进行身份验证

-

-

-

-

身份验证失败

-

-

-

-

不进行身份验证

大于被动对等体

-

-

身份验证失败

小于被动对等体

-

身份验证失败

小于被动对等体

-

不进行身份验证

 

表4-3 广播客户端和广播服务器上进行不同配置时的NTP验证结果

广播服务器

广播客户端

结果

身份验证

关联密钥

关联密钥存在且为可信密钥

身份验证

关联密钥存在且为可信密钥

身份验证成功

身份验证失败

-

身份验证失败

-

身份验证失败

-

不进行身份验证

-

-

身份验证失败

-

-

不进行身份验证

-

-

-

身份验证失败

-

-

-

不进行身份验证

 

表4-4 组播客户端和组播服务器上进行不同配置时的NTP验证结果

组播服务器

组播客户端

结果

身份验证

关联密钥

关联密钥存在且为可信密钥

身份验证

关联密钥存在且为可信密钥

身份验证成功

身份验证失败

-

身份验证失败

-

身份验证失败

-

不进行身份验证

-

-

身份验证失败

-

-

不进行身份验证

-

-

-

身份验证失败

-

-

-

不进行身份验证

 

【配置举例】

·     配置客户端/服务器模式的NTP验证功能。

# 开启客户端的NTP验证功能。

<DeviceA> system-view

[DeviceA] ntp-service authentication enable

# NTP客户端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceA] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP客户端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceA] ntp-service reliable authentication-keyid 42

# NTP客户端指定与编号42密钥关联的NTP服务器。

[DeviceA] ntp-service unicast-server 1.1.1.1 authentication-keyid 42

# 开启服务器端的NTP验证功能。

<DeviceB> system-view

[DeviceB] ntp-service authentication enable

# NTP服务器端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceB] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP服务器端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceB] ntp-service reliable authentication-keyid 42

·     配置对等体模式的NTP验证功能

# 开启主动对等体的NTP验证功能。

<DeviceA> system-view

[DeviceA] ntp-service authentication enable

# NTP主动对等体创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceA] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP主动对等体配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceA] ntp-service reliable authentication-keyid 42

# NTP主动对等体指定与编号42密钥关联的NTP被动对等体。

[DeviceA] ntp-service unicast-peer 1.1.1.1 authentication-keyid 42

# 开启被动对等体的NTP验证功能。

<DeviceB> system-view

[DeviceB] ntp-service authentication enable

# NTP被动对等体创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceB] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP被动对等体配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceB] ntp-service reliable authentication-keyid 42

·     配置广播模式的NTP验证功能

# 开启广播客户端的NTP验证功能。

<DeviceA> system-view

[DeviceA] ntp-service authentication enable

# NTP广播客户端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceA] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP广播客户端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceA] ntp-service reliable authentication-keyid 42

# 开启广播服务器端的NTP验证功能。

<DeviceB> system-view

[DeviceB] ntp-service authentication enable

# NTP广播服务器端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceB] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP广播服务器端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceB] ntp-service reliable authentication-keyid 42

# NTP广播服务器与编号42密钥关联。

[DeviceB] interface gigabitethernet 1/2/0/1

[DeviceB-GigabitEthernet1/2/0/1] ntp-service broadcast-server authentication-keyid 42

·     配置组播模式的NTP验证功能

# 开启组播客户端的NTP验证功能。

<DeviceA> system-view

[DeviceA] ntp-service authentication enable

# NTP组播客户端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceA] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP组播客户端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceA] ntp-service reliable authentication-keyid 42

# 开启组播服务器端的NTP验证功能。

<DeviceB> system-view

[DeviceB] ntp-service authentication enable

# NTP组播服务器端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceB] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP组播服务器端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceB] ntp-service reliable authentication-keyid 42

# NTP组播服务器与编号42密钥关联。

[DeviceB] interface gigabitethernet 1/2/0/1

[DeviceB-GigabitEthernet1/2/0/1] ntp-service multicast-server 224.0.1.1 authentication-keyid 42

4.13.3  SNTP报文认证

【安全威胁】

网络上大多数信息都需要记录时间,如果设备从非法的时间服务器上获取了时间信息,则会导致设备同步到错误的时间。

【安全加固策略】

SNTP通过验证功能来对接收到的SNTP报文进行合法性验证。只有报文通过验证后,设备才会接收该报文,并从中获取时间同步信息;否则,设备会丢弃该报文。从而,保证设备不会与非法的时间服务器进行时间同步,避免时间同步错误。

图4-2 SNTP验证功能示意图

 

4-1所示,SNTP验证功能的工作过程为:

(1)     SNTP报文发送者利用密钥ID标识的密钥对SNTP报文进行加密运算,并将计算出来的摘要信息连同SNTP报文和密钥ID一起发送给接收者。

(2)     接收者接收到该SNTP报文后,根据报文中的密钥ID找到对应的密钥,并利用该密钥对报文进行相同的加密运算。接收者将运算结果与报文中的摘要信息比较,依据比较结果,有以下两种情况:

¡     比较结果不相同,则丢弃该报文。

¡     比较结果相同,则检查SNTP报文发送者是否有权在本端使用该密钥ID,检查通过,则接收该报文;否则,丢弃该报文。

【注意事项】

客户端需要将指定密钥与对应的NTP服务器关联,并保证服务端有权在本端使用该密钥ID进行验证。

如果客户端没有成功启用SNTP验证功能,不论服务器端是否开启验证功能,客户端均可以与服务器端同步。

【配置举例】

·     配置客户端。

# 开启SNTP客户端的身份验证功能。

<DeviceA> system-view

[DeviceA] sntp authentication enable

# SNTP客户端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceA] sntp authentication-keyid 42 authentication-mode md5 simple aNiceKey

# SNTP客户端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceA] sntp reliable authentication-keyid 42

# SNTP客户端指定与编号42密钥关联的NTP服务器。

[DeviceA] sntp unicast-server 1.1.1.1 authentication-keyid 42

·     配置服务器端。

# 开启服务器端的NTP验证功能。

<DeviceB> system-view

[DeviceB] ntp-service authentication enable

# NTP服务器端创建编号为42NTP验证密钥,密钥值为aNiceKey,以明文形式输入。(各参数仅为示例)

[DeviceB] ntp-service authentication-keyid 42 authentication-mode md5 simple aNiceKey

# NTP服务器端配置编号为42的密钥为可信密钥(42仅为示例)。

[DeviceB] ntp-service reliable authentication-keyid 42

5 转发平面安全加固

5.1  广播、组播、未知单播抑制

5.1.1  风暴抑制和流量阈值控制

【安全威胁】

当设备收到广播、组播或未知单播流量时,设备会向同一广播域内的其他接口转发这些报文,这样可能导致广播风暴,降低设备转发性能。

【安全加固策略】

通过部署风暴抑制或者流量阈值控制,对设备收到的广播、组播或未知单播流量进行监测和控制,可以防止产生广播风暴。

部署风暴抑制后,如果收到的广播/组播/未知单播流量超过用户设置的抑制阈值,系统会丢弃超出流量限制的报文,从而限制网络中的泛洪流量,保证网络业务的正常运行。

部署流量阈值控制后,如果收到的广播/组播/未知单播流量超过预先设置的上限阈值,设备根据配置来决定是阻塞该端口还是关闭该端口,以及是否输出LogTrap信息。

【注意事项】

对于同一类型(广播、组播或未知单播)的报文流量,请不要同时配置风暴抑制功能和流量阈值控制,以免配置冲突,导致抑制效果不确定。

【配置举例】

# 配置名为vpn1VSI的广播、组播、未知单播抑制带宽均为100kbps。(各参数仅为示例)

<Sysname> system-view

[Sysname] vsi vpn1

[Sysname-vsi-vpn1] restrain broadcast 100

[Sysname-vsi-vpn1] restrain multicast 100

[Sysname-vsi-vpn1] restrain unknown-unicast 100

5.2  MAC地址安全管理

5.2.1  关闭MAC地址学习

【安全加固策略】

设备的MAC地址学习功能通常处于开启状态。有时为了保证设备的安全,需要关闭MAC地址学习功能。例如,非法用户使用大量源MAC地址不同的报文攻击设备,导致设备MAC地址表资源耗尽,造成设备无法根据网络的变化更新MAC地址表。关闭MAC地址学习功能可以有效防止这种攻击。

【配置举例】

# 关闭名为vpn1VSIMAC地址学习功能。

<Sysname> system-view

[Sysname] vsi vpn1

[Sysname-vsi-vpn1] undo mac-learning enable

5.2.2  控制MAC地址学习

【安全加固策略】

当非法用户使用大量源MAC地址不同的报文攻击设备时,会导致设备的MAC地址表变得庞大,可能引起设备转发性能下降的问题。为了避免网络受到冲击,可以配置MAC地址数学习上限功能。当MAC地址的学习数量达到上限时,则不再对MAC地址进行学习。同时还可以通过配置达到上限后的转发规则来控制是否允许系统转发源MAC不在MAC地址表中的报文。也可以开启告警功能在MAC地址数目达到最大值时、达到最大值后MAC地址数降低到最大值的90%以下时生成日志信息。

【配置举例】

# 配置名为vpn1VSI允许学习到的最大MAC地址数为1024,并配置学习到的MAC地址数达到最大值后,丢弃源MAC地址不在MAC地址表里的报文。(1024仅为示例)

<Sysname> system-view

[Sysname] vsi vpn1

[Sysname-vsi-vpn1] mac-table limit 1024

[Sysname-vsi-vpn1] mac-table limit drop-unknown

# 配置LDP PW允许学习到的最大MAC地址数为1024、配置MAC地址数目达到最大值时丢弃源MAC地址不在MAC地址表中的数据帧、并开启告警功能(1024仅为示例)。

<Sysname> system-view

[Sysname] vsi aaa

[Sysname-vsi-aaa] pwsignaling ldp

[Sysname-vsi-aaa-ldp] peer 2.2.2.3 pw-id 30

[Sysname-vsi-aaa-ldp-2.2.2.3-30] mac-limit action discard alarm enable maximum 1024

5.3  数据流保护

5.3.1  IPsec

IPsec是一组安全协议集合,能够为承载于IP协议上的数据提供包括发送方认证、完整性验证和机密性保证等一整套安全服务,其包括AHAuthentication Header,认证头)、ESPEncapsulating Security Payload,封装安全载荷)、IKEInternet Key Exchange,互联网密钥交换)和IKEv2Internet Key Exchange Version 2,互联网密钥交换第2版)等协议。其中,AH协议和ESP协议用于提供安全服务,IKE协议和IKEv2协议用于密钥交换。

关于IPsec的详细信息,请参见“安全配置指导”中的“IPsec”。

5.4  报文&流量过滤

5.4.1  ACL

ACLAccess Control List,访问控制列表)是一系列用于识别报文流的规则的集合。ACL需要与其他功能配合使用,例如报文过滤、QoS策略和策略路由等。这些功能通过引用ACL对收发报文进行精确识别,并对命中ACL规则的报文执行预先设定的策略,达到控制网络访问行为和提高网络带宽利用率等目的。

根据规则制订依据的不同,可以将ACL分为如5-1所示的几种类型

表5-1 ACL的分类

ACL类型

编号范围

适用的IP版本

规则制订依据

基本ACL

20002999

IPv4

报文的源IPv4地址

IPv6

报文的源IPv6地址

高级ACL

30003999

IPv4

报文的源IPv4地址、目的IPv4地址、报文优先级、IPv4承载的协议类型及特性等三、四层信息

IPv6

报文的源IPv6地址、目的IPv6地址、报文优先级、IPv6承载的协议类型及特性等三、四层信息

二层ACL

40004999

IPv4IPv6

报文的源MAC地址、802.1p优先级、链路层协议类型等二层信息

 

关于ACL的详细信息,请参见“ACLQoS配置指导”中的“ACL”。

5.4.2  流量过滤

【安全威胁】

网络和设备在运行过程中,业务系统可能会因为外部的攻击流量引发系统过载或异常,最终导致业务不可用。通过流量过滤功能可以禁止某些流量特征的报文通过,保护网络和设备的正常运行,保证合法流量的正常转发。

【安全加固策略】

流量过滤功能通过QoS策略实现。将配置了流量过滤动作的QoS策略应用在指定位置(接口、全局等),对符合流分类的流执行过滤动作(允许或禁止通过)。例如,可以根据网络的实际情况禁止从某个源IP地址发送过来的报文通过。

【配置举例】

# 定义高级ACL 3000,匹配源IP地址为10.0.0.2的数据流。(各参数仅为示例)

<Device> system-view

[Device] acl advanced 3000

[Device-acl-ipv4-adv-3000] rule permit ip source 10.0.0.2 0

[Device-acl-ipv4-adv-3000] quit

# 定义类classifier_1,匹配高级ACL 3000

[Device] traffic classifier classifier_1

[Device-classifier-classifier_1] if-match acl 3000

[Device-classifier-classifier_1] quit

# 定义流行为behavior_1,动作为流量过滤(deny),对数据包进行丢弃。

[Device] traffic behavior behavior_1

[Device-behavior-behavior_1] filter deny

[Device-behavior-behavior_1] quit

# 定义策略policy,为类classifier_1指定流行为behavior_1

[Device] qos policy policy

[Device-qospolicy-policy] classifier classifier_1 behavior behavior_1

[Device-qospolicy-policy] quit

# 将策略policy应用到端口GigabitEthernet1/2/0/1的入方向上。

[Device] interface gigabitethernet 1/2/0/1

[Device-GigabitEthernet1/2/0/1] qos apply policy policy inbound

5.4.3  Flowspec

近些年,DoSDenial of Service,拒绝服务)攻击和DDoSDistributed Denial of Service,分布式拒绝服务)攻击的频率、规模和复杂性都迅速飙升,成为网络安全的重大威胁。在DoS/DDoS攻击中,攻击者对同一个目的地址、网段或服务器发起流量攻击,导致网络拥塞或服务器CPU占用率过高,最终使得网络或设备无法正常为合法用户提供服务。

FlowspecFlow Specification,流规格)用来实现对BGP网络中的非法流量进行过滤与巡查,以减轻DoS/DDoS攻击对网络的影响。借助BGP路由更新,Flowspec针对攻击流量的特点,可集中配置和管理匹配规则以及流量动作,并快速地将匹配规则和流量动作应用到其他BGP路由器中。

BGP路由器收到Flowspec路由(匹配规则和流量动作)后将其应用到转发平面,从而对进入设备的流量采取适当的流量动作。Flowspec路由同样也支持跨AS传输,从而实现在最接近攻击源的设备上对攻击流量进行管控,这样能够最大程度地减少攻击流量对网络转发性能的影响。

关于Flowspec的详细信息,请参见“ACLQoS配置指导”中的“Flowspec”。

5.4.4  uRPF

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

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

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

关于uRPF的详细信息,请参见“安全配置指导”中的“uRPF”。

5.5  攻击检测与防范

5.5.1  DoS攻击检测与防范

部署于公网的网关设备,以及位于网关设备下游的主机或服务器容易受到各类单包攻击、扫描攻击和泛洪攻击等DoSDenial of Service,拒绝服务)攻击的侵害。受到DoS攻击的设备往往无法对正常用户的请求作出响应。

设备支持对如下DoS攻击进行有效防范:

·     单包攻击:ICMP redirectICMP unreachableICMP typeICMPv6 typeLandLarge ICMPLarge ICMPv6IP optionIP option abnormalFragmentImpossibleTiny fragmentSmurfTCP FlagTracerouteWinnukeUDP BombUDP SnorkUDP FraggleTeardropPing of deathIPv6 ext-header

·     扫描攻击:IP SweepPort scan、分布式Port scan

·     泛洪攻击:SYN floodACK floodSYN-ACK floodFIN floodRST floodDNS floodDNS reply floodHTTP floodSIP floodICMP floodICMPv6 floodUDP flood

关于DoS攻击检测与防范的详细信息,请参见“安全配置指导”中的“攻击检测与防范”。

5.5.2  基于IP的攻击防御

1. 防止Naptha攻击功能

【安全威胁】

Naptha属于DDoSDistributed Denial of Service,分布式拒绝服务)攻击方式,主要利用操作系统TCP/IP栈和网络应用程序需要使用一定的资源来控制TCP连接的特点,在短时间内不断地建立大量的TCP连接,并且使其保持在某个特定的状态(CLOSINGESTABLISHEDFIN_WAIT_1FIN_WAIT_2LAST_ACK五种状态中的一种),而不请求任何数据,那么被攻击设备会因消耗大量的系统资源而陷入瘫痪。

【安全加固策略】

防止Naptha攻击功能通过加速TCP状态的老化,来降低设备遭受Naptha攻击的风险。开启防止Naptha攻击功能后,设备周期性地对各状态的TCP连接数进行检测。当某状态的最大TCP连接数超过指定的最大连接数后,将加速该状态下TCP连接的老化。

【配置举例】

# 开启防止Naptha攻击功能,配置TCP连接的某一状态下的最大TCP连接数为100,配置TCP连接状态的检测周期为40秒。(各参数仅为示例)

<Sysname> system-view

[Sysname] tcp anti-naptha enable

[Sysname] tcp state established connection-limit 100

[Sysname] tcp check-state interval 40

2. 防止TCP SYN Flood攻击功能

【安全威胁】

根据TCP协议,TCP连接的建立需要经过三次握手。利用TCP连接的建立过程,一些恶意的攻击者可以进行SYN Flood攻击。攻击者向设备发送大量请求建立TCP连接的SYN报文,而不回应设备的SYN ACK报文,导致设备上建立了大量的无效TCP半连接,从而达到耗尽系统资源,使设备无法处理正常业务的目的。

【安全加固策略】

开启TCP SYN Flood攻击防范功能后,设备处于攻击检测状态,当设备收到请求端(要与其建立TCP连接的客户端)发送的SYN报文时,如果在一个检测周期内收到SYN报文的个数达到或超过触发阈值,即认为存在攻击,则进入攻击防范状态,限速或者丢弃后续收到的SYN报文。在攻击防范的持续时间到达后,设备由攻击防范状态恢复为攻击检测状态。TCP SYN Flood攻击防范可以基于流进行报文统计:使用源IP地址、目的端口号、VPN和报文类型来标识一条数据流进行统计。

【配置举例】

# 开启基于流的TCP SYN Flood攻击防范功能,配置触发阈值为100,持续时间为5分钟,检测周期为1秒。(各参数仅为示例)

<Sysname> system-view

[Sysname] tcp anti-syn-flood flow-based enable

[Sysname] tcp anti-syn-flood flow-based threshold 100

[Sysname] tcp anti-syn-flood flow-based duration 5

[Sysname] tcp anti-syn-flood flow-based check-interval 1