@ Карта сайта News Автора!

Bog BOS: IOS: AAA (authentication, authorization, accounting), tacacs+, RADIUS

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL

Последнее изменение текста: 20000412
Скопировано с www.bog.pp.ru: 2024.11.23

Bog BOS: IOS: AAA (authentication, authorization, accounting), tacacs+, RADIUS

Сервер доступа (tacacs+, RADIUS) - это программа, которая крутится на UNIX-компьютере и отвечает на запросы киски типа: есть ли такой пользователь, какие у него права и ведет журнал посещений. AAA расшифровывается как authentication (установление личности пользователя), authorization (проверка полномочий) и accounting (учет использования ресурсов). Для каждой из трех функций используется поименованный список методов, примененный к интерфейсу. При необходимости использования любой функции AAA IOS "пробегает" по этому списку пытаясь соединиться с соответствующим сервером. Если соединиться не удается (локальная БД отвечает всегда), то IOS переходит к следующему методу из списка. Если методов в списке не осталось, то регистрируется отказ. По умолчанию, к каждому интерфейсу применяется список методов по имени default. Если не требуется что-то необычное, то рекомендуется определить ровно один свой список методов с именем default и пусть он применяется ко всем интерфейсам.

Как конфигурировать сервер TACACS+ смотри отдельную главу, для конфигурирования RADIUS глава еще(?) не написана. Cisco позволяет использовать все атрибуты TACACS+ при работе с RADIUS при помощи vendor specific attribut (cisco-avpair= "shell:priv-lvl=15"). NAS привязывается к серверу так (надо включить AAA и определить параметры серверов, можно определить несколько TACACS+ или RADIUS серверов - в этом случае NAS будет пробовать их по очереди):
═ ═aaa new-model # будем использовать tacacs+, а не старые варианты
═ ═aaa processes число # количество параллельных процессов, обслуживающих AAA (количество одновременно заходящих пользователей). У меня загрузка второго процесса составляет 10% от загрузки 1го, так что, думаю, что двух достаточно.
═show ppp queues # показывает, сколько AAA процессов запущено и их статистику (странное название и странные числа он показывает)
═ ═tacacs-server host IP-адрес-tacacs+-сервера [single-connection] [port порт(49)] [timeout секунд] [key ключ-шифровки] # tac_plus 4.0.2 не поддерживает single-connection; можно указывать несколько серверов, они будут пробоваться по очереди
═ ═tacacs-server key key <пароль> # ключ, с помощью которого шифруются сообщения между киской и tacacs+ сервером
═ tacacs-server retransmit retries # число попыток достучаться до сервера (по умолчанию - 2)
═ tacacs-server timeout seconds # сколько ждать, чтобы убедиться, что сервер не работает (по умолчанию - 5 секунд)
═ ip tacacs source-interface subinterface-name # задать исходный IP-адрес TACACS пакетов
═ tacacs-server directed-request # включен по умолчанию; управляет использованием имен пользователей в виде: имя@сервер; если включен, то на указанный сервер (проверяется, что он указан в конфигурации, иначе вся строка посылается на сервер по умолчанию) посылается короткое имя пользователя, если выключен - вся строка на сервер по умолчанию. В документации не описано действие ключа restricted.
═ radius-server host IP-address [auth-port порт] [acct-port порт] non-standard # non-standard означает реализацию cisco и обеспечивает работу ключей key и configure-nas
═ radius-server key ключ

═ radius-server configure-nas # радиус сервер будет снабжать информацией о статических маршрутах и пулах IP адресов
═ radius-server retransmit retries
═ radius-server timeout seconds
═ radius-server dead-time minutes
═ radius-server vsa send [accounting | authentication] # позволять использовать VSA (vendor specific attribut)
═ ip identd # поднять ident сервер

authentication

Для установления личности определяется список методов идентификации и применяется к определенному интерфейсу.

Проверка при входе на линию:
═ ═aaa authentication login {имя-списка | default } метод1 [ метод2 ] ═...

Методы при проверке на входе бывают следующие:

Для использования сервера kerberos необходимо иметь версию IOS с поддержкой шифровки.

Применить список методов к линии(ям):

Пример:
═ ═aaa authentication login default tacacs+ enable # по-умолчанию проверяем каждый вход на линию с помощью tacacs+ сервера, а если он не отзывается, то спрашиваем пароль суперпользователя. Т.к. используется имя default, то он будет действовать на всех линиях.

