Здесь я хочу оставить заметку о том, как в 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
Ну вот пока что, в принципе, и все.