国家 / 地区

H3C 安全产品 安全加固手册(V7)-5W100

手册下载

H3C 安全产品 安全加固手册(V7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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


 

1 本书约定·· 1-1

1.1 读者对象·· 1-1

1.2 接口编号约定·· 1-1

1.3 特别申明·· 1-1

2 概述·· 2-1

2.1 安全威胁·· 2-1

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

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

2.2 安全体系架构·· 2-3

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

3 管理平面安全加固·· 3-4

3.1 登录及访问设备的安全·· 3-4

3.1.1 通过Console口登录·· 3-4

3.1.2 通过Stelnet登录设备·· 3-5

3.1.3 通过Restful访问设备·· 3-7

3.1.4 通过SNMP访问设备·· 3-7

3.1.5 通过Web登录设备·· 3-9

3.1.6 文件访问安全·· 3-9

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

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

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

3.2.3 命令行授权·· 3-11

3.2.4 Password Control 3-12

3.3 密码设置安全·· 3-12

3.4 设备管理安全·· 3-13

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

3.4.2 禁止访问BootWare菜单·· 3-13

3.4.3 关闭USB接口·· 3-14

3.4.4 配置内存告警门限·· 3-14

3.5 配置文件加密·· 3-15

3.6 安全日志·· 3-16

4 控制平面安全加固·· 4-17

4.1 生成树保护功能·· 4-17

4.2 ARP攻击防御·· 4-18

4.2.1 MAC为组播的ARP表项检查功能·· 4-18

4.2.2 泛洪类ARP报文攻击防范·· 4-18

4.2.3 防御ARP欺骗类攻击功能·· 4-19

4.3 ND攻击防御·· 4-23

4.4 接入业务安全·· 4-24

4.4.1 PPP· 4-24

4.4.2 L2TP· 4-28

4.4.3 Portal 4-32

4.4.4 SSL VPN· 4-34

4.5 DHCP安全·· 4-35

4.5.1 DHCP用户类白名单功能·· 4-35

4.5.2 DHCP中继用户地址表项管理功能·· 4-35

4.5.3 DHCP中继支持代理功能·· 4-36

4.6 DNS安全·· 4-37

4.7 ICMP安全·· 4-37

4.8 TCP安全·· 4-38

4.9 路由协议安全·· 4-38

4.9.1 RIP/RIPng· 4-38

4.9.2 OSPF/OSPFv3· 4-39

4.9.3 IS-IS· 4-40

4.9.4 BGP· 4-41

4.10 组播安全·· 4-43

4.10.1 PIM/IPv6 PIM·· 4-43

4.11 ADVPNVAM协议报文)安全·· 4-43

4.11.1 预共享密钥·· 4-43

4.11.2 验证/加密算法·· 4-44

4.11.3 身份认证·· 4-45

4.12 高可靠性协议报文认证·· 4-45

4.12.1 VRRP报文认证·· 4-45

4.12.2 BFD控制报文认证·· 4-46

4.13 时间管理协议报文认证·· 4-46

4.13.1 NTP服务的访问控制权限·· 4-46

4.13.2 NTP报文认证·· 4-47

4.13.3 SNTP报文认证·· 4-52

5 转发平面安全加固·· 5-53

5.1 风暴抑制和流量阈值控制·· 5-53

5.2 MAC地址安全管理·· 5-54

5.2.1 黑洞MAC地址·· 5-54

5.2.2 关闭MAC地址学习·· 5-54

5.2.3 控制MAC地址学习·· 5-55

5.2.4 配置接口的MAC地址学习优先级·· 5-55

5.3 数据流保护·· 5-56

5.3.1 IPsec· 5-56

5.3.2 GRE报文校验·· 5-56

5.3.3 使用IPsec保护ADVPN报文·· 5-57

5.4 报文&流量过滤·· 5-57

5.4.1 安全策略·· 5-57

5.4.2 ACL· 5-57

5.4.3 ASPF· 5-58

5.4.4 流量过滤·· 5-58

5.4.5 IP-MAC绑定·· 5-59

5.4.6 uRPF· 5-59

5.5 连接数限制·· 5-60

5.6 攻击检测与防范·· 5-60

5.6.1 DoS攻击检测与防范·· 5-60

5.6.2 DDoS攻击检测与防范·· 5-60

 


1 本书约定

1.1  读者对象

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

·              网络规划人员

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

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

1.2  接口编号约定

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

1.3  特别申明

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

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

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

2 概述

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

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 V7系统的安全体系架构如2-1所示:

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

 

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

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

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

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

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

¡  畸形报文检测

¡  安全策略

¡  防仿冒,例如uRPF

¡  DDoS攻击防范

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

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

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

a.   各协议本身(TCPICMP/ICMPv6ARP/ND)有相应的防护措施。

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

2.3  安全加固的基本原则

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

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

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

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

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

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

3 管理平面安全加固

3.1  登录及访问设备的安全

3.1.1  通过Console口登录

【安全威胁】

Console属于物理接口,通过它进行登录是登录设备的基本方式之一

如果攻击者获取了Console口的使用权限,在缺省情况下可以非常容易登录到设备上,获取到设备的管理权限。

【安全加固策略】

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

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

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

【注意事项】

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

【配置举例】

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

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

<Sysname> system-view

[Sysname] line console 0

[Sysname-line-console0] authentication-mode password

# 设置认证密码为明文Plat&0631!Plat&0631!仅为示例)。

[Sysname-line-console0] set authentication password simple Plat&0631!

# 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功能的安全性。

【配置举例】

# 开启基于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  通过Web登录设备

【安全加固策略】

HTTP登录并不安全,使用明文形式传输数据,攻击者很容易截取到报文。推荐用户使用HTTPS方式进行Web登录,由SSL为应用层传输提供安全性保证在设备上开启HTTPS服务后,用户即可通过HTTPS登录设备。

缺省情况下,设备作为HTTPS服务器端使用自签名证书与客户端建立SSL连接,且SSL参数均为缺省值,存在一定安全隐患。通过在设备上配置SSL服务器端策略,可以进一步提高HTTPS登录的安全性。

还可以通过配置证书属性访问控制策略控制只有从合法CA服务器获取证书的客户端可以通过HTTPS登录设备。

【配置举例】

# 配置SSL服务器端策略myssl

详细配置请参考“安全配置指导”中的SSL

# 配置证书访问控制策略myacp并建立控制规则。

详细配置请参考“安全配置指导”中的PKI

# 配置HTTPS服务与SSL服务器端策略myssl关联myssl仅为示例)

<Sysname> system-view

[Sysname] ip https ssl-server-policy myssl

# 配置HTTPS服务与证书属性访问控制策略myacp关联,确保只有从CA服务器获取证书的HTTPS客户端可以访问HTTPS服务器。myacp仅为示例)

[Sysname] ip https certificate access-control-policy myacp

# 开启HTTPS服务。

[Sysname] ip https enable

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

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

3.1.6  文件访问安全