Если пользователи подсоединяются с RAS по PPP, минуя интерфейс командной строки, то для проверки их личности необходимо определить список методов установления личности при соединении PPP, по умолчанию никакой проверки не производится (список default не используется):
═ ═aaa authentication ppp {имя-списка | default } метод1 [ метод2 ] ═...

Применить список методов к интерфейсам (if-needed только для TACACS и XTACACS, callin вызывает аутентификацию только для входных соединений, one-time позволяет вводить имя и пароль в одной строке; д.б. установлена encapsulation ppp на интерфейсе):

Методы при проверке личности во время установления PPP-соединения бывают следующие:

Пример:
═ ═aaa authentication ppp default if-needed none # при включении PPP, производим фиктивную проверку пользователя, если не проверяли его раньше (может это уже можно выключить?), т.к. используется имя default, то сами интерфейсы конфигурировать не надо.

Проверка личности при переходе в привилегированный режим:
═ ═aaa authentication enable default метод1 [ метод2 ] ═...

Методы при проверке личности при входе в привилегированный режим:

Бывает еще двойная проверка (access-profile, ip trigger-authentication, show ip trigger-authentication, clear ip trigger-authentication) и автоматическая двойная проверка, но это какакя-то муть.

Аутентификация без AAA (как только AAA сконфигурирован, то он имеет больший приоритет)

Тонкая настройка:

authorization

Проверка прав доступа (полномочий) производится в случаях:

Для определения полномочий определяется список методов определения полномочий и применяется к определенному интерфейсу. Так же как и в случае с аутентификацией, список по имени default применяется к интерфейсу по умолчанию. Прежде , чем конфигурировать авторизацию, необходимо включить AAA на NAS и сконфигурировать аутентификацию, TACACS+, локальную БД пользователей и/или RADIUS сервера.

Методы проверки полномочий

Конфигурация именованного списка методов авторизации
aaa authorization [network | exec | command level | reverse-access ] [имя | default ]{ tacacs+ | if-authenticated | none | local | radius | krb5-instance}

Для аутентифицированных пользователей, зашедших с консольной линии, авторизация не производится.

Привязка поименованного списка методов к линии или интерфейсу (в соответствующем режиме конфигурации):
authorization {arap | commands level | exec | reverse-access} {default | list-name}
или (одновременно определяется список методов авторизации для SLIP)
ppp authorization {default | list-name}

Запретить авторизацию команд конфигурации:
no aaa authorization config-command

Примеры:
═ ═aaa authorization exec default tacacs+ if-authenticated # проверяем права на запуск EXEC (shell так у киски называется) с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена - только благодаря этой строчке tacacs+ сервер возвращает автокоманду (в нашем случае telnet или ppp)
═ ═aaa authorization commands 1 default tacacs+ if-authenticated # проверяем права на исполнение команд уровня 1 (непривилегированных) с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена
═ ═aaa authorization commands 15 default tacacs+ if-authenticated # проверяем права на исполнение команд уровня 15
(привилегированных) с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена
══ aaa authorization network default tacacs+ if-authenticated # проверка прав, если кто-то лезет к нам по сети, с помощью сервера tacacs+, а если его нет, то даем разрешение, если личность пользователя удостоверена

Пример авторизации обратного telnet-a (raccess {} обеспечивает доступ к любому порту, если raccess вообще нет, то и доступа не будет)═:
aaa authorization reverse-access tacacs+

часть конфигурационного файла для tac_plus (внутри описания соответствующего пользователя или группы)
service = raccess {
port#1 = cat1/tty2
port#2 = cat2/tty5
}

accounting

Так же как и для аутентификации и авторизации определяется список методов учета и применяется к определенному интерфейсу или линии. По умолчанию применяется список по имени default. Если примененный список не определен, то учет не производится.

Методы учета:

Типы учитываемых событий:

Объем информации:

Конфигурация именованного списка методов учета:
aaa accounting {system | network | exec | connection | commands level} {default | list-name} {start-stop | wait-start | stop-only | none} [method1 [method2...] ]

Затем применяем определенный ранее метод учета к линии
accounting {arap | exec | connection | commands level} {default | list-name}
или интерфейсу (одновременно определяется список методов авторизации для SLIP)
ppp accounting {default | list-name}

Мелкие настройки:

Посмотреть учетную информацию о текущих сессиях:
show accounting

@ Карта сайта News Автора!

Bog BOS: IOS: AAA (authentication, authorization, accounting), tacacs+, RADIUS

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru