news 2026/9/29 7:19:31

网络设备安全加固实战:从telnet到SSH、AAA与ACL配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络设备安全加固实战:从telnet到SSH、AAA与ACL配置指南

简介:《网络设备安全加固方案》1.0版是一份面向网络运维与安全从业者的实操型文档,针对内网设备普遍缺乏登录限制、Con口未加密、telnet可被任意终端访问等隐患,给出从身份认证、访问控制到权限管理的完整加固思路。资源包共1个docx文件,约9KB,内容以配置命令与策略说明为主,便于直接对照设备落地。文档围绕本地控制台认证、telnet的ACL限制、本地用户账户与权限级别划分、syslog日志记录、命令权限控制以及SSH替代telnet等方向展开,并附有具体命令示例,如user-interface con 0、acl number、local-user admin、command-privilege level等,可帮助读者理解最小权限原则与职责分离的配置方法。目前已有156人学习,适合需要快速梳理网络设备安全基线、完善内网访问控制策略的初中级工程师参考。

1. 网络设备安全加固方案:从一台裸奔的交换机说起

手里刚拿到一台出厂状态的接入交换机,管理口插上网线,默认 IP 一配,telnet 上去,用户名密码都是 admin,进去之后display current-configuration一看,VTY 线路认证模式是 none,ACL 一条没绑,SNMP 团体字还是 public。这台设备如果直接扔到办公网里,基本等于把大门钥匙插在锁上还贴了张纸条告诉别人钥匙在哪。网络设备安全加固方案要解决的就是这个问题:把一台“能用”的设备变成一台“敢用”的设备。它适合所有需要把网络设备接入生产环境的人——不管是企业网运维、机房交付工程师,还是做等保整改的安服人员。核心动作就四件事:关掉不安全的远程登录方式、用 AAA 把认证授权计费管起来、用 ACL 把管理面流量锁死、把 console 和 VTY 的权限边界划清楚。这四件事做完,一台设备的攻击面能砍掉一大半。

2. 先搞清楚要关什么门:telnet、con 与 AAA 的关系

2.1 telnet 为什么必须换成 SSH

telnet 的问题不是“不好用”,而是它把包括密码在内的所有数据明文丢在网络上。你在telnet 192.168.1.1之后敲的每一个字符,同广播域里任何一台机器抓包都能看到。很多老设备默认开 telnet 是因为早期没有 SSH 实现,但现在还留着 telnet 就是纯粹的管理惰性。

加固的第一步不是直接undo telnet server enable,而是先确认 SSH 已经可用。常见做法是先生成 RSA 密钥对,再开启 SSH 服务,最后关掉 telnet。顺序反了会把自己关在门外,这是血泪经验。

以华为 VRP 为例,最小可用配置如下:

# 生成 RSA 密钥对,模数建议 2048 位 rsa local-key-pair create # 交互提示输入密钥模数,输入 2048 # 开启 SSH 服务 stelnet server enable # 创建本地用户,权限级别 15,认证方式为密码 aaa local-user netadmin password irreversible-cipher YourStrongPwd@2024 local-user netadmin privilege level 15 local-user netadmin service-type ssh quit # 配置 VTY 线路只允许 SSH 接入 user-interface vty 0 4 authentication-mode aaa protocol inbound ssh quit # 确认 SSH 可用后,关闭 telnet 服务 undo telnet server enable

这段配置的逻辑是:先建好 SSH 的“入口”(密钥、服务、用户),再把 VTY 的接入协议从 telnet 切到 SSH,最后才关 telnet 服务。参数上,rsa local-key-pair create的模数不要低于 2048,1024 位在现在的算力面前已经不够看。protocol inbound ssh这一行是关键,它让 VTY 只接受 SSH 连接,即使 telnet 服务没关,telnet 也进不来。

注意:如果设备同时支持protocol inbound ssh和protocol inbound all,加固场景下必须选ssh。有些版本默认是all,不改等于没加固。

2.2 con 口不是“物理接触就安全”

很多人觉得 console 口要插线才能用,天然安全。但机房里一台设备被拔掉 console 线插上笔记本的事情并不少见,尤其是第三方维护人员进出的时候。console 口如果不设认证,任何能物理接触设备的人都能直接拿到最高权限。

console 加固的核心是两件事:设认证、设超时。以 Cisco IOS 为例:

