等保2.0下Cisco路由器安全配置自查与加固实战指南
2026/9/17 17:56:54 网站建设 项目流程

简介:一份面向等保2.0合规建设与测评整改的Cisco思科路由器专项检查表,适合网络运维、安全工程师及等级保护测评人员使用。资源为单个PDF文件,压缩包总大小约158KB,内容以表格化检查清单呈现,涵盖系统版本、Console口与密码加密、密码复杂度、Telnet远程ACL限制、VTY数量及超时退出等账号安全项,也覆盖日志管理、NTP时间同步、路由协议认证、设备冗余备份、访问控制、关闭CDP/HTTP/BOOTP及IP源路由防护等二十余项策略要求。每项均列出检查步骤或命令、是否符合、加固操作记录等字段,方便直接对照现网设备逐项自查与整改留痕。目前已有727人学习,适合需要快速落地等保2.0网络设备安全要求或准备测评检查的读者参考。

1. 等保2.0走进机房:Cisco路由器安全配置到底卡在哪

等保2.0测评组进机房,手里那张Cisco网络设备检查表,本质不是漏洞扫描清单,而是一组围绕身份鉴别、访问控制、审计、入侵防范的配置行为断言。做一次整改,如果只把路由器密码改成强口令,测评结论大概率仍然是不符合:VTY来源未限制、syslog没有时间同步、路由协议没开认证、CDP还在发报文,这些都会逐条被写进问题项。接下来直接把检查表逐条翻译成show命令和running-config里的判断条件,覆盖查什么、命令怎么敲、结果怎么判定、不符合时怎么加固。适合自己维护核心路由器的网络工程师,也适合准备等保测评整改的一线运维。

2. 账号口令与登录通道:Console/VTY/Enable 三个核查面

等保检查表里“设备基本情况及账号检查”不是只查密码,而是按资产身份、控制台口令、远程登录限制、enable秘钥四个层面逐项确认。实际测评中,我通常先做只读巡检,把所有相关输出保存下来再打勾。不先执行命令,只凭“我记得配置过”去应对,很容易漏掉某些line或接口下的配置。另外,测评师看running-config时只会看当前生效配置,不会听你说“之前加了又删了”,因此核查命令都必须基于设备当前状态。

2.1 设备版本与Console口口令核查

检查表第一条“设备品牌、设备类型、设备名称、系统版本信息收集”对应的是资产清点,命令本身很简单:

show version show running-config | section line console 0

show version用于确认设备型号和IOS版本,在等保测评报告里要写进设备信息一栏,和资产台账不符会被记为不符合。版本过老或停止支持本身不一定算安全漏洞,但测评师会关注是否还有补丁维护渠道。show running-config | section line console 0只截取Console 0配置段,比show running-config全文翻页更高效。判断符合性的重点有三个:有没有login语句、有没有password、密码是不是密文存储。

如果看到password 7 08...,这只是Cisco Type 7弱混淆,不是加密,可以在几秒内被离线工具解出明文。可靠的做法是使用secret或外部AAA,同时开启service password-encryption,让配置文件中所有口令字段至少不是肉眼可读的明文。物理机柜加锁属于现场检查项,CLI无法查看,测评时需要在场人员配合确认机柜锁具与钥匙管理制度。

2.2 VTY数量、ACL来源限制与超时退出

VTY是远程登录的主要入口,等保核查重点不是有没有密码,而是“并发入口数量、来源IP、空闲超时、传输协议”四个维度。先看当前配置:

show running-config | section line vty

如果输出是line vty 0 4,表示同时开启5条虚拟终端;如果是line vty 0 15,就是16条。检查表要求“VTY数量限制”,不是说数量越少越好,而是要与运维规模匹配。对边界和核心路由器,我一般保留0 4共5条,同时配上ACL只允许网管段访问。配置示例:

access-list 99 remark NMS-ONLY access-list 99 permit 192.168.10.0 0.0.0.255 access-list 99 deny any line vty 0 4 access-class 99 in transport input ssh exec-timeout 5 0