【安全威胁】

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口访问设备。

【安全加固策略】

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

【配置举例】

# 关闭密码恢复功能。

<Sysname> system-view

[Sysname] undo password-recovery enable

3.4.2  禁止访问BootWare菜单

【安全威胁】

缺省情况下,在系统启动过程中,用户在指定时间内按组合键<Ctrl+B>可以进入BootWare菜单,以便完成系统软件的加载和对存储介质的管理等操作。

【安全加固策略】

为防止非法用户访问BootWare菜单,可以配置禁止访问BootWare菜单。配置禁止访问BootWare菜单后,在系统启动过程中按组合键<Ctrl+B>不会进入BootWare菜单,而直接进入命令行配置界面。

【配置举例】

# 禁止访问BootWare菜单。

<Sysname> undo bootrom-access enable

3.4.3  关闭USB接口

【安全威胁】

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

【安全加固策略】

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

【注意事项】

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

【配置举例】

# 关闭USB接口。

<Sysname> system-view

[Sysname] usb disable

3.4.4  配置内存告警门限

【安全威胁】

如果设备的空闲内存不够,会导致业务模块的表项无法下发,设备的重要数据无法保存,影响设备的正常运行。

【安全加固策略】

使用内存告警门限功能后,系统会实时监控剩余空闲内存大小,当条件达到一级、二级、三级告警门限或者恢复正常状态门限时,就产生相应的告警/告警解除通知,通知关联的业务模块/进程采取相应的措施,以便最大限度的利用内存,又能保证设备的正常运行。

一级(minor)、二级(severe)和三级(critical)门限,对应的剩余空闲内存越来越少,紧急程度越来越严重。

·              当剩余空闲内存值从大于等于变成小于一级告警门限时,产生一级告警。

·              当剩余空闲内存值从大于等于变成小于二级告警门限时,产生二级告警。

·              当剩余空闲内存值从大于等于变成小于三级告警门限时,产生三级告警。

·              当剩余空闲内存值从小于等于变成大于二级告警门限时,产生三级告警解除通知。

·              当剩余空闲内存值从小于等于变成大于一级告警门限时,产生二级告警解除通知。

·              当剩余空闲内存值小于等于变成大于正常内存大小时,产生一级告警解除通知。

同一级别的告警/告警解除通知是交替进行的:当剩余空闲内存值小于某级告警门限,设备产生相应级别的告警,后续只有该告警解除了,剩余空闲内存值再次小于某级告警门限时,才会再次生成该级别的告警。

当剩余空闲内存大小如3-1中曲线所示时,会生成如3-1所示的告警和解除告警通知。

图3-1 内存告警示意图

【注意事项】

当设备出现内存告警时,可删除暂时不用的配置或关闭部分功能来释放内存。但因为内存不足,部分配置可能删除失败。

【配置举例】

# 配置一级、二级、三级告警门限分别为设备总内存的3000MB2000MB1000MB,当剩余空闲内存为3500MB,恢复到正常状态。(各参数仅为示例)

<Sysname> system-view

[Sysname] memory-threshold minor 3000 severe 2000 critical 1000 normal 3500

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.

4 控制平面安全加固

4.1  生成树保护功能

【安全威胁】

·              BPDU攻击

接入端口一般直接与用户终端(如PC)或文件服务器相连,此时接入端口被设置为边缘端口以实现这些端口的快速迁移;当这些端口接收到BPDU,系统会自动将这些端口设置为非边缘端口,重新计算生成树,从而引起网络拓扑结构的变化。这些端口正常情况下应该不会收到STPBPDU。如果有人伪造BPDU恶意攻击设备,就会引起网络震荡。

·              根桥攻击

由于维护人员的错误配置或网络中的恶意攻击,网络中的合法根桥有可能会收到优先级更高的BPDU,这样当前合法根桥会失去根桥的地位,引起网络拓扑结构的错误变动。这种不合法的变动,会导致原来应该通过高速链路的流量被牵引到低速链路上,导致网络拥塞。

·              TC-BPDU攻击

在有人伪造TC-BPDU恶意攻击设备时,设备短时间内会收到很多的TC-BPDU,频繁的刷新操作给设备带来很大负担,给网络的稳定带来很大隐患。

【安全加固策略】

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

·              BPDU保护

在设备上部署BPDU保护功能,可以防止BPDU攻击。如果边缘端口收到了BPDU,系统就将这些端口关闭,同时通知网管这些端口已被生成树协议关闭。

·              根保护

在设备的指定端口上部署根保护功能,通过维护指定端口的角色来保护根桥的地位,可以防止根桥频繁变动。

·              TC-BPDU攻击保护

在设备上部署TC-BPDU攻击保护功能,可以防止TC-BPDU攻击。当设备在单位时间(固定为十秒)内收到TC-BPDU的次数大于TC-BPDU攻击保护功能所指定的最高次数(假设为N次),那么该设备在这段时间之内将只进行N次刷新转发地址表项的操作,而对于超出N次的那些TC-BPDU,设备会在这段时间过后再统一进行一次地址表项刷新的操作,这样就可以避免频繁地刷新转发地址表项。

【配置举例】

·              配置BPDU保护

# 在系统视图下开启BPDU保护功能。

<Sysname> system-view

[Sysname] stp bpdu-protection

·              配置根保护

# 开启端口的根保护功能

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] stp root-protection

·              配置TC-BPDU攻击保护

# 配置在单位时间(固定为十秒)内,设备收到TC-BPDU后一定时间内,允许收到TC-BPDU后立即刷新转发地址表项的最高次数为1010仅为示例)。

<Sysname> system-view

[Sysname] stp tc-protection threshold 10

4.2  ARP攻击防御

4.2.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.2.2  洪类ARP报文攻击防范

1. ARP防止IP报文攻击

【安全威胁】

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

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

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

【安全加固策略】

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

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

【配置举例】

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

<Sysname> system-view

[Sysname] arp source-suppression enable

[Sysname] arp source-suppression limit 100

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

4.2.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/0/1上开启授权ARP功能。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

5. ARP Detection功能

【安全加固策略】

·              用户合法性检查:对于ARP信任接口,不进行用户合法性检查;对于ARP非信任接口,进行包括基于用户合法性规则检查、基于DHCP Snooping表项的检查来检查ARP报文的发送端IP地址和发送端MAC地址。只要符合三者中的任何一个,就认为该ARP报文合法,进行转发。如果所有检查都没有找到匹配的表项,则认为是非法报文,直接丢弃。

·              报文有效性检查:对于ARP信任接口,不进行报文有效性检查;对于ARP非信任接口,需要根据配置对MAC地址和IP地址不合法的报文进行过滤。可以选择配置源MAC地址、目的MAC地址或IP地址检查模式。

¡  MAC地址的检查模式:会检查ARP报文中的源MAC地址和以太网报文头中的源MAC地址是否一致,一致则认为有效,否则丢弃报文;

