Сетевые технологии
Централизованная аутентификация и авторизация
Реализация покомандной авторизации TACACS+ в NSG Linux

Покомандная авторизация означает, что пользователь не только аутентифицируется на сервере TACACS+ для работы с устройством, но и запрашивает у сервера разрешение на выполнение каждой команды. Покомандная авторизация реализована в версиях NSG Linux 2.1.6_beta5 и выше для работы через Cisco-совместимый SSH и через Web-интерфейс.

Принцип работы покомандной авторизации TACACS+

На сервере TACACS+ покомандная авторизация осуществляется следующим образом. Клиент посылает запрос авторизации с аргументом cmd и 0 или более аргументами cmd-arg. Значениями этих аргументов являются символьные строки. В Cisco любая команда представляет собой строку типа

command_name arg_1 arg_2 arg_3 …

и в запросе авторизации посылает аргументы в таком виде:

…
cmd=command_name
cmd-arg=arg_1
cmd-arg=arg_2
cmd-arg=arg_3
…

Доступность/недоступность команд для данного пользователя описывается в файле конфигурации сервера TACACS+, а именно, в секциях script и cmd, в соответствии с синтаксисом этого файла. Сервер проверяет эти правила для пользователя и отсылает клиенту ответ с положительным или отрицательным результатом.

Формирование аргументов запроса покомандной авторизации в NSG linux

Процедура запроса на авторизацию и формат файла конфигурации сервера TACACS+ ориентированы на командный язык Cisco Systems. В NSG Linux нет языка подобного Cisco, а есть дерево конфигурации и API для работы с деревом, которое используют различные фронтенды (nsgsh, WEB). API — это набор функций с необязательными аргументами "путь_в_дереве" и "значение". Поэтому для проведения покомандной авторизации используется следующее представление дерева команд NSG Linux:

command_name path value

То есть команда и от 0 до 2 аргументов.

Получился следующий набор команд:

get path
set path value
run path value
insert path value
new path value
apply path
remove path
write
edit path
validate path

get — получить конфигурацию
set — установить значение параметра
run — запустить исполняемую команду
Остальные команды соответствуют командам в nsgsh.

Например команда port.a3.baudrate=9600 в запросе авторизации будет послана в таком виде:

…
cmd=set
cmd-arg=port.a3.baudrate
cmd-arg=9600
…

© Network Systems Group 2015–2026 Отдел документации