access-class 99 in表示进入VTY时按ACL 99校验源IP,只放行10.10.1.0/24网段;transport input ssh关闭了Telnet明文通道,只保留SSH;exec-timeout 5 0表示用户连续5分钟没有任何操作就自动断开,其中5是分钟数、0是秒数。

注意:exec-timeout 0 0在等保检查中直接判不符合,现网如果看到这个值,先确认业务影响,再在变更窗口改成5 0。

ACL只限制VTY访问还不够,建议把transport input telnet也关闭。若现网确实需要Telnet,至少配合transport input telnet ssh并加ACL,但等保测评对这种混合开放通常建议整改为SSH。管理员数量多于5人时,可把VTY扩展到0 7,并在access-class里区分两个网段,而不是简单粗暴扩到16条。

2.3 enable口令加密与密码复杂度验证

enable口令是设备进入特权模式的最后一道门,检查表第四条要求“查看是否启用PASSWORD加密功能、查看enable secret的使用”。核查命令组合:

show running-config | include enable show running-config | include service password-encryption show running-config | include security passwords

第一句看有没有enable secret,第二句看全局密码混淆开关,第三句看是否配置了最小口令长度。如果输出里同时有enable secret 9 $9$...service password-encryption,这项通常判定为符合。

Cisco IOS的security passwords min-length 8只强制最小长度,不限制字符类别。检查表“密码符合复杂度要求”这条,设备只能提供一部分证据。真正达到大小写、数字、特殊字符组合约束,需要配合口令管理制度,或者把登录认证指向ACS/TACACS+/Radius,由服务端下发密码策略。这是等保自查里容易被误解的地方:不要因为在设备上找不到复杂度算法就认为不符合,而应把最小长度配置和公司口令管理制度一起作为应答材料。

口令相关核查可以直接用下面这张表做自查底稿:

检查项目使用的命令符合条件
系统版本信息show version型号、版本与资产台账一致
Console口口令show running-config | section line console 0有login和password,无明文密码
enable加密show running-config | include enable使用enable secret,无enable password明文
VTY数量show running-config | section line vty条目数为5或匹配运维人数
VTY来源限制show running-config | section line vty有access-class,ACL只放行管理网段
超时退出show running-config | section exec-timeout非0 0,建议5 0
密码复杂度show running-config | include passwords有最小长度配置,且制度佐证复杂度

这张表填的时候,“符合/不符合/加固操作记录”三列一定要留痕。尤其是不符合项,要写清楚实际输出和整改后的命令,否则测评组二次核查时会质疑你的整改有效性。

3. 日志、NTP与路由协议认证:把运行状态变成可追溯证据

等保2.0对审计的核查重点是三条:日志开关开了没有、日志时间准不准、关键交互是不是只发生在可信节点之间。Cisco设备很多logging命令存在,但没指定buffer或服务器,等于没做审计。下面按日志采集、时间同步、路由协议认证三个层面展开,正好对应检查表里的“日志管理”与“路由协议安全”。

3.1 syslog记录与日志要素核查

检查表要求“应对网络设备运行状况、网络流量、用户行为进行日志记录。syslog应包括时间的日期和时间、用户、事件类型”。先取当前日志配置:

show logging show running-config | section logging

show logging顶部会显示Syslog logging: enabled/disabled和Log Buffer大小。若logging bufferedlogging host都没有,平台级日志基本不可查,建议先补buffer:logging buffered 65536 informationallogging host 192.168.10.100是把日志转发到syslog服务器。两者都在时,本地buffer和远程服务器各存一份,设备重启后本地日志丢失,远程还有备份。

日志要素要与show logging的实际输出对照。如果时间戳是*Mar 1 00:00:10.001,说明系统时间没校准到实际时间,测评师会认为日志不能准确反映事件发生时刻。用户行为类日志通常由IOS自身产生,例如配置变更时的%SYS-5-CONFIG_I: Configured from console by admin,这类输出里能看到登录方式和用户名,正好满足“用户、事件类型”的要求。

