Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

AAA (authentication, authorization, accounting), tacacs+, RADIUS

AAA (authentication, authorization, accounting), tacacs+, RADIUS

Сервер доступа (tacacs+, RADIUS) - это программа, которая крутится на UNIX-компьютере и отвечает на запросы киски типа: есть ли такой пользователь, какие у него права и ведет журнал посещений. Собственно AAA есть authentication (установление личности пользователя), authentication (проверка полномочий) и 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 { default | имя-списка-методов }

Пример:
   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 {chap | pap | chap pap | pap chap | ms-chap } [if-needed] {default | list-name} [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
  • переместить определенную команду на другой уровень (очень удобно для clear line ;)
    privilege mode level level command (где mode - командный режим: exec, configure, interface, line и др.)
  • дать всем пользователям, входящим с определенной линии указанный уровень привилегий (в режиме конфигурации линии)
    privilege level level
  • посмотреть текущий уровень привилегий
    show privilege
  • перейти на другой уровень (в режиме EXEC)
    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

authorization

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

  • 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 ]{ 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. Если примененный список не определен, то учет не производится.

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

  • 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 - ничего не посылать

Конфигурация именованного списка методов учета:
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}

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

  • aaa accounting suppress null-username # не посылать учетные записи, если имя пользователя - пустая строка (aaa authentication login method-list none)
  • aaa accounting update {newinfo | periodic number} # регулярно посылать учетную информацию при изменениях/периодически (ранее по умолчанию посылались update newinfo)

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



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте