Cisco: Настройка привилегий пользователя

 

http://pro-voip.com.ua cisco

Здесь я хочу оставить заметку о том, как в Cisco добавить пользователя, который может выполнять только определенные (явно разрешенные) команды конфигурации. Словами Cisco — наделить пользователя определенными привилегиями.

 

Для начала немного о CLI Command Mode

 

CLI (Command Line Interface) Cisco имеет несколько режимов работы:

  • User EXEC — пользовательский режим; сюда мы попадаем, когда логинимся на Cisco; по дефолту имеет «1» уровень привилегий;
telnet sw-office

Username: admin
Password:

sw-office>

Дефолтный уровень привилегий пользователя можно менять — установить, например «15» — и пользователь при логине на Cisco попадает сразу в привилегированый режим.

  • Privileged EXEC — привилегированый режим; переходим в него из User EXEC режима с помощью команды enable; имеет наивысший — «15» уровень привилегий, соответственно, и полный контроль над железкой
sw-office>enable
Password:
sw-office#
  • Global configuration — режим глобальной конфигурации; переходим в него из Privileged EXEC режима с помощью команды configure terminal
sw-office#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
sw-office(config)#
  • Далее из режима глобальной конфигурации можем переходить в режим конфигурации интерфейса, линии, вланов и т.д.

Режимы работы Cisco CLI, как видим, иерархичны: для того, чтобы поднять какой-нибудь 100-мегабитный порт #17, нужно пройти цепочку Login -> (User EXEC) -> enable -> (Privileged Exec) -> configure terminal -> (Global configuration) -> interface Fa0/17 -> (Interface configuration) -> no shutdown

Т.е. для того, чтобы просто поднять порт, пользователю нужны полные права? По умолчанию, да. Для тех, кого такое положение вещей не устраивает, Cisco предусмотрела  механизм управления привилегиями пользователей через уровни привилегирования (privileges level). О них пойдет речь ниже…

 

Cisco privileges level

 

У Cisco всего есть 16 уровней привилегий — по нумерации от 0 до 15. Уровень «1» — дефолтный пользовательский, уровень «15» — высший привилегированный (полные права доступа). Почему дефолтный пользовательский не «0»? — не знаю.

В итоге у нас остается еще 14 уровней привилегий, которые можно настроить под определенные команды.

Переход между уровнями привилегий осуществляется через команду enable <номер уровня>. Просто enable попытается закинуть в самый привилегированный уровень 15:

sw-office>enable
Password:
sw-office#show privilege
Current privilege level is 15

Попасть в привилегированный режим третьего уровня:

sw-office>enable 3
Password:
sw-office#show privilege
Current privilege level is 3

Из любого уровня в уровень ниже можно попасть уже без пароля:

sw-office#show privilege
Current privilege level is 15
sw-office#enable 2
sw-office#show privilege
Current privilege level is 2

Выйти из привилегированного режима — disable:

sw-office#disable
sw-office>

 

Настройка привилегий 

 

Задача: создать уровень привилегий 3 и позволить пользователям, имеющим к нему доступ, настраивать порты (description, switchport mode, shutdown/no shutdown), смотреть running-config портов и сохранять конфигурацию.

1. Устанавливаем привилегии

Установка привилегий имеет следующий вид:

privilege <режим CLI> level <номер уровня> <разрешенная команда>

sw-office(config)#privilege exec level 3 configure terminal
sw-office(config)#privilege configure level 3 interface
sw-office(config)#privilege interface level 3 description
sw-office(config)#privilege interface level 3 shutdown
sw-office(config)#privilege interface level 3 switchport mode
sw-office(config)#privilege interface level 3 switchport access
sw-office(config)#privilege interface level 3 switchport trunk
sw-office(config)#privilege exec level 3 show running-config
sw-office(config)#privilege exec level 3 write memory

2. Даем пользователям доступ к этим привилегиям

Эту задачу можно решить несколькими способами:

— создать пароль на доступ к уровню через команду enable:

sw-office(config)#enable secret level 3 0 strongpasstolevel3

тогда доступ к привилегированному уровню 3 будут иметь пользователи, знающите пароль (и пользователи с уровнем привилегий выше (4…15).

— создать пользователя, который при логине на Cisco сразу попадает в привилегированный режим уровня 3:

sw-office(config)#username admin secret 0 strongpass
sw-office(config)#username admin privilege 3

тогда доступ к привилегированному уровню будет иметь только этот пользователь (ну и пользователи с уровнем привилегий выше (4…15).

Проверим:

Username: admin
Password:

sw-office#show privilege
Current privilege level is 3

Если это не работает, и при логине пользователь попадает все равно в Exec mode level 1, делаем следующее:

sw-office(config)#aaa authorization exec default local

 

Удаление привилегий

 

Казалось бы, следуя логике конфигурированию Cisco, чтобы удалить те или иные настройки, следует использовать слово no перед командой. И если мы делаем:

sw-office(config)#no privilege exec level 3 configure terminal

то ожидаем в конфиге эту строку больше не видеть. Но работает это не везде. Например, на WS-C3750-48TS-S Version 12.2(55)SE4 команда no работает. А на ME-3400-24FS-A Version 12.2(40r)SE1 получим вот такое:

sw-office-2(config)#no privilege exec level 3 configure terminal
...
sw-office-2#sh running-config
...
privilege exec level 15 configure terminal
privilege exec level 15 configure

Тогда нужно использовать команду сброса (reset) привилегий:

sw-office-2(config)#privilege exec reset configure

Ну вот пока что, в принципе, и все.