# 进入 console 线路配置 line con 0 # 启用密码认证 password YourConPwd@2024 login # 设置空闲超时 5 分钟 exec-timeout 5 0 # 禁止 console 口输出日志打断输入 logging synchronous exit

exec-timeout 5 0表示 5 分 0 秒无操作就断开,这个值不要设太大,机房场景下 5 到 10 分钟足够。logging synchronous不是安全配置,但它能防止日志输出把你正在敲的命令冲散,减少误操作。

华为设备对应配置:

user-interface console 0 authentication-mode password set authentication password cipher YourConPwd@2024 idle-timeout 5 0 quit

参数含义一致,idle-timeout 5 0是 5 分钟 0 秒。注意华为的authentication-mode可以选password或aaa,如果设备已经配了 AAA,console 也走 AAA 更统一,但要注意 AAA 服务器不可达时的 fallback 行为,别把自己锁死。

2.3 AAA 不是“可选加分项”

AAA 是认证、授权、计费的统称。很多中小网络里 AAA 被跳过,直接用 local-user 本地认证。本地认证不是不行,但设备多了之后,每台设备单独改密码就是运维噩梦。更重要的是,本地认证没有计费记录,谁什么时候登录过、做了什么,查不到。

AAA 的落地分两种规模:

规模认证方式典型方案适用场景
小型网络(<20 台)本地 AAAlocal-user + privilege level无 RADIUS 服务器,运维人员固定
中大型网络(≥20 台)远程 AAARADIUS/TACACS+有统一认证平台,需要审计

TACACS+ 和 RADIUS 的选择上,TACACS+ 对命令级授权支持更好,适合需要精细控制“谁能敲哪些命令”的场景;RADIUS 更通用,和现有认证系统集成更方便。我一般会优先推 TACACS+,因为网络设备加固里“授权”这一环往往比“认证”更关键。

华为设备对接 RADIUS 的最小配置:

# 配置 RADIUS 服务器模板 radius-server template CORP_RADIUS radius-server shared-key cipher RadiusKey@2024 radius-server authentication 10.1.1.100 1812 radius-server accounting 10.1.1.100 1813 quit # 在 AAA 中引用 aaa authentication-scheme CORP_AUTH authentication-mode radius local quit authorization-scheme CORP_AUTHZ authorization-mode radius local quit accounting-scheme CORP_ACCT accounting-mode radius quit domain corp.example.com authentication-scheme CORP_AUTH authorization-scheme CORP_AUTHZ accounting-scheme CORP_ACCT radius-server CORP_RADIUS quit quit

authentication-mode radius local的含义是先走 RADIUS,RADIUS 不可达时回退本地认证。这个 fallback 很重要,否则 RADIUS 一挂,所有设备都登不上去。shared-key要和服务器端一致,不一致的话认证请求会被直接丢弃,现象是“一直提示密码错误”,但其实是密钥不匹配,这个坑很隐蔽。

3. ACL 怎么写才不把自己锁在外面

3.1 管理面 ACL 的“先放行自己”原则

ACL 加固最常见的翻车场景是:写了一条deny ip any any然后应用到 VTY 上,结果自己也被踢了。正确的做法是在 ACL 末尾显式放行运维网段,再拒绝其他。

华为 VRP 的 ACL 配置:

# 创建高级 ACL 3000,用于管理面流量过滤 acl number 3000 # 放行运维网段 SSH rule 5 permit tcp source 10.1.1.0 0.0.0.255 destination-port eq 22 # 放行运维网段 SNMP rule 10 permit udp source 10.1.1.0 0.0.0.255 destination-port eq 161 # 放行运维网段 ICMP rule 15 permit icmp source 10.1.1.0 0.0.0.255 # 拒绝其他所有到管理面的流量 rule 100 deny ip quit # 应用到 VTY user-interface vty 0 4 acl 3000 inbound quit

rule 5到rule 15是放行规则,rule 100是兜底拒绝。规则编号留间隔是为了以后插入新规则方便,不用重新编号。acl 3000 inbound应用在 VTY 上表示只过滤进入设备的流量,不影响设备主动发起的连接。

注意:ACL 应用前先用display acl 3000确认规则顺序和匹配计数。有些平台 ACL 默认是 permit,有些是 deny,不确认就应用,翻车概率很高。

3.2 IPv6 ACL 的差异点

