首页 > 代码库 > AAA 级别授权
AAA 级别授权
当用Cisco ACS作为radius认证服务器为网络设备做用户登录认证时,默认情况下用户并没有15级权限,不管是ACS内部用户还是关联的AD里面的用户。如果是用tacacs+作为认证协议,可以通过修改shell privilege level来进行用户级别授权,但是如果用radius认证没有这个选项,需要我们通过定义cisco av-pair来设置用户级别。当添加radius client端的时候,Authenticate Using需要选择RADIUS(Cisco IOS/PIX 6.0)才会在user 或者group选项里看到关于av-pair的设置。
选中cisco-av-pair,并键入参数 shell:priv-lvl=15 来实现对用户命令级别的授权。由于是今天碰到的问题, 简单记录下,有问题请联系,
一,Cisco IOS 权限等级
1,Level 0
2,Level 1(Level 2~14)
3,Level 15:特权模式(Privilegemode)
4,各权限之间的关系
(1),权限等级跳转
(2),给Level 2~14 下放部分Level 15 权限
二, 用户接入管理
1,console 接入
2,aux 接入
3,vty 接入
三,设置密码
1,四种密码设置命令
(1),直接enablepassword 配置密码
(2),enablepassword 后加关键字再配置密码
(3),直接enablesecret 配置密码
(4),enablesecret 后加关键字再配置密码
2,加密show run 显示的密码配置
一,Cisco IOS 权限等级
Cisco IOS 提供了16 种权限等级,分别是levvel 0 到level15,每一个Level 都有
不同的权限,同时对应着不同权限能使用的命令。
对于所有16 个Level 来说,实际上只有3 种Level 而已:Level 0,Level 1(Level 2~14),Level 15。
下面我们详细介绍一下。
1,Level 0
Level 0 是最低的权限,只能使用极少数的几个命令:
2,Level 1(Level 2~14)
Level 1 是用户EXEC 模式(User mode),通常用来查看路由器的状态。在此状态下,
无法对路由器进行配置,可以查看的路由器信息也是有限的。
Level 2~14 是用来干什么的呢?
一些不允许拥有完全权限(Level 15)的用户或客户需要连接到路由器时,管理员可
以把Level 15 中的部分命令的使用权限下放给Level 2~14,然后把这些有权限运行部分
命令的Level 分发给相应的客户或用户。这样,那些客户或用户就能使用这些本来自己没
有权限使用的命令了。Level 2~14 的命令权限和Level 1 相同,只不过缺省配置下是
Level 1 而已。
权限原则:只赋予必需的最少的访问权限。
如图,在缺省配置下登录到Cisco 路由器将处于用户EXEC 模式(等级1)下。
Level 1(Level 2~14)能使用的命令较多,36 个左右。(下图不完全)
3,Level 15:特权模式(Privilegemode)
特权模式(Privilege mode)可以更改路由器的配置,当然也可以查看路由器的所有
信息,可以对路由器进行全面控制。用户模式下敲入“enable”命令(同“enable 15”)
即进入特权模式。
特权模式(#)与全局配置模式(config)的关系:
Cisco IOS 的根本权限不是全局配置模式而是的特权模式,全局配置模式只不过是特权模式的一个功能特性模式而已。
如图,输入“enable”后进入了特权模式。
Level 15 能使用全部命令,命令太多这里就不截图了。
4,各权限之间的关系
(1),权限等级跳转
除了Level1 能直跳Level 15 外,在没有设置等级权限密码的情况下,低等级权限模
式下是不能跳转进入高等权限模式的。
比如我们在Level 1 下需要进入权限等级3 的话,在Level 1 下敲入enable 3 会报
错:“% Nopassword set”。正确的方法是:先敲入enable 或enable 15(enable 命令
默认进入等级15),之后敲入enable 3。查看当前权限等级命令是show privilege。)
当然,我们给一些权限等级设置密码后低等级权限模式就能直接跳转进入高等级权限模式
了。
配置如下:
Router(config)#enable password level3 cisco
% Converting to a secret. Please use “enable secret” in thefuture.
验证如图:
(2),给Level 2~14 下放部分Level 15 权限
下面用一个实例来说明如何给Level 2~14 下放Level 15 特权模式权限才能使用的命
令。
实验拓扑:
说明:IP 地址等基础配置已完全,R1 为企业,R2 为被下放命令的客户。
R1(config)#username aaa privilege 3 password 0 aaa //新建用户aaa
密码aaa 权限等级3
R1(config)#privilege exec level 3 show running-config //授予等级3 使
用命令“show run”
R1(config)#line vty 0 4 //开始对线路0~4 进行配置
R1(config-line)#login local // 登陆验证调用本地用户列
表
R2(权限受限制的客户)验证如图:
说明:远程终端输入用户名密码后直接进入特权等级3,无需从等级1 enable 3 进
入等级3。
二,用户接入管理
用户接入:管理设备的用户接入设备的方式有Console、HTTP、TTY、VTY 或其他网管
软件等等。这里我们主要讲3 种,console 口接入,aux 口接入和vty(virtualteletype
terminal 虚拟终端)。
他们的配置如下:
1,console 接入
Router(config)#line console 0 //进入console 线路,这里只能是0,因
为console 线只有一条
Router(config-line)#password cisco //设置密码,password 后可外加0
或7 来限制密码字段
Router(config-line)#login //确认启用密码设置,没用login 密码设置
无效)
退出后重新登陆设备将需要输入刚才设置的密码:
配置Console 介入时的其他常用的设置:
Router(config-line)#logging synchronous 这个命令可以阻止控制台信息打断当
前输入。
Router(config-line)#exec-timeout 0 0 这个命令将永不断开console 的接入。为
了防止在管理员在配置中途离开设备而有其他人操作设备,Cisco IOS 默认控制台10 分
钟无操作自动断开接入。这条命令完全格式是exec-timeoutx x,表示控制台无操作x 分
x 秒后自动断开接入。
2,aux 接入
aux 接入与console 接入完全相同。
Router(config)#line aux 0 (一台设备也只有一个aux 口不是?)
Router(config-line)#password cisco
Router(config-line)#login
Router(config-line)#loggingsynchronous
Router(config-line)#exec-timeout 0 0
3,vty 接入
vty 接入除了进入线路的line 命令特别以外,也同console 接入和aux 接入。
Router(config)#line vty 0 4 (开启5 条vty 线路0~4)
Router(config-line)#password cisco
Router(config-line)#login
Router(config-line)#loggingsynchronous
Router(config-line)#exec-timeout 0 0
说明:使用show run 可以看到IOS 的默认设置里console 线路0,aux 线路0 和vty
线路0~4 都是默认开启的。vty 的0~4 号线路开启表示设备可以同时允许5 个虚拟终端同
时接入设备,且按虚拟终端接入时间顺序依次使用线路0~4。禁用vty 的方式就是在所有
line 中去掉密码,在没有设置vty 密码的情况下,vty 是不能被使用的。
禁用vty 配置:
Router(config)#line vty 0 4
Router(config-line)#no password。
三,设置密码
在成功登录Cisco ISO 后我们应该考虑一下设备配置的安全问题。为了增强安全性,
防止不应该的用户登录路由器串改重要配置,我们可以设置一些密码。
注意,Cisco IOS 的密码都是大小写敏感的,并且支持空格作为密码字段,很多人在
敲完命令后习惯性的会按一下空格键,对于其他命令这当然无关紧要。但是对于密码设置
来说IOS 会把最后那个空格算入密码字段中,密码将成为“XXX 空格”。但是如果空格出
现在密码字段的前面则不会影响密码字段,Cisco CLI 默认合并命令词组前的多个空格为
一个空格,密码前的空格会被合并入密码字段前面的命令正常空格。
Cisco IOS 的enable 密码默认为空,所以对设备进行初始设置时必须设定enable 密
码。
1,四种密码设置命令
(1),直接enable password 配置密码
这种方式是明文的,即show run 能看到明文密码。
(2),enable password 后加关键字再配置密码
输入命令“enable password ?”后面会出现如下图:
enable password 0 后面可以直接跟加密的内容(UNENCRYPTED),这个命令和
enablepassword 一样。
enable password 7 后面必须要跟你加密的密码经过思科私有算法出来那个数值
(HIDDEN)。
比如“enable password 7 060506324F41 “cisco”经思科私有算法处理后的结果
为060506324F41。我们在在登陆设备后要求输入enable 密码时,我们要输入“cisco”
而不是“060506324F41”
(3),直接enable secret 配置密码
这种方式是采用MD5 算法加密密码,enable secret 命令设置的密码将会覆盖enable
password 命令设置的密码。
(4),enable secret 后加关键字再配置密码
输入命令“enable secret ?”,出现下图:
enable secret 0 后直接接密码字段(UNENCRYPTED),将使用MD5 加密而不是明文,
相当于enablesecret 后直接接密码字段。
enable secret 5 后面必须要跟你加密的密码经过MD5 算法出来那个数值
(ENCRYPTED)。
比如“enable secret 5 $1$IACW$LEPKyEV6Ak/0Tnkvk8BNA “cisco”经MD5 算法处
理后的结果为$1$IACW$LEPKyEV6Ak/0Tnkvk8BNA。我们在登陆设备后要求输入enable 密码
时,我们仍然要输入“cisco”而不是“$1$IACW$LEPKyEV6Ak/0Tnkvk8BNA.”
2,加密show run 显示的密码配置
在使用show run 查看设备配置命令时,如果配置的密码被明文显示在设备输出(终
端的窗口界面)中,依然会有泄密的风险。为此我们可以使用“service passwordencryption”
命令来使设备终端显示的密码为密文而不是明文。
service password-encryption 这个加密的方式是采用了cisco 的私有加密方式来加
密的。(设置console 密码后,开启service password-encryption。我们show run 会
发现密码配置命令为“password 70071A150754”数字7 就表示采用了cisco 的私有加密
算法。)
如果我们在路由器上面再敲入:no service password-encryption 这条命令后,是
不可能直接解密密文的,必须通过其他办法解密。常常使用cisco 私有算法密码逆算软件
来通过密文逆算出真正的密码。
另外比较重要的一点就是,service password-encryption 这条命令必须在设置密码
后再配置,先配置servicepassword-encryption 再设置密码的话,该密码将不会被加密。
service password-encryption 是对配置中的所有密码加密,不单单是enable 密码,
如果enable 是明文的将会被重新加密,如果enable 密码已经被MD5(enablesecret 命令)
或被Cisco 私有算法(enablepassword 7 命令)加密后,service password-encryption
将不作额外处理。
AAA 级别授权