如果设备配置了AAA服务器,show logging | include CONFIG_I可能显示from 192.168.10.20 by user,用户名可追溯到具体自然人。如果只靠设备本地用户名,也要确保每个管理员以独立账号登录,而不是多人共享一个admin账号,否则审计日志无法定位到人。

3.2 NTP同步与本地时区配置核查

时间不同步,日志再全也只是“到了不知道什么时候”。检查表“开启NTP服务,保证日志功能记录时间的准确性”通常这样落地:

show ntp status show ntp associations show clock

符合条件很直接:show ntp status输出clock is synchronizedshow clock时间接近当前时间。如果显示clock is unsynchronized,需要先查UDP 123放通状态及NTP服务器地址。配置客户端时,我偏向在管理面ACL里放行NTP流量,而不是在业务接口全局放开。

典型配置:

clock timezone CST 8 ntp server 192.168.10.1 iburst

clock timezone CST 8把系统时钟设为东八区,避免日志使用UTC造成8小时偏差;ntp server指定上游时间源,iburst表示在开机时快速连发几个包缩短首次同步时间。内网没有可用NTP源时,可以用边界路由器做ntp master 3,让核心交换机同步它。ntp master 3表示设备自身作为NTP服务器,3是stratum层级,数值越小优先级越高。

如果上游NTP配置了ntp authentication-key,客户端还需要ntp authenticatentp trusted-key,这属于认证项,等保检查中是加分项。对多数企业,外层NTP同步链路不开放认证也能通过时间准确性核查,但日志审计要求严格时建议开启。

3.3 路由协议认证:防止伪造邻居与路由欺骗

检查表“启用动态路由协议(RIPV2/OSPF/EIGRP)时,启用路由协议的认证功能”是等保安全区域边界内容。原理上,没有认证的路由更新无法判断来源是否可信,攻击者只要接入链路上的一台设备,就能伪造LSA或路由更新,把流量引到恶意位置。启用认证后,双方共享密钥,不接受未通过校验的报文。

以OSPF为例,在两端的互联接口下配置:

interface GigabitEthernet0/0 ip address 10.0.12.1 255.255.255.0 ip ospf message-digest-key 1 md5 OSPF-2024-KEY ip ospf authentication message-digest

ip ospf message-digest-key定义密钥链编号和MD5密钥,ip ospf authentication message-digest指定该接口使用MD5校验。两者必须同时存在,只配了key但不启用认证,不会发送认证字段;两边密钥不一致时邻居关系起不来。

验证命令:

show ip ospf neighbor show ip ospf interface GigabitEthernet0/0 show ip protocols

show ip ospf neighbor中状态为FULL/ -表示邻接正常;若因为认证失败反复震荡,日志里会出现%OSPF-5-ADJCHGshow ip protocols用于确认OSPF进程下的Area配置,这也是检查表里show ip pro的实际用途。检查表原始命令是缩写的show ip pro,输出内容和show ip protocols一致。

对于RIPv2,接口下使用ip rip authentication mode md5ip rip authentication key-chain;EIGRP则用ip authentication mode eigrp <AS> md5ip authentication key-chain eigrp <AS> <name>。命令不同,但核查逻辑一样:有认证就查模式和密钥链两条。

检查项核查命令判定条件
日志记录show loggingbuffered或remote已开启,非全部默认输出
时间同步show ntp statusclock is synchronized
OSPF认证show running-config | include ip ospf authentication每个启OSPF的接口都有authentication和key
RIPV2认证show running-config | include ip rip authentication模式md5且配置key-chain
EIGRP认证show running-config | include authentication mode eigrp模式md5且配置key-chain

路由协议认证变更会中断邻居关系,生产环境务必在变更窗口内执行,并且一次改一对互连接口,避免全网路由振荡。

4. 访问控制与非必要服务收敛:一张表收掉一半风险

