11.2. CLI

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

Важно

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

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

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

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

user USERNAME group <guest|operator|admin> [encryption <md5|sha-256|sha-512>] password PASSWORD [user-id (2000-65535)]

Добавить нового пользователя в указанную группу. Пароль вводится в виде обычного текста и будет захеширован с использованием алгоритма encryption. Если encryption не указан, пароль интерпретируется в хэшированной форме (Modular Crypt Format). Параметр user-id позволяет задать UID для локального пользователя.

user USERNAME group <guest|operator|admin>

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

no user USERNAME

Удалить пользователя.

user USERNAME change-password

Принудительно потребовать смену пароля у пользователя при следующем входе.

user USERNAME block [until DATETIME]

Заблокировать пользователя. Если указан параметр until, пользователь будет заблокирован до указанной даты и времени.

no user USERNAME block

Разблокировать пользователя.

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

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

или

enable password PASSWORD_HASH
no enable password

Удалить пароль для режима Enable Mode.

Примечание

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

Политика безопасности

Команды для настройки политики паролей и блокировки при неудачной аутентификации:

aaa local password expire (1-36500)

Задать срок действия пароля в днях. По истечении указанного срока пользователю потребуется сменить пароль при следующем входе.

aaa local password length min (1-47) max (1-47)

Задать минимальную и максимальную допустимую длину пароля.

aaa local password strength (1-4)

Задать уровень сложности пароля (от 1 до 4). Более высокий уровень требует использования цифр, букв разного регистра и специальных символов.

aaa local password history (1-50)

Задать количество запоминаемых предыдущих паролей. Пользователь не сможет установить пароль, совпадающий с одним из последних использованных.

aaa local password check-list FILENAME

Задать файл со списком запрещённых паролей. При попытке установить пароль из этого списка операция будет отклонена.

aaa local username length min (1-47) max (1-47)

Задать минимальную и максимальную допустимую длину имени пользователя.

aaa local failed-auth limit (1-1000) [rehabilitation-time (1-2880)]

Задать максимальное количество неудачных попыток аутентификации, после которого пользователь будет заблокирован. Параметр rehabilitation-time определяет время автоматической разблокировки в минутах. Если время не указано, разблокировка выполняется вручную.

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

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

aaa radius SERVERNAME id (0-99) host HOST {auth-port (1-65535)|acct-port (1-65535)} secret SECRET

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

Ключ

Значение

Описание

SERVERNAME

Имя

Уникальное имя сервера 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

no aaa radius SERVERNAME

Удалить сервер 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+ SERVERNAME id (0-99) host HOST port (1-65535) secret SECRET

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

Ключ

Значение

Описание

SERVERNAME

Имя

Уникальное имя сервера TACACS+

id

(0-99)

Идентификатор сервера TACACS+, определяющий порядок проверки серверов

host

A.B.C.D или hostname

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

port

(1-65535)

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

secret

SECRET

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

no aaa tacacs+ SERVERNAME

Удалить сервер TACACS+.

Примечание

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

aaa radius SERVERNAME set-new-id (0-99)

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

aaa tacacs+ SERVERNAME set-new-id (0-99)

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

RADIUS Accounting

Команды для настройки RADIUS Accounting — учёта действий пользователей через протокол RADIUS:

radius accounting secret SECRET

Задать пароль для RADIUS-учёта.

radius accounting timeout (1-604800000)

Задать таймаут ожидания ответа от RADIUS-сервера учёта (в миллисекундах).

radius accounting key <ipv4|ipv6> avp-type <(1-25)|(27-255)>

Задать стандартный AVP-тип для ключа идентификации пользователя по IPv4 или IPv6-адресу.

radius accounting key <ipv4|ipv6> avp-type vendor id (1-4294967295) type (1-255)

Задать vendor-specific AVP-тип для ключа идентификации пользователя по IPv4 или IPv6-адресу.

radius accounting attribute (0-15) avp-type <(1-25)|(27-255)> max-length (1-65535) print <text|hex|ipv4|ipv6>

Добавить дополнительный атрибут в RADIUS Accounting-пакеты. Параметр print определяет формат отображения: текст, шестнадцатеричный, IPv4 или IPv6-адрес.

radius accounting attribute (0-15) avp-type vendor id (1-4294967295) type (1-255) max-length (1-65535) print <text|hex|ipv4|ipv6>

Добавить vendor-specific атрибут в RADIUS Accounting-пакеты.

radius accounting enable

Включить RADIUS Accounting.

Примечание

Команды, принимающие параметр SECRET (aaa radius, aaa tacacs+, radius accounting secret), поддерживают опциональный параметр [encrypted], который указывает, что значение секрета передаётся в зашифрованном виде. Этот параметр используется системой при сохранении конфигурации и обычно не требуется при ручном вводе.

Accounting

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

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

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

Authentication

[no] 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

Authorization

[no] 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-аутентификацию перед использованием авторизации.

Настройка сессий

aaa sessions <console|ssh> idle-timeout (1-2880)

Установить таймаут бездействия сессии в минутах. Если пользователь не выполняет команды в течение указанного времени, сессия будет завершена.

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 [username NAME]

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

show aaa local users

Показать список локальных пользователей, их группу и статус (активен, заблокирован, требуется смена пароля).

clear aaa session SESSION_ID

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