
由于IP网络规模庞大,导致网络设备数量众多、通信协议层出不穷。同时,IP网络的管理也变得极其复杂,安全性和业务灵活性以及安全性和管理维护便利性之间存在着矛盾。不同技术能力、管理水平的管理人员,对这些矛盾的处理能力也参差不齐。管理员往往追求业务可用性,而忽略了安全防御能力,导致必要的安全措施没有得到妥善的配置,设备本身的安全能力无法发挥。
本文主要介绍常见的网络设备安全加固策略,对一些常见的安全配置进行了举例说明。
由于IP网络规模庞大,导致网络设备数量众多、通信协议层出不穷。同时,IP网络的管理也变得极其复杂,安全性和业务灵活性以及安全性和管理维护便利性之间存在着矛盾。不同技术能力、管理水平的管理人员,对这些矛盾的处理能力也参差不齐。管理员往往追求业务可用性,而忽略了安全防御能力,导致必要的安全措施没有得到妥善的配置,设备本身的安全能力无法发挥。
本文主要介绍常见的网络设备安全加固策略,对一些常见的安全配置进行了举例说明。
常见设备安全加固策略
为什么需要网络设备安全

网络安全是一个系统工程,网络当中的每一样东西都有可能是被攻击的目标,网络设备本身当然也不例外。
网络设备受到的常见攻击如下:
- 恶意登录网络设备执行非法操作,例如重启设备。
- 伪造大量控制报文造成设备CPU利用率升高,例如发送大量的ICMP报文
常见设备安全加固策略
常见的设备安全加固策略主要可以从以下方面部署:
关闭不使用的业务和协议端口
废弃不安全的访问通道
基于可信路径的访问控制
本机防攻击
关闭不使用的业务和协议端口
在分析业务需求的基础上,按照最小授权原则,关闭不使用的业务和协议端口。
不使用的物理端口,应该默认配置为关闭,即使插上网线也不能通信
不使用的协议端口,应该默认配置为关闭,不对外提供访问。如常见的telnet、FTP、HTTP等端口。

废弃不安全的访问通道
在业务需求分析的基础上,优先满足业务的访问需求。在同一个访问需求有多种访问通道服务的情况下,废弃不安全的访问通道,而选择安全的访问通道。

安全的数据访问通道
为保证设备安全,尽量选择安全的访问通道。
设备数据传输安全常见场景及采用协议:
用户远程登录:
Telnet:采用TCP协议进行明文传输。
STelnet:基于SSH协议,提供安全的信息保障和强大的认证功能。
设备文件操作:
FTP:支持文件传输以及文件目录的操作,具有授权和认证功能,明文传输数据。
TFTP:只支持文件传输,不支持授权和认证,明文传输数据。
SFTP:支持文件传输及文件目录的操作,数据进行了严格加密和完整性保护。
SSH概述
SSH(Secure Shell,安全外壳协议),在非安全网络上提供了安全的远程登录、安全文件传输以及TCP/IP安全隧道。不仅在登陆过程中对密码进行加密传送,而且对登陆后执行的命令的数据也进行加密。
合法用户通过客户端登录,完成用户名以及对应的密码验证后,客户端会尝试和服务端建立会话,每个会话是一个独立的逻辑通道,可以提供给不同的上层应用使用。
STelnet和SFTP各自利用了其中的一个逻辑通道,通过SSH对数据进行加密,从而实现数据的安全传输。

SSH协议结构

SSH协议框架中最主要的部分是三个协议:传输层协议、用户认证协议和连接协议。
传输层协议:提供版本协商,加密算法协商,密钥交换,服务端认证以及信息完整性支持。
用户认证协议:为服务器提供客户端的身份鉴别。
连接协议:将加密的信息隧道复用为多个逻辑通道,提供给高层的应用协议(STelnet、SFTP)使用;各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。
基于可信路径的访问控制
可以在设备上部署基于可信路径的访问控制策略,以提升网络的安全性。
部署URPF,可以判定某个报文的源地址是否合法,如果该报文的路径与URPF学习的路径不符,丢弃该报文,用URPF可以有效防范IP地址欺骗。