¡  目的MAC地址的检查模式(只针对ARP应答报文):会检查ARP应答报文中的目的MAC地址是否为全0或者全1,是否和以太网报文头中的目的MAC地址一致。全0、全1、不一致的报文都是无效的,需要被丢弃;

¡  IP地址检查模式:会检查ARP报文中的源IP或目的IP地址,如全1、或者组播IP地址都是不合法的,需要被丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。

·              ARP报文强制转发:对于从ARP信任接口接收到的ARP报文不受此功能影响,按照正常流程进行转发;对于从ARP非信任接口接收到的并且已经通过用户合法性检查的ARP报文的处理过程如下:

¡  对于ARP请求报文,通过信任接口进行转发;

¡   对于ARP应答报文,首先按照报文中的以太网目的MAC地址进行转发,若在MAC地址表中没有查到目的MAC地址对应的表项,则将此ARP应答报文通过信任接口进行转发。

【配置举例】

·              # 配置用户合法性规则,规则编号为0,规则内容为转发源地址为10.1.1.1,掩码为255.255.0.0,源MAC地址为0001-0203-0405,掩码为ffff-ffff-0000ARP报文。(各参数仅为示例)

<Sysname> system-view

[Sysname] arp detection rule 0 permit ip 10.1.1.1 255.255.0.0 mac 0001-0203-0405 ffff-ffff-0000

# VLAN10内开启ARP Detection功能。

[Sysname] vlan 10

[Sysname-vlan10] arp detection enable

[Sysname-vlan10] quit

# 配置二层以太网接口GigabitEthernet1/0/1ARP信任接口。

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] arp detection trust

·              # 开启对ARP报文的MAC地址和IP地址的有效性检查。

<Sysname> system-view

[Sysname] arp detection validate dst-mac ip src-mac

# VLAN10内开启ARP Detection功能。

[Sysname] vlan 10

[Sysname-vlan10] arp detection enable

[Sysname-vlan10] quit

# 配置二层以太网接口GigabitEthernet1/0/1ARP信任接口。

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] arp detection trust

·              # 开启VLAN 2ARP报文强制转发功能。

<Sysname> system-view

[Sysname] vlan 2

[Sysname-vlan2] arp restricted-forwarding enable

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

【安全加固策略】

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

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

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

【注意事项】

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

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

【配置举例】

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

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] arp scan

[Sysname-GigabitEthernet1/0/1] quit

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

[Sysname] arp fixup

7. ARP网关保护功能

【安全威胁】

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

【安全加固策略】

在设备上不与网关相连的接口上开启ARP网关保护功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同。如果相同,则认为此报文非法,将其丢弃;否则,认为此报文合法,继续进行后续处理。

【注意事项】

不能在同一个接口上配置ARP网关保护功能和ARP过滤保护功能。

【配置举例】

# GigabitEthernet1/0/1下开启ARP网关保护功能,受保护的网关IP地址为1.1.1.1(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] arp filter source 1.1.1.1

8. ARP过滤保护功能

【安全威胁】

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

·              攻击者发送伪造的合法客户端的IP地址和MAC地址的对应关系给网关或其他客户端,导致网关或其他客户端无法与合法客户端正常通信。

【安全加固策略】

在接口上开启ARP过滤保护功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址和源MAC地址是否和允许通过的IP地址和MAC地址相同:

·              如果相同,则认为此报文合法,继续进行后续处理;

·              如果不相同,则认为此报文非法,将其丢弃。

【注意事项】

不能在同一个接口上配置ARP网关保护功能和ARP过滤保护功能。

【配置举例】

# GigabitEthernet1/0/1下开启ARP过滤保护功能,允许源IP地址为1.1.1.1、源MAC地址为0e10-0213-1023ARP报文通过。(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] arp filter binding 1.1.1.1 0e10-0213-1023

4.3  ND攻击防御

【安全威胁】

如果网络中存在攻击源向设备发送大量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.4  接入业务安全

4.4.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 virtual-template 1

[Sysname-Virtual-Template1] ppp authentication-mode pap domain system

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

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

[Sysname-Virtual-Template1] ppp pap local-user userb password simple passb&289

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

[Sysname-Virtual-Template1] ppp authentication-mode chap domain system

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

[Sysname-Virtual-Template1] ppp chap user usera

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

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

[Sysname-Virtual-Template1] ppp chap user userb

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

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

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

[Sysname-Virtual-Template1] ppp authentication-mode chap domain system

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

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

[Sysname Virtual-Template1] ppp chap user userb

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

[Sysname-Virtual-Template1] ppp chap password simple hello&358

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

MSCHAP方式)

[Sysname-Virtual-Template1] ppp authentication-mode ms-chap domain system

MSCHAPv2方式)

[Sysname-Virtual-Template1] ppp authentication-mode ms-chap-v2 domain system

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

[Sysname-Virtual-Template1] ppp chap user usera

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

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

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

¡  配置认证方

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

<Sysname> system-view

[Sysname] interface virtual-template 1

MSCHAP方式)

[Sysname-Virtual-Template1] ppp authentication-mode ms-chap domain system

MSCHAPv2方式)

[Sysname-Virtual-Template1] ppp authentication-mode ms-chap-v2 domain system

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

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

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

【安全威胁】

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

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

【安全加固策略】

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

·              PPP用户IP网段检查功能

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

【配置举例】

·              PPP用户IP网段检查功能

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

<Sysname> system-view

[Sysname] interface virtual-template 1

[Sysname-Virtual-Template1] ppp ipcp remote-address match

4.4.2  L2TP

1. L2TP用户认证

【安全加固策略】

通过与AAA的配合,L2TP提供了对用户进行安全认证的手段,具体包括以下几种方式。

·              LAC端的AAA认证

用户身份认证通过后,LAC才能发起建立隧道的请求,否则不会为用户建立隧道。

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

·              LNS端的AAA认证

用户身份认证通过后,远端系统才可以通过LNS访问企业内部网络。

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

LAC端对用户进行验证后,为了增强安全性,可在LNS端再次对用户进行验证。在这种情况下,将对用户进行两次验证,第一次发生在LAC端,第二次发生在LNS端,只有两次验证全部成功后,L2TP隧道才能建立。

目前,LNS端对用户的验证方式按优先级从高到底依次为强制LCP重协商、强制CHAP验证和代理验证三种。

¡  强制LCP重协商:在L2TP客户端对用户进行验证后,再由L2TP服务器端采用强制LCP重协商方式对用户进行二次LCP协商及认证,增强安全性。

¡  强制CHAP验证:在L2TP客户端对用户进行验证后,再由L2TP服务器端采用CHAP方式对用户进行二次认证,增强安全性。

¡  代理验证:由LAC代替LNS对用户进行验证,并将用户的所有验证信息及LAC端本身配置的验证方式发送给LNSLNS根据接收到的信息及本端配置的验证方式,判断用户是否合法。

【注意事项】

LNS端的AAA认证:

