国家 / 地区

H3C 物联网网关安全加固手册-5W100

手册下载

H3C 物联网网关安全加固手册

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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



1 本书约定

1.1  读者对象

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

·     网络规划人员

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

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

1.2  接口编号约定

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

1.3  特别申明

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

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

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

2 概述

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

2.1  安全威胁

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

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

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

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

·     非授权的访问

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

·     弱密钥

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

·     敏感信息泄漏

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

·     消息篡改和伪造

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

·     管理员配置失误

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

2.1.2  转发平面的安全威胁

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

·     畸形报文攻击

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

·     身份仿冒

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

·     消息篡改和伪造

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

2.2  安全体系架构

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

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

 

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

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

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

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

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

¡     畸形报文检测

¡     包过滤

¡     防仿冒

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

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

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

a.     通过控制平面的各协议本身(TCPICMP/ICMPv6ARP/ND)相应的防护措施。

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

2.3  安全加固的基本原则

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

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

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

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

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

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

3 管理平面安全加固

3.1  登录及访问设备的安全

3.1.1  通过Console口登录设备

【安全威胁】

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

缺省情况下,通过Console口登录时认证方式为none,可直接登录,登录成功之后用户角色为network-admin

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

【安全加固策略】

可以在用户线/用户线类视图下配置password认证方式,提高通过Console口登录设备的安全性,password方式表示下次使用该用户线登录时,需要输入密码。只有密码正确,用户才能登录到设备上。配置认证方式为password后,请妥善保存密码。

【注意事项】

改变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!

3.1.2  通过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.2  登录用户及权限管理

3.2.1  管理登录用户权限(RBAC

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

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

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

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  配置内存告警门限

【安全威胁】

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

【安全加固策略】

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

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

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

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

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

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

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

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

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

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

图3-1 内存告警示意图

【注意事项】

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

【配置举例】

# 配置一级、二级、三级告警门限分别为64MB48MB32MB,当系统剩余空闲内存大于96MB时,恢复到正常状态。

<Sysname> system-view

[Sysname] memory-threshold minor 64 severe 48 critical 32 normal 96

3.5  配置文件加密

【安全加固策略】

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

【注意事项】

开启配置文件加密功能后,将不能使用more命令查看加密配置文件(后缀名为“.cfg”的配置文件)的内容,加密配置文件不可以作为display diff命令的参数,进行两份配置文件之间的差异比较,可以使用display saved-configuration命令查看加密的下次启动配置文件内容。

【配置举例】

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

<Sysname> system-view

[Sysname] configuration encrypt public-key

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

<Sysname> system-view

[Sysname] configuration encrypt private-key

4 控制平面安全加固

4.1  ARP攻击防御

4.1.1  洪类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

4.1.2  防御ARP欺骗类攻击功能

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

安全加固策略】

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

【配置举例】

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

<Sysname> system-view

[Sysname] arp valid-check enable

2. 授权ARP功能

【安全加固策略】

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

【配置举例】

# VLAN接口2上开启授权ARP功能。

<Sysname> system-view

[Sysname] interface vlan-interface 2

[Sysname-Vlan-interface2] arp authorized enable

3. ARP Detection功能

【安全加固策略】

·     用户合法性检查:对于ARP信任接口,不进行用户合法性检查;对于ARP非信任接口,进行包括基于用户合法性规则检查、基于DHCP Snooping表项的检查和基于802.1X安全表项来检查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

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

【安全加固策略】

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

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

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

【注意事项】

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

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

【配置举例】

# VLAN接口2上的主IP地址网段内的邻居进行ARP自动扫描。

<Sysname> system-view

[Sysname] interface vlan-interface 2

[Sysname-Vlan-interface2] arp scan

[Sysname-Vlan-interface2] quit

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

[Sysname] arp fixup

4.2  DHCP安全

4.2.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.3  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.4  TCP安全

4.4.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.5  时间管理协议报文认证

4.5.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

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

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

<Sysname> system-view

[Sysname] ntp-service peer acl 2001

4.5.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 vlan-interface 1

[DeviceB-Vlan-interface1] 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 vlan-interface 2

[DeviceB-Vlan-interface2] ntp-service multicast-server 224.0.1.1 authentication-keyid 42

5 转发平面安全加固

5.1  MAC地址安全管理

5.1.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.1.2  关闭MAC地址学习

【安全加固策略】

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

【配置举例】

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

<Sysname> system-view

[Sysname] 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

5.1.3  控制MAC地址学习

【安全加固策略】

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

【配置举例】

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

<Sysname> system-view

[Sysname] interface gigabitethernet 1/0/1

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

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

5.1.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.2  报文过滤

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

 

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

联系我们 联系我们
联系我们
回到顶部 回到顶部