На днях столкнулся с задачей подружить коммутаторы huawei с freeradius серверами которые используется для централизованного хранения учетных записей. Попробуем разобраться как это сделать.
RADIUS (Remote Authentication Dial In User Service) - сетевой протокол описанный в стандартах RFC 2865 и RFC 2866, предназначенный для обеспечения централизованной аутентификации, авторизации и учёта (Authentication, Authorization, Accounting) пользователей, подключающихся к различным сетевым службам.
В моем случае задача сводиться к настройке только аутентификации для доступа пользователей к оборудованию например через telnet или ssh.
Настройка аутентификации через RADIUS сервер на оборудование huawei
настройка будет проходить в несколько этапов:
1. Создадим шаблон с названием "rad-serv".
2. Зададим в шаблоне данные для доступа к нашим радиус серверам (shared-key, ip основного и резервного сервера, порт).
3. Добавим в секцию "ааа" аутентификацию через radius используя при этом настройки из шаблона "rad-serv".
Для удобства приведу готовый шаблон в виде команд для настройки основного и резервного radius серверов на оборудование huawei
sys radius-server template rad-serv radius-server shared-key cipher rad-sk radius-server authentication xx.xx.xx.xx 1812 radius-server authentication yy.yy.yy.yy 1812 radius-server retransmit 2 undo radius-server user-name domain-included quit aaa authentication-scheme default authentication-mode local radius domain default_admin radius-server rad-serv quit quit quit save y
Описание входных параметров:
rad-sk - ваш shared-key для radius server.
rad-serv - название шаблона.
xx.xx.xx.xx - ip адрес основного radius сервера.
yy.yy.yy.yy - ip адрес резервного radius сервера.
Шаблон составлен таким образом, что достаточно подставить свои параметры и скопировав строки закинуть их на huawei через cli. В шаблоне добавлены команды sys, quit и save для перехода межу режимами конфигурирования и сохранения настроек.
Если у вас на оборудование huawei управление вынесено в отдельный VRF (например VRF_MGMT), то добавляем при указании ip адресов доступность через эту vpn:
radius-server authentication xx.xx.xx.xx 1812 vpn-instance VRF_MGMT radius-server authentication yy.yy.yy.yy 1812 vpn-instance VRF_MGMT
Для просмотра настроек шаблона radius воспользуемся командой:
display current-configuration configuration radius # radius-server template rad-serv radius-server shared-key cipher %^%#01<S-G6DSliAlX'F|7/SRlmFkEy$(fR`.RM$6b!%^%# radius-server authentication xx.xx.xx.xx 1812 weight 80 radius-server authentication yy.yy.yy.yy 1812 weight 80 radius-server retransmit 2 undo radius-server user-name domain-included
Для просмотра настроек секции aaa воспользуемся командой:
display current-configuration configuration aaa # aaa authentication-scheme default authentication-mode local radius authorization-scheme default accounting-scheme default domain default domain default_admin radius-server rad-poptus
На этом настройка radius на оборудование huawei завершена, однако при заходе на железку под пользователем заведенным на radius сервере (в моем случае это freeradius) обнаружил, что нет прав на изменение настроек.
Давайте попробуем и в этом разобраться.
Настройка FreeRadius для работы с оборудованием huawei
Полную процедуру настройки freeradius в данной статье описывать не буду т.к. это большая тема для отдельного материала. Опишу лишь нюансы относящиеся к нашей теме. Вообщем начнем по порядку.
1.Надо закачать словарь для оборудования huawei на сервер с freeradius.
В моем случае все словари находятся в /usr/share/freeradius/dictionary.huawei
Путь к словарю задается в файле /etc/freeradius/dictionary
# The filename given here should be an absolute path. $INCLUDE /usr/share/freeradius/dictionary
Вот пример содержания словаря.
############################################################ # Dictionary for Huawei. See also dictionary.h3c # $Id$ ############################################################ VENDOR Huawei 2011 BEGIN-VENDOR Huawei ... ATTRIBUTE Huawei-Connect-ID 26 integer ATTRIBUTE Huawei-PortalURL 27 string ATTRIBUTE Huawei-FTP-Directory 28 string ATTRIBUTE Huawei-Exec-Privilege 29 integer ATTRIBUTE Huawei-IP-Address 30 integer ...
Нас интересует строчка отвечающая за передачу привилегий пользователя. Выглядит она вот так: Huawei-Exec-Privilege.
2.Теперь добавим в файл "/etc/freeradius/users" отвечающий за настройку пользователей radius, параметр "Huawei-Exec-Privilege = 15", где число 15 это максимальный уровень привилегий на оборудование huawei.
# USER FOR RADIUS usrrad MD5-Password :="aaa6dfk7y7dghh1937ef8605f4ef5" Service-Type = Administrative-User, Huawei-Exec-Privilege = 15
3. Перезапустим freeradius.
$ sudo service freeradius restart
На этом настройка freeradius завершена.
Однако есть один нюанс со словарем.
Если читать официальную документацию huawei то обнаруживаем запись строчку.
Huawei proprietary RADIUS attributes Attribute No. Attribute Name Attribute Type Description 26-29 HW-Exec-Privilege integer Management user (such as Telnet user) priority, ranging from 0 to 16. The value 16 indicates that the user does not have the administrator rights
Получается что атрибуты в документации huawei (HW-Exec-Privilege) и атрибуты в скаченном словаре для freeradius (Huawei-Exec-Privilege) отличаются. Скорее всего у меня просто стоит старый словарь. Сам huawei не знает атрибута "Huawei-Exec-Privilege".
display radius-attribute name HW-Exec-Privilege Radius Attribute Type : 26-29HUAWEI Radius Attribute Name : HW-Exec-Privilege Radius Attribute Description : Telnet user's exec privilege (0~15). Supported Packets : Auth Accept display radius-attribute name Huawei-Exec-Privilege Info: This attribute does not support.
На самом деле это совсем не мешает работе протокола radius т.к. протокол передает не "Attribute Name" а номер атрибута.
На этом все. Нам удалось прикрутить коммутаторы huawei к freeradius серверу. Комментируем, подписываемся ну и всем пока:)
Компонент комментариев CComment