·              强制LCP重协商和强制CHAP验证两种验证方式仅适用于NAS-Initiated模式的L2TP组网。

·              如果同时配置了强制LCP重协商和强制CHAP验证两种验证方式,则仅强制LCP重协商生效。

·              如果未配置强制LCP重协商和强制CHAP验证,则对用户进行代理验证。

·              强制CHAP验证

¡  配置强制CHAP验证时,在LNSVT接口下必须且只能配置PPP用户的验证方式为CHAP认证。

¡  对于不支持进行第二次验证的用户,不建议配置本功能,否则将因LNS端的CHAP重新验证失败而导致L2TP隧道无法建立。

·              强制LCP重新协商

启用强制LCP重协商后,如果相应的虚拟模板接口上没有配置验证,则LNS将不对用户进行二次验证(这时用户只在LAC端接受一次验证)。

【配置举例】

·              配置LAC端的AAA认证

AAA相关的配置请参见“安全配置指导”中的“AAA”。

配置LAC端的AAA认证时,接入用户的接口上需要配置PPP用户的验证方式为PAPCHAP,配置方法请参见“二层技术-广域网接入配置指导”中的“PPP”。

·              配置LNS端的AAA认证

AAA相关的配置请参见“安全配置指导”中的“AAA”。

¡  配置强制LCP重新协商

# 强制LNS与用户进行LCP协商。

<Sysname> system-view

[Sysname] l2tp-group 1 mode lns

[Sysname-l2tp1] mandatory-lcp

¡  配置强制CHAP验证

# 强制LNS对用户进行CHAP验证。

<Sysname> system-view

[Sysname] l2tp-group 1 mode lns

[Sysname-l2tp1] mandatory-chap

# 进入VT接口并在该接口下配置PPP用户的验证方式为CHAP认证。

关于VT接口配置的详细介绍,请参见“二层技术-广域网接入配置指导”中的“PPP”。

2. L2TP隧道及数据安全

【安全威胁】

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

·              非法对端和本端建立L2TP隧道,窃取本端内部数据。

·              非法用户窃取采用明文方式传输AVP数据(例如隧道协商参数、会话协商参数和用户认证信息)。

【安全加固策略】

针对以上安全威胁,可以在设备上配置如下安全功能:

·              L2TP隧道验证

利用隧道验证判断对端的合法性。配置L2TP隧道验证后,仅在两端隧道验证通过后,二者之间才能成功建立L2TP隧道,增强网络的安全性。

·              AVP数据的隐藏传输

利用隧道验证密码对AVP数据进行加密传输。配置AVP数据的隐藏传输功能后,L2TP利用隧道验证密码对AVP数据(例如隧道协商参数、会话协商参数和用户认证信息)进行加密传输,增强数据传输的安全性。

【注意事项】

·              配置隧道验证

隧道建立成功后,修改隧道验证的密钥不影响当前隧道的正常通信;当隧道断开后重新建立时使用修改后的密钥进行隧道验证。

·              配置AVP数据的隐藏传输

只有使能了隧道验证功能,AVP数据的隐藏传输配置后才会生效。

【配置举例】

·              配置隧道验证

# 开启L2TP隧道验证功能。

<Sysname> system-view

[Sysname] l2tp-group 1 mode lns

[Sysname-l2tp1] tunnel authentication

# 以明文方式配置隧道验证密钥为&569pass1&569pass1仅为示例)

[Sysname-l2tp1] tunnel password simple &569pass1

·              配置AVP数据的隐藏传输

# 开启L2TP隧道验证功能。

<Sysname> system-view

[Sysname] l2tp-group 1 mode lac

[Sysname-l2tp1] tunnel authentication

# 以明文方式配置隧道验证密钥为&569pass1&569pass1仅为示例)。

[Sysname-l2tp1] tunnel password simple &569pass1

# 配置AVP数据采用隐藏方式传输。

[Sysname-l2tp1] tunnel avp-hidden

3. LAC/LNS设备性能安全

【安全威胁】

L2TP网络中,LNS设备可能会面临以下性能安全威胁:

·              用户上线时LNS端需要为其创建VA接口,用于和LAC交换数据;在用户下线后需要删除VA接口。创建/删除VA接口需要消耗一定的系统资源,如果遭受攻击(例如大量用户频繁上下线),易出现处理能力不足,产生拒绝服务,成为攻击者的目标。

·              大量L2TP用户的突发上线请求对设备性能造成影响。

·              乱序报文过多对设备性能造成影响。

·              本端收到的报文超出本端处理报文的能力范围,导致部分用户上线失败。

【安全加固策略】

针对以上安全威胁,可以在设备上配置如下安全功能,减少对设备性能的影响,确保L2TP用户能够平稳上下线:

·              配置VA

利用VA池减少临时创建/删除VA接口对设备性能的影响。VA池是在建立L2TP连接前事先创建的VA接口的集合。创建VA池后,当有用户上线时,直接从VA池中获取一个VA接口,当用户下线后,直接把VA接口放入VA池中,无需删除VA接口,这样不仅可以提高L2TP连接的建立和拆除速度,还可以一定程度上缓解大量用户突发或频繁上下线对设备性能造成的冲击。

·              配置LNS端每秒能处理ICRQ报文的最大数目

通过配置LNS端每秒能处理ICRQ报文的最大数目来限制设备接收处理ICRQ报文的速率。配置LNS端每秒能处理ICRQ报文的最大数目后,当LNS端每秒收到的ICRQ报文数大于配置值时,丢弃超出的部分,从而避免大量L2TP用户的突发上线请求对设备性能造成影响,同时又确保L2TP用户能够平稳上线。

·              配置L2TP隧道接收窗口的大小

利用隧道接收窗口优化提高对乱序报文的处理效率。如果乱序报文过多,可以通过调整L2TP接收窗口的大小进行缓解。当出现乱序报文的时候,如果乱序报文NSL2TP报文中用于标识当前报文序列号的字段)在接收窗范围内,设备会先将报文缓存起来,等待NS等于接收窗下沿的报文到达。当收到NS等于接收窗下沿的报文时,则对其(NS等于接收窗下沿的报文)进行处理,处理完该报文后,接收窗下沿加1;如果此时缓存中存在NS等于接收窗下沿的报文,则继续处理;如不存在,则继续等待NS等于接收窗下沿的报文到达;依次类推。对于超过接收窗范围的报文进行丢弃。

·              配置L2TP隧道发送窗口的大小

利用隧道发送窗口平衡隧道两端的报文收发处理能力,优化提高报文处理效率。

在某些组网中可能出现对端的报文接收处理能力和对端接收窗口的大小不匹配的情况(例如:对端实际的报文接收处理能力为10,但接收窗口的大小为20),此时可以通过本特性调整本端L2TP隧道发送窗口的大小来适配对端的实际报文接收处理能力,以保证L2TP用户平稳上线。

【注意事项】

·              配置VA