IPv6 ACL 和 IPv4 ACL 在语法上相似,但有几个容易踩的坑。一是 IPv6 没有 ARP,邻居发现靠 ICMPv6,如果 ACL 把 ICMPv6 全拒了,邻居都发现不了,设备直接失联。二是 IPv6 ACL 的源地址匹配要用source关键字加前缀长度,不能像 IPv4 那样用通配符掩码。

华三 IPv6 ACL 示例:

# 创建 IPv6 高级 ACL 3000 acl ipv6 number 3000 # 放行运维网段 SSH rule 5 permit tcp source 2001:db8:1::/64 destination-port eq 22 # 必须放行 ICMPv6,否则邻居发现失败 rule 10 permit icmpv6 source 2001:db8:1::/64 # 拒绝其他 rule 100 deny ipv6 quit # 应用到 VTY user-interface vty 0 4 acl ipv6 3000 inbound quit

rule 10放行 ICMPv6 是 IPv6 加固里最容易漏的一条。IPv4 里 ICMP 被拒最多是 ping 不通,IPv6 里 ICMPv6 被拒会导致地址解析失败,设备直接从网络上消失。

3.3 ACL 规则顺序与匹配逻辑

ACL 是从上到下逐条匹配,匹配到第一条就执行动作,不再往下看。所以规则顺序比规则内容更重要。一个常见的错误是把deny ip any any写在放行规则前面,结果所有流量都被拒。

排查 ACL 问题时,先看匹配计数:

# 华为设备查看 ACL 匹配计数 display acl 3000 # 输出中会显示每条 rule 的 match counter

如果某条放行规则的计数是 0,说明流量根本没匹配到这条,要么是规则顺序问题,要么是 ACL 没应用成功。如果兜底拒绝的计数很高,说明有非预期流量在尝试访问管理面,这时候要去看日志确认来源。

4. 加固方案落地时最容易翻车的五个点

4.1 关 telnet 之前没确认 SSH 可用

现象:敲完undo telnet server enable之后,SSH 连不上,telnet 也连不上,只能去机房插 console 线。

原因:SSH 服务没开、RSA 密钥没生成、VTY 的protocol inbound没改成 ssh,三者缺一不可。很多人只关了 telnet,没检查 SSH 状态。

解决:关 telnet 之前,先用另一台机器ssh admin@设备IP测试登录。登录成功后再关。如果已经锁死,只能 console 进去重新配置。

4.2 ACL 应用后自己也被拒绝

现象:ACL 应用到 VTY 后,当前会话还能用,但断开后重新登录就登不上了。

原因:ACL 里没有放行自己所在的网段,或者放行规则的源地址写错了。当前会话能用是因为 ACL 对已建立的会话不生效,新会话才匹配。

解决:应用 ACL 前,先用display acl确认放行规则包含自己的管理网段。如果不确定,可以先在 VTY 上应用一个只放行自己网段的 ACL,测试通过后再加拒绝规则。

4.3 AAA 服务器不可达导致无法登录

现象:配置 AAA 后,RADIUS 服务器宕机,所有设备都登不上,提示“认证失败”。

原因:authentication-mode radius没有加local回退,RADIUS 不可达时直接拒绝。

解决:认证方案里始终保留local作为 fallback。华为是authentication-mode radius local,Cisco 是aaa authentication login default group radius local。本地要保留至少一个应急账号,密码放在密码管理器里。

4.4 console 口超时设置过长或过短

现象:超时设太长,人走了会话还挂着;设太短,正在敲命令突然断开。

原因:exec-timeout或idle-timeout的值没有根据实际运维节奏调整。

解决:机房现场操作设 10 到 15 分钟,远程操作设 5 分钟。如果经常需要长时间查看配置,可以用terminal length 0配合分页,而不是靠延长超时。

4.5 SNMP 团体字没改

现象:加固做了一堆,但 SNMP 还是 public/private,被人扫到直接读走全部配置。

原因:SNMP 加固容易被忽略,因为大家注意力都在 telnet 和 ACL 上。

解决:SNMPv2c 至少改掉默认团体字,并且用 ACL 限制访问源。条件允许直接上 SNMPv3,用认证和加密。华为配置:

snmp-agent snmp-agent sys-info version v3 snmp-agent group v3 CORP_GROUP privacy snmp-agent usm-user v3 netadmin CORP_GROUP authentication-mode sha AuthPwd@2024 privacy-mode aes128 PrivPwd@2024 snmp-agent acl 3000

privacy表示同时启用认证和加密,authentication-mode sha和privacy-mode aes128是推荐的算法组合。snmp-agent acl 3000复用之前的管理面 ACL,限制只有运维网段能访问 SNMP。

5. 加固后的验证:怎么确认方案真的生效了

5.1 从外部做端口扫描

加固做完之后,从运维网段以外的机器对设备做一次端口扫描,确认只开放了预期端口。Linux 下用nmap:

# 扫描设备常用管理端口 nmap -p 22,23,161,443,80 192.168.1.1

预期结果是 22 开放,23 关闭,161 根据是否启用 SNMP 决定,443 和 80 如果没开 Web 管理也应该关闭。如果 23 还开着,说明 telnet 没关干净,回去检查undo telnet server enable是否执行成功。

5.2 用 telnet 命令反向验证

虽然加固的目标是关掉 telnet,但验证的时候反而可以用 telnet 客户端去测端口通不通。Windows 下开启 telnet 客户端后:

telnet 192.168.1.1 22

如果 22 端口通,会看到 SSH 的版本 banner,类似SSH-2.0-Huawei。如果 23 端口不通,会提示连接失败。这个方法的局限是只能测 TCP 端口,不能测 UDP 的 SNMP。另外 Windows 10 默认没开 telnet 客户端,需要在“启用或关闭 Windows 功能”里勾选。

5.3 检查 AAA 计费记录

如果对接了 RADIUS 计费,登录设备后去 RADIUS 服务器上查计费日志,确认有本次登录的 start 和 stop 记录。没有计费记录说明accounting-mode radius没生效,或者设备没有发送计费报文。这个检查能发现“认证走了 RADIUS 但计费没走”的半吊子配置。

5.4 配置备份与差异对比

加固前后的配置做一次 diff,确认所有变更都在预期内。华为设备可以用display current-configuration导出,Cisco 用show running-config。重点看 VTY、console、AAA、ACL、SNMP 这几个段落。如果发现多了不认识的配置,可能是之前遗留的,也可能是加固过程中误操作,需要逐条确认。

我自己的习惯是:每次加固前先备份一份配置,加固后再备份一份,两份配置存档,文件名带日期和设备名。这样出问题的时候能快速回退,也能在半年后回头看当时改了什么。网络设备安全加固不是一次性的活,设备升级、人员变动、网络调整都可能让加固失效,定期复查比一次性配完更重要。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 7:18:58

工业PLC抗干扰实战:从接地电阻到屏蔽层搭接的7个致命细节

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 7:16:06

ARM-Linux交叉编译工具链安装配置与实战排错指南

引言&#xff1a;一台电脑怎么给另一台设备编译程序如果你手里有一块 ARM 开发板&#xff0c;比如全志 H6、瑞芯微 RK3588&#xff0c;或者一块 Orange Pi CM5&#xff0c;你很快会遇到一个绕不开的现实&#xff1a;板子的存储和内存都紧巴巴&#xff0c;编译一个大点的程序动不…

作者头像 李华
网站建设 2026/9/29 7:16:03

禁掉if/else之后:软件测试从分支覆盖走向规则建模

去年春天&#xff0c;我们团队内部发起了一场口号有点中二的“语言大清洗运动”&#xff1a;线上业务代码里&#xff0c;不允许再新增 if/else 分支&#xff0c;存量分支也按计划逐步清理。当时最炸毛的是软件测试组&#xff0c;毕竟“if/else 怎么设计测试用例”几乎是软件测试…

作者头像 李华
网站建设 2026/9/29 7:15:00

目标检测数据集制作全流程:从采集标注到VOC/YOLO格式转换

1. 项目概述与核心思路做检测任务这些年&#xff0c;最消磨耐心的不是调参&#xff0c;而是做数据集。这篇文章就是把我的检测数据集制作全流程完整梳理一遍&#xff1a;原始图像从哪来、怎么整理&#xff0c;用什么工具标注&#xff0c;标注结果落地成VOC、COCO、YOLO格式之后…

作者头像 李华
网站建设 2026/9/29 7:13:48

ANFIS网络异常检测实战:KDD CUP99+动量修正+可复现落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华