如何在 IOS 中查看不同线路(cty、vty、aux、tty)的默认身份验证方法?

网络工程 思科 思科-ios 安全 验证 啊啊啊
2021-07-16 05:35:46

例如,如果我aaa new-model使用默认配置在 IOS 路由器中启用 AAA( ) 并尝试通过控制台线路 ( cty )登录,则不会进行身份验证。但是,如果我尝试通过 telnet( vty )登录,则会针对本地用户数据库进行身份验证。现在,如果我指定 TACACS+ 服务器tacacs-server host 10.10.10.3 key passwd并启用 TACACS+ 身份验证aaa authentication login default group tacacs+,则ctyvty 都开始使用 TACACS+ 身份验证。现在,如果我禁用 AAA( no aaa new-model),那么vty期望我在cty时至少有线路密码默认情况下没有身份验证。由于这还不够令人困惑,控制台行上的启用模式默认不需要身份验证,而在 telnet 的情况下则需要。这一切让我想知道是否有一个 show 命令可以显示不同线路的身份验证方法?例如,在情况下,AAA已启用,但没有TACACS +认证配置,它将与表明sh line vty 0 auth的是VTY线路预计本地用户数据库认证,而在同一时间sh line console 0 auth将表明无需进行身份验证。但是,恐怕这样的show命令不存在,必须检查配置并记住默认值。

1个回答

我可以同情,IOS认证机制并不简单理解。

执行您想要的操作的最接近的命令是show aaa method-lists authentication. 但是,对于审核系统登录身份验证方法而言,此命令并不是真正万无一失的。


示例用法

例如,假设我们有一个具有以下配置的交换机:

username cisco password cisco
aaa new-model
aaa authentication login default local
aaa authorization exec default local if-authenticated
!
line con 0
 exec-timeout 15 0
!
line vty 0 4
 exec-timeout 15 0

当我运行时show aaa method-lists authentication,我看到该default方法是唯一使用方法,但它没有枚举控制台、辅助或线路 vty...

rt#sh aaa method-lists authentication
authen queue=AAA_ML_AUTHEN_LOGIN
  name=default valid=TRUE id=0 :state=ALIVE : LOCAL
  ^^^^^^^^^^^^       ^^^^                     ^^^^^
authen queue=AAA_ML_AUTHEN_ENABLE
authen queue=AAA_ML_AUTHEN_PPP
authen queue=AAA_ML_AUTHEN_SGBP
authen queue=AAA_ML_AUTHEN_ARAP
authen queue=AAA_ML_AUTHEN_DOT1X
authen queue=AAA_ML_AUTHEN_8021X
authen queue=AAA_ML_AUTHEN_EAPOUDP
permanent lists
  name= Permanent Enable None valid=TRUE id=0 :state=ALIVE : ENABLE  NONE 
  name= Permanent Enable valid=TRUE id=0 :state=ALIVE : ENABLE 
  name= Permanent None valid=TRUE id=0 :state=ALIVE : NONE 
  name= Permanent Local valid=TRUE id=0 :state=ALIVE : LOCAL 
  name= Permanent rcmd valid=TRUE id=0 :state=ALIVE : RCMD 

rt#

现在我们可以进入并配置一个虚假的登录方法line con 0......

rt1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
rt1(config)#line con 0
rt1(config-line)#login authentication FOOBAR
AAA: Warning authentication list "FOOBAR" is not defined for LOGIN.

rt1(config-line)#do show aaa method-lists authentication | i FOOBAR
rt1(config-line)#  ! <-------------  *Nothing here*

但是,如果我现在配置该身份验证列表,它会显示...

rt1(config)#aaa authentication login FOOBAR local
rt1(config)#do show aaa method-lists authentication | i FOOBAR
  name=FOOBAR valid=TRUE id=6F000002 :state=ALIVE : LOCAL 
rt1(config)#

综上所述,对于一个命令全能的解决方案,您大多不走运。你能做的最好的事情就是编写一个审计脚本;ciscoconfparse可以协助完成此类任务(完全公开,我为此类问题编写了该库)。