每个虚拟模板接口只能关联一个VA池。如果想要修改使用的VA池的大小,只能先删除原来的配置,然后重新配置VA池。

创建/删除VA池需要花费一定的时间,请用户耐心等待。在VA池创建/删除过程中(还没创建/删除完成)允许用户上线/下线,但正在创建/删除的VA池不生效。

系统可能由于资源不足不能创建用户指定容量的VA池,用户可以通过display l2tp va-pool命令查看实际可用的VA池的容量以及VA池的状态。

VA池会占用较多的系统内存,请用户根据实际情况创建大小合适的VA池。

删除VA池时,如果已有在线用户使用该VA池中的VA接口,不会导致这些用户下线。

·              配置L2TP隧道接收窗口的大小

L2TP隧道建立时,接收窗口大小以L2TP组视图下配置的接收窗口大小为准。隧道建立完成后通过本特性修改L2TP隧道接收窗口的大小对已经建立的隧道接收窗口的大小无影响。

·              配置L2TP隧道发送窗口的大小

L2TP隧道建立时会获取L2TP组视图下配置的发送窗口大小。如果配置的发送窗口大小为0,则按缺省情况处理;如果配置的发送窗口大小非0,则以配置的发送窗口大小为准。隧道建立完成后通过本配置修改L2TP隧道发送窗口的大小对已经建立的隧道发送窗口的大小无影响。

【配置举例】

·              配置VA

# 为虚拟模板2创建容量为1000VA池(1000仅为示例)。

<Sysname> system-view

[Sysname] l2tp virtual-template 2 va-pool 1000

·              配置LNS端每秒能处理ICRQ报文的最大数目

# 配置LNS端每秒最多能处理200ICRQ报文(200仅为示例)。

<Sysname> system-view

[Sysname] l2tp icrq-limit 200

·              配置L2TP隧道接收窗口的大小

# 配置隧道的接收窗口大小为128128仅为示例)。

<Sysname> system-view

[Sysname] l2tp-group 1 mode lac

[Sysname-l2tp1] tunnel window receive 128

·              配置L2TP隧道发送窗口的大小

# 配置隧道的发送窗口大小为128128仅为示例)。

<Sysname> system-view

[Sysname] l2tp-group 1 mode lac

[Sysname-l2tp1] tunnel window send 128

4.4.3  Portal

1. 控制Portal用户的接入

【安全威胁】

Portal组网环境中,设备将会面临以下安全威胁:

·              攻击者发起大量HTTP/HTTPS请求,造成Portal服务器资源耗尽,无法响应正常认证请求。

·              非法用户使用穷举法试探合法用户的密码。

·              非法用户接入网络。

【安全加固策略】

针对以上安全威胁,可以在设备上配置如下安全功能:

·              Portal HTTP/HTTPS防攻击功能

¡  限制单用户Portal重定向的最大会话数

限制设备上单个Portal用户的HTTPHTTPS重定向的最大会话数后,如果单个Portal用户的HTTP重定向的最大会话数或HTTPS重定向会话数超出设置值,设备将拒绝新的重定向请求。

¡  Portal安全重定向功能

根据HTTPHTTPS报文的请求方法、产生HTTPHTTPS报文的浏览器类型和访问网络的目的URL这些特征,有针对性的将一些HTTPHTTPS请求报文丢弃,不再重定向到Portal Web服务器,从而有效的减轻了Portal Web服务器的负担。

·              Portal认证失败后的用户阻塞功能

如果在指定时间内用户进行Portal认证失败的次数达到指定值,该用户将被阻塞一段时间,即在此时间段内来自该用户的认证请求报文将被丢弃。

·              Portal仅允许DHCP用户上线

通常,攻击者的IP地址为静态配置的,因此通过禁止IP地址为静态配置的Portal认证用户上线可以一定程度上避免被攻击的风险。

【注意事项】

Portal仅允许DHCP用户上线功能,仅在采用接入设备作为DHCP服务器的组网中生效,且不会影响已经在线的用户。

IPv6网络中,开启Portal仅允许DHCP用户上线功能后,终端仍会使用临时IPv6地址进行Portal认证,从而导致认证失败,所以终端必须关闭临时IPv6地址。

Portal认证前域中的用户在指定时间内认证失败达到限定次数后不会被阻塞。

对于无线应用,单用户Portal重定向的最大会话数功能仅在集中转发模式生效。

【配置举例】

·              Portal HTTP/HTTPS防攻击功能

¡  单用户Portal重定向的最大会话数

# 配置单用户Portal重定向的最大会话数为128

<Sysname> system-view

[Sysname] portal redirect max-session per-user 128

¡  Portal安全重定向功能

# 开启Portal安全重定向功能。

<Sysname> system-view

[Sysname] portal safe-redirect enable

# 配置Portal安全重定向允许的HTTP协议的请求方法为GET

[Sysname] portal safe-redirect method get

# 配置匹配Portal安全重定向允许的HTTP User Agent中的浏览器类型为ChromeSafari

[Sysname] portal safe-redirect user-agent Chrome

[Sysname] portal safe-redirect user-agent Safari

# 配置Portal安全重定向禁止的URL地址为http://www.abc.com

[Sysname] portal safe-redirect forbidden-url http://www.abc.com

# 配置Portal安全重定向禁止URL携带扩展名为.jpg的文件。

[Sysname] portal safe-redirect forbidden-file .jpg

# 配置Portal安全重定向URL地址匹配的缺省动作为放行报文。

[Sysname] portal safe-redirect default-action permit

# 配置Portal安全重定向允许的URL地址为http://www.abc.com

[Sysname] portal safe-redirect permit-url http://www.abc.com

·              Portal认证失败后的用户阻塞功能

# 配置在100分钟内用户进行Portal认证失败次数达到2次时被阻塞。

<Sysname> system-view

[Sysname] portal user-block failed-times 2 period 100

# 配置被阻塞用户重新进行Portal认证的时间间隔为20分钟。

[Sysname] portal user-block reactive 20

·              Portal仅允许DHCP用户上线

# 在接口GigabitEthernet1/0/1上配置仅允许通过DHCP获取IP地址的客户端上线功能。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] portal user-dhcp-only

2. 限制Portal最大用户数

【安全加固策略】

在线Portal用户数过多,会导致系统资源不足。为解决这个问题,可以限制在线Portal用户数,当在线Portal用户数超过设定的最大值时,系统会拒绝新的Portal用户接入

【注意事项】

建议将全局最大Portal用户数配置为所有开启Portal的接口上的最大IPv4 Portal用户数和最大IPv6 Portal用户数之和,但不超过整机最大Portal用户数,否则会有部分Portal用户因为整机最大用户数已达到而无法上线。

【配置举例】

·              配置全局Portal最大用户数

# 配置全局Portal最大用户数为100

<Sysname> system-view

[Sysname] portal max-user 100

·              配置接口上的Portal最大用户数

¡  IPv4网络)

# 在接口GigabitEthernet1/0/1上配置IPv4 Portal最大用户数为100

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] portal ipv4-max-user 100

