tacacs授权流程

报文信息

  • 认证时授权:
    2017/05/15 11:18:35 [192.168.6.87:14404] Author Start, user: zyuc port: tty66 remAddr: 192.168.6.150 Args: [service=shell cmd*]

  • 命令授权:
    2017/05/15 11:18:43 [192.168.6.87:20404] Author Start, user: zyuc port: tty66 remAddr: 192.168.6.150 Args: [service=shell cmd=show cmd-arg=running-config cmd-arg=interface cmd-arg=Loopback cmd-arg=0 cmd-arg=]

授权流程

  • do_author 默认授权状态AUTHOR_STATUS_FAIL,参数个数为0,参数为空
  • cfg_user_exists 判断用户或者默认用户(DEFAULT)是否存在,不存在授权失败。cfg_no_user_permitted 如果不存在但默认授权放开则授权成功,但是返回参数为空。
  • cfg_user_exists 报文中用户不存在,但是默认用户存在,使用默认用户替换报文用户。
  • pre_authorization 判断授权前是否有需要执行的命令,返回授权结果,貌似只有facebook有这个流程 See if there's a program defined which will do authorization for us
  • get_nas_svc 判断授权服务协议方式,协议方式未知返回AUTHOR_STATUS_ERROR
    1. 参数中包含service=shell,且参数中包含cmd,cmd在参数中开头而且小于等于4位(cmd*)协议为N_svc_exec,否则协议类型为N_svc_cmd,并返回cmdname( cmd=show)
    2. 包含service=slip,返回N_svc_slip
    3. 包含service=arap ,返回N_svc_arap
    4. 包含service=ppp,在判断参数protocol=xxx,获取协议为xxx,返回N_svc_ppp
    5. 包含service=xxx, 获取协议xxx, 返回N_svc
  • 设备最大连接数(MAXSESS)定义了,判断是否超过最大连接数,超过了返回授权失败。
  • 根据不同的服务协议类型进入不同的授权流程。

N_svc_exec(场景:认证时授权)

后续补充

N_svc_cmd(场景:命令授权)

后续补充

你可能感兴趣的:(tacacs授权流程)