登录方式有BUG 配置一定要小心
局域网·办公
使用过Cisco路由交换设备的朋友都应该知道,Cisco登录模式采用的是密码验证,而非用户验证方式。也就是说当你登录到设备上时,首先需要输入进入用户模式的密码,然后再输入进入特权模式的密码。笔者最近在将Cisco交换机登录模式修改为用户验证方式时却出现了无法正常登录的故障。
修改容易恢复难
为了加强路由设备的安全性,先使用如下命令将Cisco6509交换机设置为用户验证方式进行登录。
router(config)#username test password 0 test
//在配置模式下添加一个用户,用户名为test,密码也是test。
router(config)#line vty 0 4
//设置Telnet从0到4线程均使用用户名进行登录,也就是说登录采用用户验证方式。
router(config-line)#login local
设备小知识
Cisco6509,全称是Cisco Catalyst6509,是Cisco Catalyst6500系列多层交换机的一种,除了提供核心接入级的三层交换服务外也具有比较强大的路由功能。该系列产品的背板带宽为32Gbps共享总线/256Gbps交换矩阵/720Gbps交换矩阵,第三层转发性能为Supervisor 1 MSFC:15Mpps、Supervisor 2 MSFC:210Mpps 、Supervisor 720:400Mpps。Cisco6509其中最后一个“9”,表示有9个模块的产品。因此大家看到的6509,其型号上也是印的“6500”。
经过几天的使用,我感觉到每次登录都要输入用户名和密码比较烦琐,就再次登录到设备上运行了“no username test”(将建立的TEST账号删除),接着保存设置退出。结果再次登录设备时却发现设备仍然提示要我输入username(用户名),而实际上惟一一个用户已经被删除了,这时候输入正确的用户名和密码也无法登录了。不能进入管理界面了,惨!
命令小知识
username:创建登录账户指令,使用格式为“username 账户名 password 0 账户密码”,其中0代表账户密码设置时是用明文设定的。
line vty:创建Telnet登录权限,使用格式为line vty 0 4,默认情况下Telnet容许5个线程,即同时可以有5个用户通过Telnet登录到路由器上。相应的命令中的0和4分别代表从0到4的5个线程均包含在设置范围内。
login local:设置路由器从密码验证模式变为用户验证模式,如果使用no login local则是将用户验证模式切换回密码验证模式。
三条命令,层层剖析
由于笔者只是运行了三条配置指令,而第一条已经通过no username test进行了删除,所以怀疑是login local命令生效造成本地故障发生。
这就说明Cisco设备存在这么一个BUG,即当你在路由设备上建立了惟一一个账号而又启用用户验证方式进行登录的话,在删除该账号后应该立即使用no login local命令将验证方式修改回密码验证的方式,否则就会出现无法登录路由交换设备的故障。
多方尝试,终告恢复
我们需要进入Cisco6509,添加no login local命令来解决问题。笔者依次考虑了三种方法。
1.关闭Cisco6509电源并重新启动它,这样让系统自动加载STARTUP中的配置。不过由于在配置后执行了copy cur start的命令,将修改的参数进行了保存,重启后会加载保存过的错误配置,因此无法解决问题。
命令小知识
copy cur start:将当前设置保存,其中cur表示是当前设置,start表示是路由器每次启动加载的设置。
2.通过SNMP协议下载和上传配置文件。由于该设备启用了SNMP协议,所以尝试使用SolarWinds的SNMP扫描工具下载设备的配置文件,下载完毕进行修改后通过工具上传。不过在实际操作中发现配置的SNMP Community是只读权限,无法完成配置文件的下载修改工作,无法解决问题。
3.由于配置的命令之一是line vty 0 4,只在Telnet登录时生效,所以只得通过CONSOLE线连接到Cisco6509的管理口,登录进去添加no login local并保存,这时再执行Telnet命令就可以正常访问设备了。
经验:过早“保存”会惹祸
通过这次故障的排除,本人觉得以后在配置路由交换设备中测试新命令时一定要先保证命令的正确性和可用性后再执行保存配置命令。本次就因为过早地在未经测试的情况下执行了保存命令,加大了后来排除故障的难度。另外对于这个Cisco设备存在的BUG,各位网络管理员也要引起足够的重视。