10.2. CLI

Аббревиатура AAA означает аутентификацию, авторизацию и учёт. Эта подсистема необходима для обеспечения идентификации пользователя, определения, какие команды он имеет право выполнять, и отслеживания всех действий пользователя.

Важно

Изменения в настройках AAA не распространяются на сессии, которые уже были созданы.

Локальная конфигурация пользователя

В системе есть один локальный пользователь по умолчанию с именем admin и паролем admin, который находится в группе admin и имеет доступ ко всем командам конфигурации.

Команды для управления пользователями перечислены ниже.

user USERNAME group <guest|operator|admin> encryption <md5|sha-256|sha-512> password PASSWORD

Добавить нового пользователя в указанную группу. Пароль вводится в виде обычного текста и будет захеширован с использованием алгоритма encryption.

user USERNAME group <guest|operator|admin> password PASSWORD_HASH

Добавить нового пользователя в указанную группу. Пароль вводится в виде хэшированной формы в Modular Crypt Format: ($<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]]). Поддерживаются алгоритмы MD5 ($1$), SHA-256 ($5$) и SHA-512 ($6$).

user USERNAME group <guest|operator|admin>

Переместить пользователя в указанную группу.

Чтобы настроить пароль для режима Enable Mode, используйте следующие команды:

enable encryption <md5|sha-256|sha-512> password PASSWORD

или

enable password PASSWORD_HASH

Примечание

Для RADIUS и TACACS+ настройка режима Enable Mode применяется на серверах.

Конфигурация RADIUS и TACACS+

Сначала задайте настройки для серверов RADIUS или TACACS+, к которым будет подключаться ADC:

aaa radius id (0-99) A.B.C.D auth-port (1-65535) acct-port (1-65535) secret SECRET

Установить соединение с сервером RADIUS.

Ключ

Значение

Описание

id

(0-99)

Идентификатор сервера RADIUS

HOST

A.B.C.D или hostname

IP-адрес или имя хоста RADIUS-сервера

auth-port

(1-65535)

Порт аутентификации RADIUS. По умолчанию — 1812

acct-port

(1-65535)

Порт учёта RADIUS. Значение по умолчанию — 1813

secret

SECRET

Пароль, который ADC будет использовать для подключения к серверу RADIUS

В RADIUS-пакетах используется атрибут cisco-avpair (9,1):

Атрибут

Описание

shell:priv-lvl=

Задать уровень привилегий для пользователя

shell:cmd=

Запретить отдельную команду (все команды, начинающиеся с указанной строки, будут запрещены)

Настройка пароля для режима Enable Mode выполняется путём создания пользователя $enab15$ на сервере RADIUS.

Пример файла users приведен ниже:

test    Cleartext-Password := "test"
        cisco-avpair := "shell:priv-lvl=7", cisco-avpair := "shell:cmd=show interface"

$enab15$ Cleartext-Password := "enable"
aaa tacacs+ id (0-99) HOST port (1-65535) secret SECRET

Установить соединение с сервером TACACS+.

Ключ

Значение

Описание

id

(0-99)

Идентификатор сервера TACACS+

HOST

A.B.C.D или hostname

IP-адрес или имя хоста TACACS+ сервера

port

(1-65535)

Порт TACACS+ сервера. По умолчанию — 49

secret

SECRET

Пароль, который ADC будет использовать для подключения к серверу TACACS+

Примечание

Вы можете добавить несколько серверов RADIUS или TACACS+, чтобы повысить отказоустойчивость системы. В этом случае ADC подключится к серверу с наименьшим номером ID.

aaa server <radius|tacacs+> id (0-99) set-id (0-99)

Изменить идентификатор сервера. Если сервер с новым идентификатором уже существует, серверы меняются местами.

no aaa <radius|tacacs+> [id (0-99)]

Удалить все соединения с серверами RADIUS или TACACS+ или только те, для которых указан идентификатор.

Учёт

aaa accounting <console|ssh> {local|radius|tacacs+}