¡  IPv6网络)

# 在接口GigabitEthernet1/0/1上配置IPv6 Portal最大用户数为100

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] portal ipv6-max-user 100

3. Portal授权信息严格检查

【安全加固策略】

严格检查模式用于配合服务器上的用户授权控制策略,它仅允许接口上成功下发了授权信息的用户在线。开启Portal授权信息的严格检查模式后,当认证服务器下发的授权ACLUser Profile在设备上不存在或者设备下发ACLUser Profile失败时,设备将强制Portal用户下线。若同时开启了对授权ACL和对授权User Profile的严格检查模式,则只要其中任意一个授权属性未通过严格授权检查,则用户就会下线。

【配置举例】

# 在接口GigabitEthernet1/0/1上开启对授权ACL的严格检查模式。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname–GigabitEthernet1/0/1] portal authorization acl strict-checking

4.4.4  SSL VPN

SSL VPNSSLSecure Sockets Layer,安全套接字层)为基础提供远程的安全连接服务:

·              用户可通过互联网,使用内嵌SSL协议的浏览器或客户端与远端的资源服务器建立安全的连接,访问内部资源。

·              企业或机构可通过SSL VPN来为移动用户或者外部客户提供访问内部资源的服务并保证安全性。

设备作为SSL VPN网关位于远端接入用户和企业内部网络之间,负责在二者之间转发报文,并为对端提供SSL VPN服务,具体过程如下:

(1)      管理员在SSL VPN网关上创建与企业网内服务器对应的资源。

(2)      远程接入用户与SSL VPN网关建立HTTPS连接,通过SSL提供的基于证书的身份验证功能,SSL VPN网关和远程接入用户可以验证彼此的身份。

(3)      远程接入用户输入用户名、密码等身份信息,SSL VPN网关对用户的身份进行认证,并对用户可以访问的资源进行授权。

(4)      用户获取到可以访问的资源,通过SSL连接将访问请求发送给SSL VPN网关。

(5)      SSL VPN网关将资源访问请求转发给企业网内的服务器。

(6)      SSL VPN网关接收到服务器的应答后,通过SSL连接将其转发给用户。

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

4.5  DHCP安全

4.5.1  DHCP用户类白名单功能

【安全威胁】

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

【安全加固策略】

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

【注意事项】

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

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

【配置举例】

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

<Sysname> syatem-view

[Sysname] dhcp server ip-pool 0

[Sysname-dhcp-pool-0] verify class

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

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

4.5.2  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/0/1

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

4.5.3  DHCP中继支持代理功能

【安全威胁】

非法用户向DHCP服务器发送攻击报文后,影响DHCP服务器正常工作。

【安全加固策略】

开启DHCP中继支持代理功能后,DHCP中继收到DHCP服务器的应答报文,会把报文中的DHCP服务器地址修改为中继的接口地址,并转发给DHCP客户端。当DHCP客户端通过DHCP中继从DHCP服务器获取到IP地址等网络参数后,DHCP客户端会把DHCP中继当作自己的服务器,来进行后续的DHCP功能的报文交互。从而达到了把真正的DHCP服务器和DHCP客户端隔离开,保护DHCP服务器的目的。

【配置举例】

# 配置接口GigabitEthernet1/0/1工作在DHCP代理模式。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] dhcp select relay proxy

4.6  DNS安全

【安全威胁】

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

【安全加固策略】

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

【配置举例】

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

<Sysname> system-view

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

4.7  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.8  TCP安全

【安全威胁】

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.9  路由协议安全

4.9.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/0/1上配置RFC 2453格式的MD5明文验证,密钥为154&rose154&rose仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

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

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

<Sysname> system-view

[Sysname] ripng 100

[Sysname-ripng-100] checkzero

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

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

4.9.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/0/1采用MD5明文验证模式,验证字标识符为15,验证密钥为Ab&123456。(各参数仅为示例

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] ospf authentication-mode md5 15 plain Ab&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/0/1GTSM功能,并指定最大跳数为254254仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

4.9.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/0/1配置邻居关系采用简单明文验证模式,验证密钥为Ab&123456Ab&123456仅为示例)。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

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

<Sysname> system-view

[Sysname] isis 1

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

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

<Sysname> system-view

[Sysname] isis 1

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

4.9.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认证,密钥为明文字符串358$aabbcc。(各参数仅为示例)

<Sysname> system-view

[Sysname] bgp 100

[Sysname-bgp-default] peer 10.1.100.2 password simple 358$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通过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.10  组播安全

4.10.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/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/0/1

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

# 在接口GigabitEthernet1/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/0/1

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

4.11  ADVPNVAM协议报文)安全

4.11.1  预共享密钥

【安全加固策略】

VAMVPN Address ManagementVPN地址管理)协议负责收集、维护和分发动态变化的公网地址等信息,采用Client/Server模型。ADVPN网络中的节点(称为ADVPN节点)作为VAM Client。当公网地址变化时,VAM Client将当前公网地址注册到VAM ServerADVPN节点通过VAM协议从VAM Server获取另一端ADVPN节点的当前公网地址,从而实现在两个节点之间动态建立跨越IP核心网络的ADVPN隧道。

预共享密钥是VAM Server用来和VAM Client建立安全通道的公共密钥材料。在连接初始化阶段,预共享密钥可以用来生成保护连接请求、连接响应报文的初始密钥;连接建立完成后,预共享密钥还可以用来生成保护后续报文的连接密钥。

【注意事项】

同一个ADVPN域内的VAM ServerVAM Client上配置的预共享密钥必须一致。

【配置举例】

# 以明文方式配置ADVPN1VAM Server的预共享密钥为SdU$123SdU$123仅为示例)。

<Sysname> system-view

[Sysname] vam server advpn-domain 1 id 1

[Sysname-vam-server-domain-1] pre-shared-key simple SdU$123

# 以明文方式配置VAM Client的预共享密钥为SdU$123SdU$123仅为示例)。

<Sysname> system-view

[Sysname] vam client name abc

[Sysname-vam-client-abc] pre-shared-key simple SdU$123

4.11.2  验证/加密算法

【安全加固策略】

VAM Server根据配置的报文完整性验证、加密算法以及优先级与VAM Client发送的算法列表进行协商,协商后的算法分别作为两端协议报文的完整性验证算法和加密算法。

VAM ServerVAM Client固定使用SHA-1验证算法和AES-CBC-128加密算法对连接初始化请求和响应报文进行完整性验证和加密保护;使用协商出来的验证算法和加密算法对其他VAM协议报文进行完整性验证和加密保护。

【注意事项】

验证/加密算法在配置中的出现顺序决定其使用优先级。配置中越靠前的验证/加密算法,其优先级越高。

修改验证/加密算法对已经注册的VAM Client没有影响,新注册的VAM Client将采用修改后的算法进行协商。

【配置举例】