本机防攻击
在网络中,存在着大量针对CPU的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的断续甚至系统的中断;大量正常的报文也会导致CPU占用率过高,性能下降,从而影响正常的业务。
为了保护CPU,保证CPU对正常业务的处理和响应,设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文,主要用于保护设备自身安全,保证已有业务在发生攻击时的正常运转,避免设备遭受攻击时各业务的相互影响。
本机防攻击包括CPU防攻击和攻击溯源两部分。
CPU防攻击针对上送CPU的报文进行限制和约束,使单位时间内上送CPU报文的数量限制在一定的范围之内,从而保护CPU的安全,保证CPU对业务的正常处理。
攻击溯源针对DoS(Denial of Service,拒绝服务)攻击进行防御。设备通过对上送CPU的报文进行分析统计,然后对统计的报文设置一定的阈值,将超过阈值的报文判定为攻击报文,再对这些攻击报文根据报文信息找出攻击源用户或者攻击源接口,最后通过日志、告警等方式提醒管理员以便管理员采用一定的措施来保护设备,或者直接丢弃攻击报文以对攻击源进行惩罚。
CPU防攻击
多级安全机制,保证设备的安全,实现了对设备的分级保护。设备通过以下策略实现对设备的分级保护:
第一级:通过黑名单来过滤上送CPU的非法报文。
第二级:CPCAR(Control Plane Committed Access Rate)。对上送CPU的报文按照协议类型进行速率限制,
保证每种协议上送CPU的报文不会过多。
第三级:对上送CPU的报文,按照协议优先级进行调度,保证优先级高的协议先得到处理。
第四级:对上送CPU的报文统一限速,对超过统一限速值的报文随机丢弃,保证整体上送CPU的报文不会过多,保护CPU安全。
动态链路保护功能的CPU报文限速,是指当设备检测到SSH Session数据、Telnet Session数据、HTTPSession数据、FTP Session数据以及BGP Session数据建立时,会启动对此Session的动态链路保护功能,后续上送报文如匹配此Session特征信息,此类数据将会享受高速率上送的权利,由此保证了此Session相关业务的运行可靠性、稳定性。
攻击溯源原理
攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程。

网络设备安全加固部署示例
STelnet配置
SSH基本配置
- 使能设备的SSH服务器功能。
[Huawei] stelnet server enable
- 配置SSH用户的认证方式。
[Huawei] ssh user user-name authentication-type { password | rsa | password-rsa | all }
当用户使用RSA认证方式时,需要在SSH服务器上输入SSH客户端生成的密钥中的公钥部分。这样当客户端登录服务器时,自己的私钥如果与输入的公钥匹配成功,则认证通过。
- 配置SSH服务器基于SSH客户端生成的密钥中的公钥部分。
[Huawei] rsa peer-public-key key-name [ encoding-type { der | openssh | pem } ]
[Huawei-rsa-public-key] public-key-code begin
输入的公钥必须是按公钥格式编码的十六进制字符串,由支持SSH客户端生成。
- 退出公共密钥编辑视图;退出公共密钥视图,回到系统视图。
[Huawei-rsa-key-code] public-key-code end
[Huawei-rsa-public-key] peer-public-key end
- 为SSH用户分配RSA公钥。
[Huawei] ssh user user-name assign { rsa-key | ecc-key } key-name
- 生成本地RSA主机密钥对和服务器密钥对。
[Huawei] rsa local-key-pair create
如果RSA密钥已经存在,则系统将提示用户确认是否替换原有密钥;执行此命令后,会提示您输入主机密钥的位数。服务器密钥对的位数与主机密钥对的位数至少相差128位。服务器密钥对和主机密钥对的最小长度为512位,最大长度为2048位,缺省长度为2048位。
- 使能SSH客户端首次认证功能。
[Huawei] ssh client first-time enable
当SSH客户端首次访问SSH服务器,而SSH客户端没有配置SSH服务器端的公钥时,用户可以选择使能SSH客户端首次认证继续访问该SSH服务器,并在SSH客户端保存该主机公钥;当SSH客户端下次访问该SSH服务器时,就以保存的主机公钥来认证该SSH服务器。
SSH配置示例