Задайте тип соединения (через SSH или консоль) и место, куда будут отправляться действия пользователей. Журналы содержат начало/конец сессии и все команды, введенные пользователем, с результатом авторизации.

Обратите внимание: radius и tacacs+ здесь означают две группы серверов. Например, если вы добавите два RADIUS и три TACACS-сервера, и укажете local radius tacacs+ в учёте, то ADC отправит логи на локальный сервер, а также на RADIUS-сервер с наибольшим ID в группе RADIUS-серверов и на TACACS-сервер с наибольшим ID в группе TACACS-серверов.

no aaa accounting <console|ssh>

Отключить учёт.

Аутентификация

aaa authentication <console|ssh> {local|radius|tacacs+}

Задать тип соединения (через SSH или консоль) и метод аутентификации. Можно указать несколько методов, и ADC будет использовать первый из указанных. Методы radius и tacacs+ означают две группы серверов. Например, если вы укажете для аутентификации radius tacacs и добавите несколько серверов RADIUS и TACACS, то ADC сначала попробует подключиться к серверу RADIUS с большим ID и так далее, а затем, если все серверы RADIUS недоступны, перейдет к серверам TACACS.

Обратите внимание на два момента:

  1. Локальный сервер всегда доступен, поэтому следующие серверы не будут опрашиваться.

  2. Отказ в доступе интерпретируется как успешный ответ, поэтому следующий сервер не будет опрашиваться.

Во время аутентификации запрашивается уровень привилегий (priv-lvl) из того же источника, который разрешил доступ. В соответствии с полученным уровнем привилегий устанавливается роль оператора:

Роль

Уровень привилегий

admin

=15

operator

>=7; <15

guest

<7

no aaa authentication <console|ssh>

Отключить аутентификацию.

Авторизация

aaa authorization <console|ssh> {local|radius|tacacs+}

Задать тип соединения (через SSH или консоль) и метод авторизации. Вы можете указать несколько методов, и ADC будет использовать первый из указанных. Методы radius и tacacs+ означают две группы серверов. Например, если вы укажете для авторизации radius tacacs и добавите несколько серверов RADIUS и TACACS, то ADC сначала попробует подключиться к серверу RADIUS с большим ID и так далее, а затем, если все серверы RADIUS недоступны, перейдет к серверам TACACS.

Обратите внимание на два момента:

  1. Локальный сервер всегда доступен, поэтому следующие серверы не будут опрашиваться.

  2. Отказ в доступе интерпретируется как успешный ответ, поэтому следующий сервер не будет опрашиваться.

Несколько важных моментов

Когда локальная авторизация реализована на уровне привилегий пользователя, отдельные команды не могут быть разрешены/запрещены.

RADIUS-авторизация позволяет только запрещать команды (необходимо выбрать более высокий уровень привилегий изначально).

Если сессия не была аутентифицирована через RADIUS, RADIUS-авторизация не будет доступна, и будут использованы другие методы в указанном порядке.

TACACS-авторизация позволяет настраивать любые права доступа. Нет необходимости использовать TACACS-аутентификацию перед использованием авторизации.

no aaa authorization <console|ssh>

Отключить авторизацию.

Show-команды

show aaa server debug

Показать отладочную информацию для всех настроенных соединений. Вывод выглядит следующим образом:

trafficsoft# show aaa server debug
Radius server #0: 192.168.1.10 auth-port:1812 acct-port:1813
Accept: 0
Reject: 0
Connection error: 0

Tacacs+ server #0: 192.168.1.11:49
Accept: 95
Reject: 0
Connection error: 0
show aaa server radius

Показать информацию о RADIUS-соединениях: IP-адрес или имя хоста, auth-port и acct-port.

show aaa server tacacs+

Показать информацию о TACACS+ соединениях: IP-адрес или имя хоста и порт.

show aaa sessions

Показать информацию о всех сессиях. Вывод включает: Имя пользователя, TTY, Удалённый IP, Аутентификатор, Время начала, Последняя активность, ID.

show aaa sessions username [USERNAME]

Показать информацию о сессиях для указанного пользователя.

clear aaa session SESSION_ID

Очистить указанную сессию.