# 设置在ADVPN1中使用的验证算法优先级从高到低依次为MD5SHA-1SHA-256

<Sysname> system-view

[Sysname] vam server advpn-domain 1 id 1

[Sysname-vam-server-domain-1] authentication-algorithm md5 sha-1 sha-256

# 设置在ADVPN1中使用的加密算法优先级从高到低依次为AES-CBC-1283DES-CBC

<Sysname> system-view

[Sysname] vam server advpn-domain 1 id 1

[Sysname-vam-server-domain-1] encryption-algorithm aes-cbc-128 3des-cbc

4.11.3  身份认证

【安全加固策略】

为了确保VAM server上记录的VAM client信息的准确性,避免非法用户错误地注册或修改VAM client信息,VAM server支持采用AAAVAM client进行身份认证。VAM client上配置认证用户名和密码;在注册阶段,VAM client将该用户名和密码发送给VAM serverVAM server验证用户名和密码是否正确,只有通过身份认证的VAM Client才可以接入到ADVPN域。

采用AAA认证VAM client身份时,可选择PAPCHAP认证方式。VAM ServerAAA的具体配置请参见“安全配置指导”中的“AAA”。

【注意事项】

如果配置时指定的认证ISP域不存在,则VAM ServerVAM Client的身份认证会失败。

修改认证方式对已经注册的VAM Client没有影响,新注册的VAM Client将按照修改后的认证方式进行身份认证。

【配置举例】

# 配置ADVPN1VAM Client采用CHAP方式进行身份认证,认证使用的ISP域为用户配置的系统默认域。

<Sysname> system-view

[Sysname] vam server advpn-domain 1 id 1

[Sysname-vam-server-domain-1] authentication-method chap

# 设置VAM Client abc的认证用户名为user,以明文方式设置用户密码为&192Qtestuser&192Qtest仅为示例)。

<Sysname> system-view

[Sysname] vam client name abc

[Sysname-vam-client-abc] user user password simple &192Qtest

4.12  高可靠性协议报文认证

4.12.1  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/0/1上备份组1发送和接收IPv4 VRRP报文的认证方式为simple,认证字为Sysname。(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

4.12.2  BFD控制报文认证

【安全威胁】

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

【安全加固策略】

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

【配置举例】

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

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] bfd authentication-mode simple 1 plain &Pk123456

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

<Sysname> system-view

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

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/0/1

[DeviceB-GigabitEthernet1/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/0/1

[DeviceB-GigabitEthernet1/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验证功能的工作过程为:

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

(3)      接收者接收到该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  风暴抑制和流量阈值控制

【安全威胁】

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

【安全加固策略】

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

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

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

【注意事项】

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

【配置举例】

# 在以太网接口GigabitEthernet1/0/1上开启广播、组播和未知单播风暴抑制功能,每秒最多允许10000kbps广播、组播和未知单播报文通过,对超出该范围的报文进行抑制。(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] broadcast-suppression kbps 10000

[Sysname-GigabitEthernet1/0/1] multicast-suppression kbps 10000

[Sysname-GigabitEthernet1/0/1] unicast-suppression kbps 10000

# 在以太网接口GigabitEthernet1/0/1上开启广播、组播和未知单播流量阈值控制功能,上限阈值为2000kbps、下限阈值为1500kbps。当接口上任一流量超过上限阈值时阻塞该接口。在接口流量从小于等于上限阈值到大于上限阈值或者从超上限回落到小于下限阈值时输出Log信息。(各参数仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] storm-constrain broadcast kbps 2000 1500

[Sysname-GigabitEthernet1/0/1] storm-constrain multicast kbps 2000 1500

[Sysname-GigabitEthernet1/0/1] storm-constrain unicast kbps 2000 1500

[Sysname-GigabitEthernet1/0/1] storm-constrain control block

[Sysname-GigabitEthernet1/0/1] storm-constrain enable log

5.2  MAC地址安全管理

5.2.1  黑洞MAC地址

【安全加固策略】

当出于网络安全的考虑需要禁止某个用户发送和接收报文时,可以将对应的MAC地址设置为黑洞MAC地址表项,当设备收到的报文源MAC地址或目的MAC地址与黑洞MAC地址表项匹配时,该报文被丢弃。

【配置举例】

# 000f-e201-0101配置为黑洞MAC地址表项(000f-e201-0101仅为示例)。

<Sysname> system-view

[Sysname] mac-address blackhole 000f-e201-0101 vlan 2

5.2.2  关闭MAC地址学习

【安全加固策略】

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

【配置举例】

# 关闭全局MAC地址学习功能。

<Sysname> system-view

[Sysname] undo mac-address mac-learning enable

# 关闭VLAN 10MAC地址学习功能。

<Sysname> system-view

[Sysname] vlan 10

[Sysname-vlan10] undo mac-address mac-learning enable

# 关闭端口GigabitEthernet1/0/1MAC地址学习功能。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] undo mac-address mac-learning enable

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

<Sysname> system-view

[Sysname] vsi vpn1

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

5.2.3  控制MAC地址学习

【安全加固策略】

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

【配置举例】

# 配置端口GigabitEthernet1/0/1MAC地址数学习上限为600,当端口学习的MAC地址数达到600时,禁止转发源MAC地址不在MAC地址表里的报文。(600仅为示例)

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] mac-address max-mac-count 600

[Sysname-GigabitEthernet1/0/1] undo mac-address max-mac-count enable-forwarding

5.2.4  配置接口的MAC地址学习优先级

【安全威胁】

基于MAC地址转发报文的网络中,有时会因为下行接口的攻击行为或者环路,使得下行接口学习到网关等上层设备的MAC地址。例如,非法用户伪装成上层设备的MAC地址从下行接口入侵,干扰上层设备与其他设备的正常通信

【安全加固策略】

为了避免这种情况,将接口的MAC地址学习功能分为两个优先级:高优先级和低优先级。对于高优先级的接口,可以学习任何MAC地址;对于低优先级的接口,在学习MAC地址时需要查看高优先级接口是否已经学到该MAC地址,如果已经学到,则不允许学习该MAC地址。比如,可以将上行接口的MAC地址学习优先级配置为高优先级,下行接口的MAC地址学习优先级配置为低优先级,那么,下行接口就不会学到网关等上层设备的MAC地址,避免了攻击。

【配置举例】

# 配置端口GigabitEthernet1/0/1MAC地址学习优先级为高优先级。

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

[Sysname-GigabitEthernet1/0/1] mac-address mac-learning priority high

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.3.2  GRE报文校验

【安全威胁】

如果设备收到被篡改的GRE数据报文或非法客户端伪造的GRE报文,会遭受到不可预知的攻击。

【安全加固策略】

GRE支持GRE Key验证、校验和验证两种安全机制。

·              GRE Key验证

通过GRE Key验证可以检查报文的合法性。

发送方在发送的报文中携带本地配置的GRE Key。接收方收到报文后,将报文中的GRE Key与接收方本地配置的GRE Key进行比较,如果一致则对报文进行进一步处理,否则丢弃该报文。

·              GRE校验和验证

通过GRE校验和验证可以检查报文的完整性。

发送方根据GRE头及Payload信息计算校验和,并将包含校验和信息的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进行进一步处理,否则丢弃该报文。

【配置举例】

·              # 在隧道模式为GRETunnel接口上开启GRE报文校验和功能。

<Sysname> system-view

[Sysname] interface tunnel 2 mode gre

[Sysname-Tunnel2] gre checksum

·              # 设置GRE类型Tunnel接口的GRE Key@bd123@bd123仅为示例)

<Sysname> system-view

[Sysname] interface tunnel 2 mode gre

[Sysname-Tunnel2] gre key @bd123

5.3.3  使用IPsec保护ADVPN报文

【安全威胁】

ADVPNAuto Discovery Virtual Private Network,自动发现虚拟专用网络)是一种基于VAMVPN Address ManagementVPN地址管理)协议的动态VPN技术。