用户希望安全的远程登录设备,因此配置STelnet方式进行远程的安全登录。
在R3上配置两个登录用户client001和client002,R1使用client001通过password认证方式登录R3,R2使用client002通过RSA认证方式登录R3。配置安全策略,保证只有R1和R2才能登录设备。
配置步骤:
- 在R3生成本地密钥对,实现在服务器端和客户端进行安全的数据交互。
| [R3] rsa local-key-pair create |
| The key name will be: Host |
| RSA keys defined for Host already exist. Confirm to replace them? (y/n):y |
| The range of public key size is (512 ~ 2048). |
| NOTES: If the key modulus is less than 2048, |
| It will introduce potential security risks. |
| Input the bits in the modulus[default = 2048]:2048 |
| Generating |
| keys... ......................................................................................+++ ....+++ ........................... |
| ............++++++++ ..............++++++++ |
- 在R3配置SSH用户client001和client002。
| [R3] user-interface vty 0 4 |
| [R3-ui-vty0-4] authentication-mode aaa |
| [R3-ui-vty0-4] protocol inbound ssh |
| [R3-ui-vty0-4] quit |
| [R3] aaa |
| [R3-aaa] local-user client001 password irreversible-cipher Huawei@123 |
| [R3-aaa] local-user client001 privilege level 3 |
| [R3-aaa] local-user client002 password irreversible-cipher Huawei@123 |
| [R3-aaa] local-user client002 privilege level 3 |
| [R3-aaa] quit |
| [R3] ssh user client001 authentication-type password |
| [R3] ssh user client002 authentication-type rsa |
- 在R3开启STelnet服务功能。
[R3] stelnet server enable
- 在R3配置SSH用户client001和client002的服务方式为STelnet。
| [R3] aaa |
| [R3-aaa] local-user client001 service-type ssh |
| [R3-aaa] local-user client002 service-type ssh |
| [R3-aaa] quit |
- 在R3配置SSH服务器的端口号,有效防止攻击者对SSH服务标准端口的访问,确保安全性。
[R3] ssh server port 1025
| 在R2生成客户端的本地密钥对。 |
| [R2] rsa local-key-pair create |
| The key name will be: Host |
| RSA keys defined for Host already exist. |
| Confirm to replace them? (y/n):y |
| The range of public key size is (512 ~ 2048). |
| NOTES: If the key modulus is less than 2048, |
| It will introduce potential security risks. |
| Input the bits in the modulus[default = 2048]:2048 |
| Generating keys... ...................................................................................... |
| +++ ....+++ .......................................++++++++ ..............++++++++ |
| |
| [R2] display rsa local-key-pair public |
| Key code: 30820109 02820100 CB0E88EC A1C2CFEA F97126F9 36919C08 0455127B |
| A3A48594 69517096 35626F55 E4FAF0EB FDA2B9E9 5E417B2B E09F38B0 D26FCA73 |
| FE2E3FC4 DFBEC8CF 4ED0C909 E8D975E6 FFC73C81 D13FE71E 759DC805 B0F0E877 |
| 4FC9288E BE1E197C 2A7186B0 B56F5573 3A5EA588 29C63E3B 20D56233 8E63278D |
| F941734F 6B359C69 BBAE5A52 EB842179 04B4204D 5DB31D72 97F0C085 DA771F66 |
| 0AAADC28 D264CEB9 5BADA92C CDE9F116 D6D99C48 CEBA3A1D 868B053A |
| 32941D85 CCAA9796 A4B55760 0A8108ED DB45DA12 F61634C9 59431600 341FEDEF |
| 5379D565 A8D1953D DEA018A2 72F99FFC 63DE04BF 2A6219BD DF13D705 |
| 27D63DEF 83D556BC 5B44D983 8D5EA126 C1EB71CB 0203 010001 |
| ===================================================== |
| Time of Key pair created: 2012-08-06 17:17:44+00:00 Key name: Server Key type: RSA |
| encryption Key ===================================================== |
| Key code: 3067 0260 DF8AFF3C 28213B94 2292852E E98657EE 11DE5AF4 8A176878 |
| CDD4BD31 55E05735 3080F367 A83A9034 47D534CA 81250C1D 35401DC3 464E9E5F |
| A50202CF A7AD09CD AC3F531C A763F0A0 4C8E51B9 18755400 76AF4A78 225C92C3 |
| 01FE0DFF 06908363 0203 010001 |
| |
| 为客户端产生的RSA公钥,将其拷贝粘贴至服务器端)。 |
| [R3] rsa peer-public-key rsakey001 |
| [R3-rsa-public-key] public-key-code begin |
| [R3-rsa-key-code] 30820109 |
| [R3-rsa-key-code] 02820100 |
| [R3-rsa-key-code] CB0E88EC A1C2CFEA F97126F9 36919C08 0455127B |
| [R3-rsa-key-code] ...... |
| [R3-rsa-key-code] 010001 |
| [R3-rsa-key-code] public-key-code end |
| [R3-rsa-public-key] peer-public-key end |
| # 在R3上为SSH用户client002绑定STelnet客户端的RSA公钥。 |
| [R3] ssh user client002 assign rsa-key rsakey001 |
SSH配置验证
- 用户client001和client002分别以STelnet方式实现登录R3。
| [R1] ssh client first-time enable |
| [R1] stelnet 192.168.1.1 1025 |
| Please input the username:client001 |
| Trying 192.168.1.1 ... |
| Press CTRL+K to abort |
| Connected to 192.168.1.1 ... |
| The server is not authenticated. Continue to access it?(y/n)[n]:y |
| Save the server |
| The server |
| password: |
| <R3> # 显示登录成功 |
| [R2] ssh client first-time enable |
| [R2] stelnet 192.168.1.1 1025 |
| Please input the username:client002 |
| Trying 192.168.1.1 ... Press CTRL+K to abort Connected to 192.168.1.1 ... |
| The server is not authenticated. Continue to access it?(y/n)[n]:y |
| Save the server's public key?(y/n)[n]:y |
| The server's public key will be saved with the name 192.168.1.1. Please wait... |
| <R3> # 显示登录成功 |
本机防攻击配置
本机防攻击基本配置
- 创建防攻击策略并进入防攻击策略视图。
[Huawei] cpu-defend policy policy-name
- 配置黑名单。
[Huawei-cpu-defend-policy-test] blacklist blacklist-id acl acl-number
如果某个防攻击策略要配置多个黑名单,该防攻击策略的黑名单群中不允许出现二层ACL和基本ACL、二层ACL和高级ACL以及三种ACL同时使用的情况。
- 配置上送CPU报文的限制速率。
[Huawei-cpu-defend-policy-test] packet-type packet-type rate-limit rate-value
如果设备收到某种协议类型的攻击报文或大量上送CPU的正常报文,可以在防攻击策略中对该协议类型的报文进行限速,使该协议类型的报文限制在一个较小的速率范围内,减少对CPU处理正常业务的影响。
- 配置上送CPU报文中指定协议类型报文的优先级。
[Huawei-cpu-defend-policy-test] packet-type packet-type priority priority-level
- 使能动态链路保护功能。
[Huawei-cpu-defend-policy-test] cpu-defend application-apperceive [ ssh | telnet | bgp | ftp | http ] enable
缺省情况下,对于SSH协议、Telnet协议、SSHv6协议、Telnetv6协议、FTP协议、BGP协议和HTTP协议,已使能动态链路保护功能。
- 使能攻击溯源功能。
[Huawei-cpu-defend-policy-test] auto-defend enable
- 配置攻击溯源检查阈值。
[Huawei-cpu-defend-policy-test] auto-defend threshold threshold
- 使能攻击溯源事件上报功能。
[Huawei-cpu-defend-policy-test] auto-defend alarm enable
- 应用防攻击策略。
[Huawei] cpu-defend-policy policy-name [ global | slot slot-id ]
本机防攻击配置示例

