Получение привилегированного доступа через RADIUS¶
Настройка обеспечивает получение пользователем заданного уровня привилегий (Privilege Level) на коммутаторах серии CIT L3200 непосредственно при аутентификации через сервер RADIUS, без необходимости вводить дополнительный пароль команды enable. Функция применяется в сценариях централизованного управления правами доступа, когда уровень привилегий каждого оператора определяется политиками RADIUS-сервера.
Типовые сценарии применения:
- Предоставление операторам NOC уровня привилегий 8 (operators) для мониторинга без права изменения конфигурации.
- Предоставление администраторам уровня привилегий 15 (admin) для полного управления коммутатором через SSH.
- Разграничение доступа для нескольких групп инженеров в рамках единой инфраструктуры AAA.
- Аварийный вход с уровнем 15 при недоступности RADIUS-сервера (fallback на локальную аутентификацию).
- Аудит и учет сессий с фиксацией уровня привилегий, полученного каждым пользователем.
Необходимые условия и предварительные требования¶
Для выполнения настройки необходимо:
- Режим доступа: Privileged EXEC (уровень 15) или режим Global config – для внесения изменений в конфигурацию AAA и line.
- Минимальная версия ПО: 5.3.0 и выше.
- Доступ к серверу FreeRADIUS версии 3.x с правами на редактирование файла словаря.
- Сетевая связность между коммутатором и RADIUS-сервером (UDP-порты 1812 и 1813).
Текущие ограничения:
- Атрибут
ITLook-Exec-Privilege(VSA Vendor ID 3087, subtype 16) является проприетарным VSA (Vendor-Specific Attribute) платформы CIT L3200 и не совместим со стандартным словарем FreeRADIUS. Стандартный словарь FreeRADIUS (Vendor ID 27975, subtype 1) не поддерживается – при его использовании коммутатор не распознает атрибут. Атрибуты Cisco (Cisco-AVPair = "shell:priv-lvl=15") также не поддерживаются. - Настройка выполняется одновременно на коммутаторе (CIT L3200) и на сервере FreeRADIUS. Обе части конфигурации обязательны.
Note
Примечание: команды show running-config и show who не изменяют конфигурацию устройства и могут выполняться в режиме Privileged EXEC без риска для работающей сети.
Основная информация о применяемых технологиях¶
AAA (Authentication, Authorization, Accounting)¶
AAA – фреймворк централизованного контроля доступа. На коммутаторах CIT L3200 AAA управляет:
- Authentication – проверкой подлинности пользователя при входе (
login) и при переходе в привилегированный режим (enable). - Authorization – определением разрешенных действий после успешной аутентификации (в том числе уровня привилегий).
- Accounting – учетом сессий и выполненных команд.
RADIUS и VSA (Vendor-Specific Attribute)¶
RADIUS – протокол сетевой аутентификации, работающий по UDP. Для передачи платформо-специфичных параметров, не входящих в стандарт RFC 2865, используется механизм VSA. Каждый производитель регистрирует собственный Vendor ID в реестре IANA. Коммутаторы CIT L3200 ожидают уровень привилегий в атрибуте VSA с параметрами:
- Vendor ID: 3087 (ITLook)
- Subtype: 16
- Тип данных: integer
Именно эти параметры необходимо задать в словаре FreeRADIUS, поскольку стандартный словарь (Vendor ID 27975, subtype 1) платформой не принимается.
Назначение применяемых команд и конфигурации¶
| Команда | Режим | Назначение |
|---|---|---|
radius-server <name> ip-address <ip> key <key> |
config-aaa | Регистрирует RADIUS-сервер с указанием IP-адреса и общего секретного ключа |
server-group <name> radius-server <server> |
config-aaa | Создает группу серверов AAA и связывает с ней RADIUS-сервер |
aaa authentication login method <name> server-group <grp> local |
config-aaa | Определяет метод аутентификации при входе (login): сначала RADIUS, затем локально |
aaa authentication enable method <name> server-group <grp> local |
config-aaa | Определяет метод аутентификации для перехода в режим enable |
aaa authorization method <name> server-group <grp> local |
config-aaa | Определяет метод авторизации (получение уровня привилегий от RADIUS) |
aaa accounting login method <name> server-group <grp> |
config-aaa | Включает учет (accounting) сессий входа |
login authentication aaa method <name> auth-type pap |
config-line | Привязывает метод аутентификации к линии (console / vty), тип PAP |
enable authentication aaa method <name> |
config-line | Привязывает метод аутентификации enable к линии |
login authorization aaa method <name> |
config-line | Привязывает метод авторизации к линии vty |
login accounting aaa method <name> |
config-line | Привязывает метод учета к линии vty |
show who |
Privileged EXEC | Отображает активные сессии и уровни привилегий подключенных пользователей |
show running-config |
Privileged EXEC | Отображает текущую конфигурацию устройства |
show logbuffer |
Privileged EXEC | Отображает буфер системных сообщений (syslog) |
Конфигурация выполняется в следующем порядке: сначала регистрируются RADIUS-серверы и создаются группы и методы AAA в узле config-aaa, затем методы привязываются к конкретным линиям доступа (line console, line vty). Параллельно на RADIUS-сервере добавляется словарь VSA с корректными параметрами Vendor ID и subtype.
Пример конфигурирования¶
Схема соединений¶
Коммутатор SW1 является NAS (Network Access Server). Клиентская машина подключается по SSH к управляющему IP-адресу коммутатора. RADIUS-сервер развернут на той же машине, с которой выполняется SSH-подключение (192.168.1.3).
Начальное состояние¶
На коммутаторе SW1 заданы: hostname, IP-адрес управления 192.168.1.20/16 на interface vlan 1, локальный пользователь root группы administrators. AAA не настроена. На RADIUS-сервере запущен FreeRADIUS 3.2.x в Docker, файл словаря /usr/share/freeradius/dictionary.centec присутствует в стандартной поставке, файл пользователей расположен по пути /etc/freeradius/mods-config/files/authorize (либо users в зависимости от конфигурации).
Пошаговые инструкции¶
Часть 1. Настройка RADIUS-сервера (FreeRADIUS)¶
Шаг 1: Редактирование словаря VSA для CIT L3200
Открыть файл словаря на RADIUS-сервере:
Заменить содержимое блока Centec на следующее:
Ключевые изменения по сравнению со стандартным словарем FreeRADIUS:
VENDOR ... 27975→3087(Vendor ID изменен на ITLook – именно этот ID ожидает коммутатор CIT L3200).- Номер атрибута
1→16(subtype, по которому коммутатор идентифицирует атрибут привилегий).
Note
Примечание: путь к словарю может отличаться в зависимости от версии и способа развертывания FreeRADIUS. В Docker-контейнере словарь, как правило, монтируется из хостовой системы или расположен внутри контейнера по пути /usr/share/freeradius/. Файл необходимо скопировать в правильное место до перезапуска сервиса.
Шаг 2: Добавление пользователя с атрибутом привилегий
Открыть файл пользователей RADIUS (путь зависит от конфигурации, обычно /etc/freeradius/mods-config/files/authorize или users):
Добавить запись пользователя:
Атрибут ITLook-Exec-Privilege = 15 передается в ответе RADIUS как VSA (Vendor ID 3087, subtype 16) со значением 15. Коммутатор интерпретирует это значение как уровень привилегий, присваиваемый пользователю при входе. Значение 15 соответствует полному административному доступу; допускается указание любого уровня от 1 до 15.
Note
Примечание: название атрибута в файле пользователей (ITLook-Exec-Privilege) является псевдонимом (alias), определенным в словаре. Фактически в пакете RADIUS передается VSA с Vendor ID 3087 и subtype 16. Если псевдоним не определен в словаре, допускается использование формата Centec-Exec-Privilege = 15 при условии корректно настроенного словаря.
Шаг 3: Перезапуск FreeRADIUS
Убедиться в отсутствии ошибок при запуске – в выводе должна присутствовать строка:
Часть 2. Настройка коммутатора CIT L3200 (SW1)¶
Шаг 4: Переход в режим глобальной конфигурации
Выполняется вход в режим Privileged EXEC, затем переход в режим глобальной конфигурации. Все последующие команды вводятся из режима config или его подрежимов.
Шаг 5: Переход в узел конфигурации AAA и регистрация RADIUS-сервера
Команда radius-server регистрирует сервер с именем RADIUS1, IP-адресом и общим секретным ключом (key). Команда server-group объединяет зарегистрированный сервер в группу RADIUS_GROUP, которая впоследствии используется в методах AAA. IP-адрес и ключ необходимо заменить на актуальные значения для конкретной инсталляции.
Шаг 6: Создание методов AAA
Создаются четыре метода AAA:
RADIUS_LOGIN– аутентификация при входе через PAP, с fallback на локальную базу.RADIUS_ENABLE– аутентификация при переходе в привилегированный режим.RADIUS_AUTH– авторизация (получение уровня привилегий от RADIUS через VSA).RADIUS_ACCT– учет сессий.
Note
Примечание: ключевое слово local в конце строк authentication и authorization обеспечивает резервную аутентификацию по локальной базе при недоступности RADIUS-сервера. Для метода accounting резервный механизм не предусмотрен.
Шаг 7: Выход из узла AAA
Шаг 8: Привязка методов AAA к линии VTY (SSH/Telnet)
Команды привязывают созданные методы AAA к диапазону виртуальных терминальных линий 1–32. Параметр auth-type pap указывает на использование протокола PAP для передачи учетных данных на RADIUS-сервер. Метод login authorization обеспечивает получение уровня привилегий (VSA) из ответа RADIUS после успешной аутентификации.
Шаг 9: (Опционально) Привязка методов AAA к консольной линии
Если требуется RADIUS-аутентификация на консоли:
Риск потери доступа
Внимание: при привязке RADIUS к консольной линии в случае недоступности RADIUS-сервера вход будет возможен только через fallback (local). Рекомендуется проверить наличие локального пользователя с уровнем 15 до применения этой настройки.
Шаг 10: Сохранение конфигурации
Полный вывод выполненных конфигураций¶
Устройство SW1 (коммутатор CIT L3200):¶
Note
Примечание: поле key в выводе show running-config отображается в зашифрованном виде (алгоритм $9$). Вводить ключ при настройке следует в открытом виде – коммутатор выполнит его шифрование автоматически.
RADIUS-сервер – файл словаря /usr/share/freeradius/dictionary.centec:¶
RADIUS-сервер – запись пользователя (файл authorize / users):¶
Изучение состояния устройства¶
SW1 – проверка активных сессий командой show who¶
После подключения пользователя по SSH выполнить:
Столбец Pri отображает текущий уровень привилегий пользователя. Столбец Orig-Pri – изначально назначенный уровень. Если оба поля показывают admin(15), коммутатор корректно получил VSA от RADIUS-сервера и присвоил уровень привилегий непосредственно при аутентификации, без ввода команды enable.
Пример при неправильно настроенном словаре (уровень не передается):
Уровень guests(1) означает, что коммутатор не получил или не распознал атрибут ITLook-Exec-Privilege. В этом случае необходимо проверить корректность словаря FreeRADIUS (Vendor ID и subtype).
SW1 – просмотр системного журнала командой show logbuffer¶
Сообщение CLI-LOGIN: successfully log on подтверждает успешную аутентификацию. Сообщение lastlog_openseek: /var/log/lastlog is not a file or directory является информационным и не влияет на работу функции – оно связано с отсутствием файла lastlog в среде выполнения и может быть проигнорировано.
Note
Примечание: в текущей версии ПО (5.3.0) в системном журнале не фиксируется, какой именно уровень привилегий был получен от RADIUS. Единственным способом проверки назначенного уровня является команда show who.
Рекомендации по выполнению команд и настроек¶
Порядок применения
Порядок применения. Конфигурацию словаря RADIUS-сервера необходимо выполнить и проверить до привязки методов AAA к линиям коммутатора. Если сначала применить настройки на коммутаторе, а словарь остается некорректным, пользователи будут получать уровень guests(1) вместо ожидаемого.
Проверка словаря
Проверка словаря. Перед перезапуском FreeRADIUS рекомендуется выполнить синтаксическую проверку:
Вывод не должен содержать ошибок, связанных с файлом dictionary.centec.
Резервная аутентификация
Резервная аутентификация. Ключевое слово local в методах authentication и authorization обеспечивает вход при недоступности RADIUS-сервера. Локальный пользователь с уровнем привилегий 15 должен существовать на коммутаторе до применения AAA-конфигурации. В противном случае при недоступности RADIUS-сервера вход станет невозможным.
Метод enable на консольной линии
Метод enable на консольной линии. При тестировании рекомендуется первоначально оставить консольную линию (line console 1) с локальной аутентификацией (login authentication local), привязав RADIUS только к VTY-линиям. Это позволит сохранить аварийный доступ на случай ошибки в настройках.
Совместимость словаря
Совместимость словаря. Стандартный словарь FreeRADIUS dictionary.centec (Vendor ID 27975, subtype 1), поставляемый с FreeRADIUS 3.x из коробки, не поддерживается коммутаторами CIT L3200. Атрибуты Cisco (Cisco-AVPair = "shell:priv-lvl=15") также не принимаются. Необходимо использовать исключительно описанный VSA (Vendor ID 3087, subtype 16).
Уровни привилегий
Уровни привилегий. На коммутаторах CIT L3200 доступны уровни 1–15. Уровень 15 соответствует группе administrators (полный доступ). Уровень 8 – группе operators. Уровень 1 – группе guests (только команды просмотра). Соответствие уровней группам определяется конфигурацией устройства и может быть изменено.
История возникновения команды¶
Версия ПО
Поддержка получения уровня привилегий через RADIUS VSA (Vendor ID 3087, subtype 16) реализована в программном обеспечении коммутаторов серии CIT L3200 начиная с версии 5.3.0.
Настройка выполнена на версии ПО 5.3.0.
Ссылка на внешнюю документацию¶
Стандарт
Применимые стандарты:
RFC 2865 (RADIUS)
RFC 2866 (RADIUS Accounting)
RFC 2868 (RADIUS Attributes for Tunnel Protocol Support).