Авторизация и аутентификация с помощью RADIUS
RADIUS - протокол для реализации аутентификации, авторизации и сбора сведений об использованных ресурсах, разработанный для передачи сведений между центральной платформой и оборудованием.
С помощью протокола RADIUS можно организовать централизованную систему авторизации и аутентификации сотрудников, которым для проведения диагностики или настройки оборудования необходим доступ на коммутаторы. Таким образом значительно упрощается сопровождение большого количества коммутаторов и постоянно обновляющегося списка пользователей.
Данный функционал поддерживается всеми управляемыми коммутаторами SNR.

Настройка RADIUS
Рассмотрим стандартную настройку функционала
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
Для начала необходимо настроить RADIUS-сервер и включить AAA глобально:
radius-server authentication host <ip_addr> key <key> <password>
aaa enable
Если в качестве адреса коммутатора указывается loopback интерфейс, то необходимо применить следующую команду:
radius nas-ipv4 <ip_addr>`
Затем настраиваем аутентификацию пользователей через RADIUS-сервер, при доступе через консольный порт (console), через удаленный терминал (vty), и через WEB:
authentication line console login radius local
authentication line vty login radius local
authentication line web login radius local
Необходимо добавить local после radius, иначе при недоступности RADIUS-сервера аутентификация будет невозможной даже при наличии локальных учетных записей!
Также можно настроить проверку пароля enable через RADIUS-сервер. Это делается командой:
authentication enable radius local
В этом случае на RADIUS-сервере необходимо создать пользователя с логином $enab15$.
Для начала необходимо настроить RADIUS-сервер в режиме глобальной конфигурации:
radius-server host <ip_addr> key <key> <password>
Затем настраиваем аутентификацию пользователей через RADIUS-сервер, при доступе через консольный порт (console) и telnet/ssh (remote):
aaa authentication login remote group radius local
aaa authentication login console group radius local
Необходимо добавить local после radius, иначе при недоступности RADIUS-сервера аутентификация будет невозможной даже при наличии локальных учетных записей!
Также можно настроить проверку пароля enable через RADIUS-сервер. Это делается командой:
aaa authentication enable group radius local
В этом случае на RADIUS-сервере необходимо создать пользователя с логином $enab15$.
Аутентификация включена, теперь при вводе логина и пароля для доступа на коммутатор, данные отправляются на RADIUS-сервер, который отвечает либо подтверждением доступа, либо запретом. Если RADIUS-сервер не отвечает - используется следующий метод аутентификации (в нашей конфигурации локальный).
Если в RADIUS-accept пакете не передавать в атрибутах уровень привилегиий, то реакция коммутаторов разных серий будет отличаться (об этом далее)
- Серии S2xx-S4xxx, S7xxx
- Серия S5xxx
Для серий S2962, S2965, S2982G, S2985G, S2995G и S3850G управление уровнем доступа осуществляется с помощью vendor-specific атрибута, поэтому, в случае если этот атрибут не указан, пользователь попадает в привилегированный режим. Если вам требуется, чтобы некоторые пользователи сразу попадали в режим enable, а другие нет, то таким пользователям следует установить 15 уровень privilege. Прочим пользователям - менее 15 уровня.
Существует два режима авторизации:
-
Стандартный — роль пользователя назначается при авторизации на основе сконфигурированного уровня привилегий для локальных пользователей или переданного уровня привилегий с помощью vendor-specific атрибута через RADIUS/TACACS+ и не меняется при переходе в привилегированный режим
-
Альтернативный — изменяющий поведение коммутатора в процессах AAA:
- Если при RADIUS или TACACS+ авторизации переданный уровень привилегий не соответствует network-admin, то пользователю назначается уровень 1 (network-user);
- При переходе в привилегированный режим и успешной аутентификации роль пользователя повышается до network-admin;
- Пользователи с уровнем привилегий 15 (network-admin) сразу попадают в привилегированный (enable) режим.
Для включения альтернативного режима используется команда aaa alternate-model в режиме глобальной конфигурации.
Передача привилегий пользователя с помощью Vendor-Specific Attribute
Рассмотрим настройку данного функционала на примере RADIUS-сервера на основе пакета freeradius:
В директории freeradius создаем файл (словарь) /usr/share/freeradius/dictionary.snr со следующим содержимым:
VENDOR SNR 40418
BEGIN-VENDOR SNR
ATTRIBUTE SNR-User-Priv 240 integer
END-VENDOR SNR
В конфигурационный файл /usr/share/freeradius/dictionary добавляем созданный нами словарь:
$INCLUDE /usr/share/freeradius/dictionary.snr
В файле /etc/freeradius/users создаем пользователя с необходимым уровнем привилегий (1-15):
user Cleartext-Password := "password"
SNR-User-Priv = 1
В данном случае пользователь 'user' будет авторизован с уровнем привилегий 1.