如图所示,位于不同局域网的用户通过R1访问Internet。为分析R1受攻击情况,需要配置攻击溯源检查功能记录攻击源信息。管理员发现存在以下现象:
通过攻击溯源检查功能分析可知,Net1中的某个用户经常会发生攻击行为。
R1收到大量的ARP Request报文,影响CPU的正常工作。
R1无法提供FTP服务。
局域网用户通过DHCP方式动态获取IP地址,但R1未优先处理上送CPU的DHCP报文。
R1收到大量的Telnet报文。
管理员希望通过在R1进行配置,以便解决上述问题。
- 配置黑名单,将Net1网段中的攻击者(0001-c0a8-0102)列入黑名单,阻止其接入网络。
| # 配置黑名单使用的ACL。 |
| [R1] acl number 4001 |
| [R1-acl-L2-4001] rule 5 permit source-mac 0001-c0a8-0102 |
| [R1-acl-L2-4001] quit |
| # 创建防攻击策略。 |
| [R1] cpu-defend policy devicesafety |
| # 配置攻击溯源检查功能。 |
| [R1-cpu-defend-policy-devicesafety] auto-defend enable |
| [R1-cpu-defend-policy-devicesafety] auto-defend threshold 50 |
| # 配置黑名单。 |
| [R1-cpu-defend-policy-devicesafety] blacklist 1 acl 4001 |
- 配置ARP Request报文上送CPU的速率限制,使ARP Request报文限制在一个较小的速率范围内,减少对CPU处理正常业务的影响。
| # 配置ARP Request报文上送CPU的速率限制。 |
| [R1-cpu-defend-policy-devicesafety] packet-type arp-request rate-limit 64 |
- 配置FTP协议的动态链路保护功能,保证R1正常提供FTP功能。
| # 配置FTP协议动态链路保护功能的速率限制值。 |
| [R1-cpu-defend-policy-devicesafety] application-apperceive packet-type ftp rate-limit |
| 2000 |
| # 使能FTP协议动态链路保护功能。 |
| [R1] cpu-defend application-apperceive ftp enable |
- 配置协议优先级,对DHCP Client报文设置较高的优先级,保证R1优先处理上送CPU的DHCP Client报文。
| # 应用防攻击策略。 |
| [R1] cpu-defend-policy devicesafety |
- 关闭R1的Telnet服务器功能,使R1丢弃收到的Telnet报文。
| |
| [R1] undo telnet server enable |
本机防攻击配置验证
查看上送到主控板的报文的统计信息,丢弃的报文表明设备对arp-request进行了
速率限制。
| <R1> display cpu-defend statistics |
| Packet Type Pass Packets Drop Packets |
| 8021X 0 0 |
| arp-miss 5 0 |
| arp-reply 8090 0 |
| arp-request 1446576 127773 |
| bfd 0 0 |
| bgp 0 0 |
| bgp4plus 0 0 |
| dhcp-client 879 0 |
| dhcp-server 0 0 |
| |
| [R1] display cpu-defend policy devicesafety |
| Related slot : <0> |
| …… |
| Slot<0> : Success |
| Configuration : |
| Blacklist 1 ACL number : 4001 |
| Packet-type arp-request rate-limit : 64(pps) |
| Packet-type dhcp-client priority : 3 |
| Rate-limit all-packets : 2000(pps)(default) |
| Application-apperceive packet-type ftp : 2000(pps) |
| Application-apperceive packet-type tftp : 2000(pps) |
设备的安全加固,需要从管理平面、控制平面和转发平面多个维度进行考虑。从设备
本身的脆弱点出发,进行网络安全风险的评估,从而梳理出设备整体的安全架构和安
全加固策略。
• 在设备支持的情况下,尽量采用SSH、SFTP等安全协议进行设备访问和数据传输。设
备的CPU容易成为被攻击的对象,本机防攻击的部署至关重要。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~