我需要确保IOS路由器上的某个用户只能键入特定命令。我能够使用特权级别来做到这一点,但是只要用户键入“启用”,他就可以回到特权级别15并即将键入所有命令。我要确保即使他输入“启用”,他仍然仍然只能键入我允许的特定命令。我也尝试过基于角色的cli,但遇到了同样的问题。我不想使用任何外部身份验证服务器。

谢谢!

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

您已经知道自己问题的大部分答案-您需要配置用户可以特定特权级别运行的命令。不具有特权级别参数的enable默认为特权级别15,该特权具有运行所有命令的权限。您需要做的两件事是:


更改默认的启用密码,以便用户不再有权访问该密码,因此无法进入特权级别15。
在登录时将用户的默认特权级别设置为与您已更改用户可以在其上运行的所需命令相同的特权级别:

Router(config)#username joe privilege <x> password foobar

其中X是您想要的命令集的特权级别。

编辑:我应该指出,这实际上并没有提供真正的基于用户的命令授权,它仅提供了基于特权级别的授权,因为命令本身仅被绑定一次只授予一个特权级别,因此实际上是路由器范围的更改。它旨在以分层方式工作;每个特权级别都可以在该级别以及该级别以下的所有级别运行命令。如果您需要真正的基于用户的授权,则需要某种AAA服务器(请参阅下面的我的注释)。

从技术上讲,您还可以将enable命令的特权级别更改为比用户的特权级别更高。特权级别,因此他们甚至都没有选择运行它的权限:

Router(config)#privilege exec level <x> enable

这当然假设您不希望用户能够运行任何特权配置命令。

另一种选择是确保用户登录并键入enable时,他们需要指定其特权级别,而不是无特权级别,该特权级别默认为15。

Router>enable <x>

如果愿意,显然可以为所有16个特权级别指定启用密码。

我的最后一点是,如果没有外部AAA服务器,所有这些都会给您带来极大的痛苦。有许多可用的开放源代码TACACS +实现,这些实现仅需花费初始设置的费用,但是它们使这种事情变得微不足道,而且是集中的,因此,如果您有多个路由器,则不必继续重复相同的命令您管理的每台设备上的特权跳绳。这就是为什么首先要使用AAA服务器的原因,因此您不想使用服务器的要求没有任何意义。

#2 楼

如果将设备配置为对AAA使用TACACS,则可以在Cisco ACS中完成命令限制。

评论


请考虑向此答案添加更多信息。

– Teun Vink♦
2014年12月11日在22:36