在企业网各分支机构使用动态地址接入公网的情况下,可以利用ADVPN在各分支机构间建立动态VPN

缺省情况下,ADVPN建立的动态VPN对内部传输的报文没有任何的保护,很容易被攻击者窃听和篡改。

【安全加固策略】

设备支持使用IPsec来保护ADVPN数据报文和控制报文的传递

【配置举例】

# 配置IPsec安全框架,指定安全协议、认证算法和加密算法、封装模式等安全参数。

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

# 配置使用IPsec安全框架prf1来保护接口Tunnel1ADVPN报文prf1仅为示例)

<Sysname> system-view

[Sysname] interface tunnel 1 mode advpn gre

[Sysname-Tunnel1] tunnel protection ipsec profile prf1

5.4  报文&流量过滤

5.4.1  安全策略

传统的包过滤防火墙仅可以基于五元组对报文进行控制,但无法对具有攻击特征的报文进行深度识别,一旦设备遭到黑客攻击、病毒入侵,则可能导致设备瘫痪,无法正常转发数据。

安全策略是一种基于安全域的高级包过滤技术。安全策略不仅包含包过滤防火墙对匹配流量进行放行或丢弃的功能,还融合了应用识别以及报文深度检测功能。通过在不同的源安全域与目的安全域Local之间应用安全策略规则,并引用DPI业务(入侵防御系统、URL过滤、数据过滤、文件过滤、防病毒),可有效防范病毒、黑客对设备的攻击行为,全方位保护设备。

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

5.4.2  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地址、目的MAC地址、802.1p优先级、链路层协议类型等二层信息

用户自定义ACL

50005999

IPv4IPv6

以报文头为基准,指定从报文的第几个字节开始与掩码进行“与”操作,并将提取出的字符串与用户定义的字符串进行比较,从而找出相匹配的报文

 

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

5.4.3  ASPF

包过滤防火墙可以对匹配的数据流进行转发限制,仅放行信任的报文。但为了保证设备发起的请求能够正常收到应答报文,包过滤防火墙必须双向放行。这种情况下则无法限制不受信任的网络对设备发起威胁攻击或非法请求。

为了解决包过滤防火墙存在的问题,提出了状态防火墙——ASPFAdvanced Stateful Packet Filter,高级状态包过滤)的概念。ASPF和包过滤防火墙协同工作,包过滤防火墙负责按照ACL规则进行报文过滤(阻断或放行),ASPF负责对已放行报文进行信息记录,使已放行的报文的回应报文可以正常通过配置了包过滤防火墙的接口。这样既可保证设备发起的请求能够正常收到应答报文,又能阻断不信任网络主动对设备发起的攻击。

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

5.4.4  流量过滤

【安全威胁】

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

【安全加固策略】

流量过滤功能通过QoS策略实现。将配置了流量过滤动作的QoS策略应用在指定位置(接口、全局或VLAN等),对符合流分类的流执行过滤动作(允许或禁止通过)。例如,可以根据网络的实际情况禁止从某个源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/0/1的入方向上。

[Device] interface gigabitethernet 1/0/1

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

5.4.5  IP-MAC绑定

IP-MAC绑定功能用来防御主机仿冒攻击,可有效过滤攻击者通过仿冒合法用户主机的IP地址或者MAC地址向设备发送的伪造报文。

IP-MAC绑定功能通过在设备上建立IP地址与MAC地址绑定表项实现对报文的过滤控制。配置了IP-MAC绑定功能的设备接收到用户报文后,会提取报文头中的源IP地址和源MAC地址,并与IP-MAC绑定表项进行匹配,对不同的匹配结果采用不同的报文处理方式。具体说明如5-2所示。

表5-2 不同匹配结果报文的处理方式

匹配结果

对报文的处理

IP+MAC地址完全匹配

放行报文

IP地址匹配,MAC地址不匹配

丢弃报文

IP地址不匹配,MAC地址匹配

丢弃报文

IP地址和MAC地址都无匹配项

缺省情况下放行报文,可以通过ip-mac binding no-match action deny命令将未匹配到IP-MAC绑定表项的报文的动作设置为丢弃

 

关于IP-MAC绑定的详细信息,请参见“安全配置指导”中的“IP-MAC绑定”。

5.4.6  uRPF

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

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

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

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

5.5  连接数限制

网络连接通常由报文五元组(源IP地址、源端口号、目的IP地址、目的端口号和协议类型)表示,用于标识一条端到端的数据流。在以下场景中,有必要对流经设备的特定数据流进行限制:

·              外网主机与内网服务器建立大量连接,消耗服务器的连接资源,影响其处理性能,使其不能为其他用户提供正常服务。

·              外网主机直接与设备建立大量连接,挤占设备的处理资源,降低其服务性能。

·              内网主机与外网服务器建立大量连接,消耗网关设备的表项资源(如NAT表项),使其他内网用户无法与外网进行正常通信。

设备提供多粒度阈值方式限制匹配指定ACL的新建连接的数量,管理员可基于报文源IP地址、目的IP地址和服务(目的端口号与协议类型)等粒度的不同组合来配置阈值,并可同时限制新建连接的速率。

关于连接数限制的详细信息,请参见“安全配置指导”中的“连接数限制”。

5.6  攻击检测与防范

5.6.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.6.2  DDoS攻击检测与防范

DDoSDistributed Denial of Service,分布式拒绝服务)攻击是一类利用分布在互联网中的主机或服务器发起的攻击行为,旨在暂时性或永久性地瘫痪目标的网络服务能力。其拥有比传统DoSDenial of Service,拒绝服务)攻击更大的攻击流量以及更强的隐蔽性,因此检测与防范DDoS攻击将更加困难。

DDoS攻击检测与防范功能利用分布式架构,由专业的检测设备和清洗设备分别负责DDoS攻击的检测与防范,并采用基于防护对象的层次化清洗策略,逐步检测和过滤DDoS攻击流量,能针对各类DDoS攻击进行有效防范。

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