报文信息
认证时授权:
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=<cr>]
授权流程
- 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
- 参数中包含service=shell,且参数中包含cmd,cmd在参数中开头而且小于等于4位(cmd*)协议为N_svc_exec,否则协议类型为N_svc_cmd,并返回cmdname( cmd=show)
- 包含service=slip,返回N_svc_slip
- 包含service=arap ,返回N_svc_arap
- 包含service=ppp,在判断参数protocol=xxx,获取协议为xxx,返回N_svc_ppp
- 包含service=xxx, 获取协议xxx, 返回N_svc
- 设备最大连接数(MAXSESS)定义了,判断是否超过最大连接数,超过了返回授权失败。
- 根据不同的服务协议类型进入不同的授权流程。
N_svc_exec(场景:认证时授权)
后续补充
N_svc_cmd(场景:命令授权)
后续补充