Сервер доступа (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 ] ═.
Методы при проверке на входе бывают следующие:
- tacacs+ — использовать сервер TACACS+
- none — удостоверять личность без проверки
- enable — использовать пароль администратора (enable password) для проверки личности
- krb5 — использовать сервер Kerberos 5
- krb5-telnet — использовать сервер Kerberos 5 соединяясь с ним через telnet
- line — использовать пароль, привязанный к линии
- local — использовать локальную БД имен
- radius — использовать сервер RADIUS
Для использования сервера kerberos необходимо иметь версию IOS с поддержкой шифровки.
Применить список методов к линии(ям):
- line тип-линии номер-линии [конечный-номер-линии-из-интервала]
- login authentification
Пример:
═ ═ 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 на интерфейсе):
- interface тип-интерфейса номер-интерфейса
- ppp authentication
[if-needed] [callin] [ one-time ]
Методы при проверке личности во время установления PPP-соединения бывают следующие:
- tacacs+ — использовать сервер TACACS+
- radius — использовать сервер RADIUS
- none — удостоверять личность без проверки
- local — использовать локальную БД имен
- krb5 — использовать сервер Kerberos 5
- if-needed — не делать проверку, если она уже была произведена при входе на линию
Пример:
═ ═ aaa authentication ppp default if-needed none # при включении PPP, производим фиктивную проверку пользователя, если не проверяли его раньше ( может это уже можно выключить? ), т.к. используется имя default , то сами интерфейсы конфигурировать не надо.
Проверка личности при переходе в привилегированный режим:
═ ═ aaa authentication enable default метод1 [ метод2 ] ═.
Методы при проверке личности при входе в привилегированный режим:
- enable — использовать пароль администратора (enable password) для проверки личности
- line — использовать пароль, привязанный к линии
- none — удостоверять личность без проверки
- tacacs+ — использовать сервер TACACS+
- radius — использовать сервер RADIUS
Бывает еще двойная проверка ( access-profile, ip trigger-authentication , show ip trigger-authentication , clear ip trigger-authentication ) и автоматическая двойная проверка, но это какакя-то муть.
Аутентификация без AAA (как только AAA сконфигурирован, то он имеет больший приоритет)
- установление пароля на линию (в режиме конфигурации линии), до 80 букв и цифр (должен начинаться с буквы):
password пароль
login - проверка имени пользователя (в глобальном режиме конфигурации, password и autocommand д.б. последними в строке, можно использовать несколько строк на одно имя — информация будет накапливаться), используется также для CHAP (чтобы отвечать на CHAP-запросы имя должно соответствовать имени хоста, на удаленном хосте это имя тоже д.б. определено с тем же секретом):
username имя [ nopassword | password тип-шифровки пароль | password пароль ] [ callback-dialstring номер-телефон а] ═[ callback-rotary номер-группы-rotary ] [ callback-line [ tty ] line-number [ ending-line-number ]] [ access-class номер-ACL ] [ privilege уровень ] [ autocommand команда ] [ noescape ] [ nohangup ]
Что касается длин имени и пароля: безопасным является использование имен и паролей длиной до 8 символов включительно. Более длинные имена и пароли (якобы до 25 символов, буквы и цифры и пробелы, первый символ — буква) обрабатываются по-разному в разных версиях IOS. CHAP секрет — до 11 символов. tac_plus пароль, шифрованный с помощью crypt — до 8 символов. - установка пароля на привилегированные команды
enable [ secret ] [ level уровень-привилегий ] < password | encryption-type encrypted-password >
рекомендуется использовать опцию secret (пароль будет храниться в шифрованном виде). Первый уровень привилегий дается каждому пользователю при входе по умолчанию, 15 уровень — режим суперпользователя, команды изменения уровня ( enable , disable , exit , help ) находится на нулевом уровне. encryption-type:
- 7 (для enable без secret , собственный алгоритм шифрования, есть программа декодирования)
- 5 (для enable secret , необратимое шифрование)
- 0 (незашифрованный текст)
service password-encryption
privilege mode level level command (где mode — командный режим: exec, configure, interface, line и др.)
privilege level level
show privilege
enable уровень
Тонкая настройка:
- aaa authentication local-override # позволяет использовать локальную базу пользователей перед обращением к другим методам, но такие пользователи получаются абсолютно бесправными (даже EXEC не могут запустить, т.к. не проходят авторизацию).
- timeout login response seconds # сколько секунд IOS будет ждать ввода имени или пароля (30 секунд, есть еще количество попыток)
- aaa authentication password-prompt text-string (если он не заменен внешним сервером)
- aaa authentication username-prompt text-string (если он не заменен внешним сервером)
- aaa authentication banner delimiter string delimiter
- aaa authentication fail-message delimiter string delimiter
- аутентификация при выходных звонках или когда дозвонившийся тоже хочет убедиться, что попал куда хотел (PAP)
ppp pap sent-username username password password - отказаться отвечать на запросы CHAP (но выдавать такие запросы самому)
ppp chap refuse [callin] - отвечать на запросы CHAP только после того, как собеседник представится (действует по умолчанию)
ppp chap wait secret - выдавать себя за указанный хост (по умолчанию посылается собственное имя NAS) для соседей, имя которых не найдено в списке пользователей
ppp chap hostname hostname - определить секретное слово (до 11 символов) для CHAP для соседей, имя которых не найдено в списке пользователей
ppp chap password secret - количество попыток (по умолчанию 3)
tacacs-server attempts count
Проверка прав доступа (полномочий) производится в случаях:
- exec (атрибуты терминальной сессии)
- command (проверка прав на исполнение команд, в т.ч. конфигурации)
- network (соединение PPP, SLIP, ARAP)
- reverse access (для обратного telnet, установление личности потребуется в любом случае), только tacacs+ или radius
Для определения полномочий определяется список методов определения полномочий и применяется к определенному интерфейсу. Так же как и в случае с аутентификацией, список по имени default применяется к интерфейсу по умолчанию. Прежде , чем конфигурировать авторизацию, необходимо включить AAA на NAS и сконфигурировать аутентификацию, TACACS+, локальную БД пользователей и/или RADIUS сервера.
Методы проверки полномочий
- tacacs+ — использовать сервер TACACS+ для получения AV пар с полномочиями
- if-authenticated — все аутентифицированные пользователи получают полномочия
- none — полномочия не проверяются
- local — используется локальная BD, определяемая командами username (только небольшая часть возможностей доступна)
- radius
- kerberos instance map
Конфигурация именованного списка методов авторизации
aaa authorization [ network | exec | command level | reverse-access ] [ имя | default ]
Для аутентифицированных пользователей, зашедших с консольной линии, авторизация не производится.
Привязка поименованного списка методов к линии или интерфейсу (в соответствующем режиме конфигурации):
authorization < arap | commands level | exec | reverse-access >< default | list-name >
или (одновременно определяется список методов авторизации для SLIP)
ppp authorization
Запретить авторизацию команд конфигурации:
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 . Если примененный список не определен, то учет не производится.
Методы учета:
- tacacs+ — AV пары учета посылаются на tacacs+ сервер
- radius — AV пары учета посылаются на RADIUS сервер
Типы учитываемых событий:
- network — PPP, SLIP и ARAP сессии, включают счетчики байт и пакетов
- exec — учет терминальных EXEC-сессий
- command — учет отдельных команд?
- connection — учет информации о исходящих соединениях (telnet, rlogin, LAT, TN3270, PAD)
- system — события системного уровня (только default список и только tacacs+)
Объем информации:
- stop-only — посылается информация только о завершении события
- wait-start — посылается информация о начале события и о его завершении, ожидается подтверждение от TACACS+ или RADIUS сервера о получении этой информации (необходим, если нужен учет максимального числа одновременных сессий в tac_plus)
- start-stop — посылается информация о начале события и о его завершении
- none — ничего не посылать
Затем применяем определенный ранее метод учета к линии
accounting < arap | exec | connection | commands level >< default | list-name >
или интерфейсу (одновременно определяется список методов авторизации для SLIP)
ppp accounting
Мелкие настройки:
- aaa accounting suppress null-username # не посылать учетные записи, если имя пользователя — пустая строка ( aaa authentication login method-list none )
- aaa accounting update < newinfo | periodic number># регулярно посылать учетную информацию при изменениях/периодически (ранее по умолчанию посылались update newinfo )
Посмотреть учетную информацию о текущих сессиях:
show accounting
Bog BOS: IOS: AAA (authentication, authorization, accounting), tacacs+, RADIUS
CCNP [Sec, DA] :: CCIE SP
воскресенье, 3 февраля 2013 г.
Статья для информации. Честно стырено отсюда
http://www.wellit.ru/reference/20.html
Authentication, Authorization, and Accounting (AAA) — Аутентификация, авторизация и акаутинг.
Аутентификация (Authentication) — предоставляет методы идентификации пользователей, включающие диалог "логин-пароль", вызовы и ответы, различные сообщения, зависящие от метода выбранного шифрования.
Авторизация (Authorization) — предоставляет методы для удалённого доступа, включающие одновременную авторизацию или авторизацию для каждого сервиса, пользовательские аккаунты и профили, пользовательские группы, поддержку IP, IPX, ARA и Telnet.
Аккаунтинг (Accounting) — служит для сбора и отправки информации на сервер. Используется для биллинга, аудита и отчётности. Может включать следующую информацию: идентификация пользователей, время остановки и запуска, запуск выполняемых команд (таких как PPP), число пакетов и количество байт.
Обзор конфигурации AAA
2. Если Вы решите использовать расширенные возможности security сервера, то сможете настроить использование параметров security протоколов, таких как RADIUS, TACACS+, или Kerberos.
3. Определите методы списков для аутентификации используя команду
aaa authentication .
4. Примените методы списков к отдельным интерфейсам или line, если это потребуется.
5. (Опционально) Настройте авторизацию, используя команду
aaa authorization .
6. (Опционально) Настройте аккаутинг, используя команду
aaa accounting .
Конфигурация Аутентификации.
Рассмотрим методы аутентификации:
1) Настройка Login аутентификации используя AAA
Выполняйте следующие команды в режиме глобального конфигурирования:
Router(config)# aaa new-model (Включение ААА)
Router(config)# aaa authentication login
Router(config)# line [aux | console | tty | vty] line-number [ending-line-number] (Вносит виды конфигурации line для списков аутентификации)
Router(config-line)# login authentication
Список поддерживаемых методов аутентификации при настройке login
enable Используется пароль enable для аутентификации.
krb5 Используется Kerberos 5 для аутентификации.
krb5-telnet Используется Kerberos 5 Telnet протокол аутентификации, когда используется Telnet для подключения к роутеру. Если выбрана эта аутентификация, то данный метод должен быть первым в списке методов аутентификации.
line Используется пароль line для аутентификации.
local Используется локальная база данных пользователей для аутентификации.
local-case Используется чувствительная к регистру локальная база данных пользователей для аутентификации.
none Не использовать аутентификацию.
group radius Использовать список всех RADIUS серверов для аутентификации.
group tacacs+ Использовать список всех TACACS+ серверов для аутентификации.
group group-name Использовать подмножество RADIUS или TACACS+ серверов для аутентификации, которая определена группой ааа radius сервера или группой сервера tacacs+
Примеры настройки видов аутентификации при методе login
Login аутентификация с использованием пароля Enable
aaa authentication login default enable
Login аутентификация с использованием пароля Kerberos
aaa authentication login default krb5
Login аутентификация с использованием пароля Line
aaa authentication login default line
Login аутентификация с использованием пароля Default
aaa authentication login default local
Login аутентификация с использованием группы RADIUS
aaa authentication login default group radius
Login аутентификация с использованием группы TACACS+
aaa authentication login default group tacacs+
Login аутентификация с использованием группы group-name
aaa group server radius loginrad
server 172.16.2.3
server 172.16.2 17
server 172.16.2.32
Настройка PPP аутентификации Используя AAA
Router(config)# aaa new-model (Объявление ААА в глобальной конфигурации)
Router(config)# aaa authentication ppp
(Создание локального списка аутентификации)
Router(config)# interface interface-type interface-number (Выбор интерфейса для сопоставления списка аутентификации)
Router(config-if)# ppp authentication
Список методов аутентификации для метода PPP
if-needed Не аутентифицировать, если пользователь уже аутентифицировался на TTY line.
krb5 Использовать Kerberos 5 для аутентификации (может быть использовано только с PAP аутентификацией)
local Использовать локальную базу данных пользователей для аутентификации.
local-case Использовать чувствительную к регистру локальную базу данных пользователей для аутентификации.
none Не использовать аутентификацию
group radius Использовать список всех RADIUS серверов для аутентификации.
group tacacs+ Использовать список всех TACACS+ серверов для аутентификации.
group group-name Использовать подмножество RADIUS или TACACS+ серверов для аутентификации, которая определена группой ааа radius сервера или группой сервера tacacs+
Более подробно методы аутентификации описаны на сайте производителя.
Авторизация: краткий обзор
Список названий методов для авторизации:
Auth-proxy — применяется на специфичных политиках безопасности относящихся к пользователям.
Commands — применяется для EXEC режима пользовательского диалога, включает команды глобального конфигурирования ассоциированная с различными типами уровней привилегий.
EXEC — применяется к командам ассоциированными с EXEC пользовательскими терминальными сессиями.
Network — применяется к сетевым подключениям. Может включать PPP, SLIP, или ARAP соединения.
Reverse Access — применяется к reverse Telnet сессиям.
Методы AAA авторизации
- TACACS+ — Сервер сетевого доступа, обменивающийся информацией об авторизации с TACACS+ security демоном. TACACS+ авторизовывает определёнными специфическими правами для пользователей с помощью ассоциированных атрибутов, пар атрибут-значение, которые хранятся в базе TACACS+ security сервера, с соответствующими пользователями.
- If-Authenticated — Пользователю открывается доступ к определённым функциям, если аутентификация прошла успешно.
- None — Сетевой сервер доступа не запрашивает запроса об авторизации; авторизация не применяется к line интерфейсу.
- Local — Роутер или сервер доступа обращается к локальной базе, как к определённой пользовательской команде, например, специфической авторизации прав пользователей. Только определённые функции могут быть ограничены с помощью локальной базы данных.
- RADIUS — Сервер сетевого доступа запрашивает информацию об авторизации от RADIUS security сервера. RADIUS авторизует определённые специфические права для пользователей с помощью ассоциированных атрибутов, которые хранятся в базе данных RADIUS сервера, с соответствующим пользователем.
Типы AAA авторизации:
Auth-proxy — применяется при специфичных политиках безопасности относящихся к пользователям.
Commands — применяется для EXEC режима пользовательского диалога, включает команды глобального конфигурирования, ассоциированными с различными типами уровней привелегий.
EXEC — применяется к командам, асоциированными с EXEC пользовательскими терминальными сессиями.
Network — применяется к сетевым подключениям. Может включать PPP, SLIP или ARAP соеденения.
Reverse Access — применяется к reverse Telnet сессиям.
Configuration — разрешается загрузка конфигураций с AAA сервера.
IP Mobile — разрешается авторизация для мобильных IP-сервисов.
Более подробно о методах и настройке авторизации можно прочитать на сайте производителя.
Аккаутинг. Краткий обзор:
Список методов аккаутинга:
- Network — предоставляет информацию по всем PPP, SLIP или ARAP сессиям, включает счетчик пакетов и байтов.
- EXEC — предоставляет информацию о пользовательских EXEC terminal сессиях для сетевого сервера доступа.
- Commands — предоставляет информацию о режимах EXEC команд вводимых пользователем. Command accounting генерирует все записи команд для всех EXEC режимов, включая команды глобального конфигурирования, ассоциированные с определённым уровнем доступа.
- Connection — предоставляет информацию обо всех исходящих соединениях сервера сетевого доступа, таких как Telnet, local-area transport (LAT), TN3270, пакетов assembler/disassembler (PAD), и rlogin.
- System — предоставляет информацию о сообщения системного уровня.
- Resource — показывает "start" и "stop" записи всех звонков, которые были пропущены пользовательской аутентификацией, и предоставляет "stop" записи для всех вызовов об ошибках аутентификации.
Автор: privilege15 от 20 Май 2009 . в разделе Справочник
AAA – Authentication, Authorization and Accounting, функция, которая представляет собой комплексную структуру организации доступа пользователя в сеть. За ней, собственно, кроются такие базовые процессы, как:
- Аутентификация, где система предлагает пользователю ввести свое имя и пароль, прежде чем позволить ему совершать дальнейшие действия.
- Авторизация. Успешно пройдя аутентификацию, система авторизует пользователя в сети, наделяя его теми полномочиями, которые соотносятся с его учетной записью (именем и паролем).
- Учет. Отвечает за сбор информации об учетной записи пользователя и отправке ее на сервер, хороший тому пример — биллинг интернет-провайдера.
Для активации AAA, в режиме глобальной конфигурации достаточно набрать aaa new-model.
Будьте осторожны, если вы не успели создать на оборудовании хотя бы одного пользователя User с паролем, то при попытке зайти на устройство, система запросит имя и пароль, даже если его еще не существует.
Зададим инструкцию командой aaa authentication login default local, которая позволит использовать локальную базу данных для аутентификации.
Теперь нам необходимо уточнить, где именно применять данное действие. Для этого мы пропишем команду login authentication default в режиме конфигурации интерфейса console и VTY.
Посредством обращения к локальной базе данных, авторизация осуществляется аналогичным методом, командой aaa authorization exec default local и прописывается командой authorization exec default в console и VTY. Чтобы авторизация возымела действие на консоли, в режиме глобальной конфигурации необходимо добавить команду aaa authorization console.