检查表最后的“其他内容”是最容易出不符合项的地方。原因是这些服务大多不是平时运维要用的,很多设备从上线起就保留厂商默认状态,而测评时工程师会逐条核对管理面和协议。收敛思路就一句话:凡是业务不需要的协议、服务、端口,全部关闭;凡是必须保留的管理面,全部加密、ACL、认证三件套。

4.1 登录警告banner与CDP/HTTP关闭

登录警告banner属于安全管理中的警示要求,show running-config | include banner可以看到是否配置了banner motd。banner的作用是让未授权访问者在登录前看到授权边界,内容通常是一句“仅授权人员可登录,所有行为将被记录”。配置示例:

banner motd ^C Unauthorized access prohibited. All activities logged. ^C

^C是定界符,不是字符串;检查时要求banner必须出现在用户登录之前的提示阶段。有些设备把banner loginbanner motd混用,一般建议配置motd就足够,banner exec留空。

CDP是思科专有协议,默认开启,会把主机名、IOS版本、VLAN、IP地址发给直连设备,等于向接入段广播设备指纹。检查表要求“关闭CDP服务”,常见做法是:

no cdp run

执行后show cdp neighbors不再返回设备信息。如果网络监控依赖CDP发现拓扑,可保留cdp run,但在非必要接口下执行no cdp enable逐口关闭。等保测评通常不认可全局开放,建议至少边界设备全局关闭。

HTTP管理面关闭:

no ip http server no ip http secure-server

no ip http server关闭明文HTTP管理;no ip http secure-server关闭HTTPS管理。如果设备需要HTTPS做远端配置,不能全局关闭,就必须限制ACL来源并开启ip http authentication local,同时配置强口令。检查表的核查命令是show run | i http,输出中不应看到ip http server,只能看到no ip http server

4.2 TCP/UDP Small Services与IP选项的批量收敛

TCP Small Services和UDP Small Services是老版本IOS上默认开启的一组诊断服务,包括chargen、echo、discard等端口。对外开放后会被扫描器发现,并可能参与流量放大攻击。同理,IP Source Route接受源路径选项,ip directed-broadcast会把广播作为定向包转发,两者都是老旧且危险的IP选项。加固配置可以一次性写入:

configure terminal no service tcp-small-servers no service udp-small-servers no ip source-route no ip directed-broadcast no ip bootp server end write memory

这段配置里每一个no都对应检查表一个核查项:no service tcp-small-servers关闭TCP小服务,no service udp-small-servers关闭UDP小服务;no ip source-route禁止处理带源路由选项的报文;no ip directed-broadcast禁止转发定向广播;no ip bootp server关闭BOOTP服务,防止设备响应外部启动请求。write memory把配置写入startup-config,否则设备重启后回到旧的running-config,测评师下电验证时会发现配置丢失。

部分IOS新版本默认就没有service tcp-small-servers,此时running-config里不会出现对应配置。不要为了“看起来有加固动作”而硬塞一条no service tcp-small-servers,配置不存在时执行no命令不会报错,但会在配置文件里留下无意义条目。

提示:本次修改涉及的no ip source-routeno ip directed-broadcast在部分业务场景下会影响组播或特殊转发,修改前先用show ip traffic观察该类报文计数,再决定是否统一关闭。

4.3 VTP密码与交换机扩展核查

检查表最后一项“SWITCH/VTP密码是否设置”虽然写在路由器的表上,但VTP是交换机功能,严格说纯路由器不适用,带交换模块的路由器才会出现。核查命令:

show vtp password show vtp status

show vtp password查看VTP域口令,如果显示空或明文说明VTP没有启用密码保护;show vtp status确认VTP模式。检查表里写的show vtp passshow vtp password的缩写,IOS命令只要唯一匹配就能执行,输入show vtp pass通常也可以,但为了报告可读性,我会用完整命令。

如果VTP工作模式是Transparent或Off,VLAN更新不向对等体传播,风险小很多。但运维上仍建议为VTP域配置密码,防止新接入设备误加入同域VTP并同步VLAN数据库。配置:

vtp password YourVtpPassword

VTP密码在当前IOS里以Type 7混淆显示,且所有同域设备必须一致,否则VTP无法正常工作。改VTP密码前要先评估是否为所有交换机设置相同密码,不能只在一台核心设备上孤军作战。

服务/协议核查命令符合条件
Bannershow running-config | include banner有motd,且登入前显示
CDPshow cdp neighbors空输出,或全局配置no cdp run
HTTP管理show running-config | include http只有no ip http server/no ip http secure-server
TCP小服务show running-config | include small-servers没有service tcp-small-servers
UDP小服务show running-config | include small-servers没有service udp-small-servers
Source Routeshow running-config | include source-route有no ip source-route
Directed Broadcastshow running-config | include directed-broadcast有no ip directed-broadcast
Bootpshow running-config | include bootp有no ip bootp server
VTP密码show vtp password有非空口令且同域一致

5. 把等保策略检查表变成自动化基线:从show命令到diff报告

检查表里的“检查步骤/方法”“符合/不符合”其实是一份非常适合自动化的规则集。手动一台台敲命令,一台设备少说20分钟,设备一多,测评组进场前根本复查不完。我更愿意把表里的核查项固化成一个小脚本,每次巡检自动收集命令输出,再按正则做判定,最后留档。这样“加固操作记录”也有据可查,比事后补拍照片更可信。

5.1 用Python+Netmiko生成带快照的自查报告

脚本前先执行pip install netmiko安装依赖,然后用Netmiko连接Cisco IOS设备,执行只读命令,按预期正则输出PASS/FAIL,并写入文本报告:

#!/usr/bin/env python3 import re from datetime import datetime from netmiko import ConnectHandler CHECK_COMMANDS = { "version": "show version", "vty": "show running-config | section line vty", "logging": "show logging", "ntp": "show ntp status", "ospf_auth": "show running-config | include ip ospf authentication", "global_hardening": "show running-config | include no ip source-route|no ip directed-broadcast|no ip bootp server", } EXPECTATIONS = { "version": r"Cisco IOS Software", "vty": r"exec-timeout \d+ \d+", "logging": r"Log Buffer|Syslog logging: enabled", "ntp": r"clock is synchronized", "ospf_auth": r"authentication message-digest", "global_hardening": r"no ip source-route", } def main(): device = { "device_type": "cisco_ios", "ip": "192.168.10.1", "username": "ops_reader", "password": "secret", "secret": "enable_secret", "global_delay_factor": 2, } conn = ConnectHandler(**device) conn.enable() stamp = datetime.now().strftime("%Y%m%d_%H%M%S") with open(f"etc_check_{stamp}.txt", "w", encoding="utf-8") as f: for name, cmd in CHECK_COMMANDS.items(): out = conn.send_command(cmd) f.write(f"===== {name} =====\n{out}\n") ok = bool(re.search(EXPECTATIONS[name], out, re.I)) f.write(f"RESULT: {'PASS' if ok else 'FAIL'}\n\n") conn.disconnect() if __name__ == "__main__": main()

global_delay_factor=2针对设备响应慢时增加命令间等待时间,真实设备上遇到大量ACL配置时能降低超时误判。conn.enable()进入特权模式,show running-config需要特权权限,如果只给巡检账号level 1,会直接报权限不足。脚本把命令输出原样落到文件,遇到正则没命中也只是标记FAIL,不会中断,保证一次性把所有检查项跑完。

想要长期跟踪配置漂移,可以把每次生成的etc_check_*.txt纳入版本管理,下次巡检后执行diff -u etc_check_20250701_120000.txt etc_check_20250708_120000.txt,只关注变化行。配置变更走了正式流程,diff里一定包含变更计划中的命令;如果diff里出现没人申请过的命令,基本可以判定为设备被未授权改动,应及时回滚并追日志。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询