Описание
В статье будет рассмотрена настройка проксирования RADIUS запросов от ТД через контроллер WLC в NAC систему. ТД является устройством идентификации (NAS клиент), RADIUS запросы будут исходить от ТД. Контроллер WLC выполняет роль посредника в общении ТД и NAC системы.
| draw.io Diagram |
|---|
| border | true |
|---|
| viewerToolbar | true |
|---|
| |
|---|
| fitWindow | false |
|---|
| diagramName | fffff |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| diagramWidth | 1291 |
|---|
| revision | 12 |
|---|
|
Диаграмма взаимодействия
ТД самостоятельное устройство идентификации, возможно несколько схем взаимодействия ТД и RADIUS-сервера:
- Взаимодействие ТД с локальным RADIUS-сервером, настроенным на контроллере WLC;
Список пользователей Wi-Fi хранится в конфигурации контроллера. На контроллере запущен RADIUS-сервер, который выполняет проверку пользователей самостоятельно. Подробное описание в статье Настройка локального RADIUS-сервера - Взаимодействие ТД с внешним RADIUS-сервером.
Список пользователей хранится на внешнем сервере. На контроллере запущен RADIUS-сервер, который выполняет проксирование RADIUS запросов на вышестоящий сервере.
В статье описана настройка контроллера для проксирования RADIUS-запросов при работе с внешним RADIUS-сервером, т.е. вторая схема.
Проксирование RADIUS запросов позволяет использовать общее хранилище учетных данных пользователи Wi-Fi.
| Подсказка |
|---|
Для успешной авторизации, на внешнем RADIUS-сервере необходимо: - Наличие учетных записей пользователей;
- IP-адреса контроллера WLC нужно прописать в качестве NAS клиента;
- Настроить подмену NAS-IP в конфигурации WLC. NAS-IP будет устанавливаться в пересылаемые RADIUS запросы от ТД при прохождение через контроллер. В таком случае на внешнем RADIUS-сервере нужно добавить один NAS объект, которым являться WLC.
|
Рекомендуется ознакомиться с базовой настройкой подключения ТД к контроллеру WLC, которая описана в статье Настрoйка WLC.
Логика работы Enterprise авторизации
Успешная авторизация клиента
Рассмотрим поэтапную работу при Enterprise авторизации. Ниже на диаграмме представлен пример успешной авторизации пользователя с проксированием на внешний RADIUS-сервер.
| draw.io Diagram |
|---|
| border | true |
|---|
| viewerToolbar | true |
|---|
| |
|---|
| fitWindow | false |
|---|
| diagramName | AcceptProxyRadius |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| diagramWidth | 2921 |
|---|
| revision | 23 |
|---|
|
При подключении к SSID клиент вводит учетные данные в виде логина (username) и пароля (password), которые приходят на ТД. ТД отправляет запрос (Access-Request) на RADIUS-сервер WLC, в атрибуте NAS-IP будет задан IP-адрес ТД. На WLC настроено проксированием на внешний RADIUS-сервер. Получив от ТД запрос (Access-Request), WLC подменит NAS-IP на IP-адрес, который указан в конфигурации и отправит запрос на внешний RADIUS-сервер. Внешний RADIUS-сервер может проверить наличие записи NAS-IP WLC, в свой конфигурации. Если запись найдена, проверка учетной записи завершится успешно, внешний RADIUS-сервер отправляет ответ (Access-Accept) в сторону WLC. WLC, в свою очередь, получив ответ от внешнего RADIUS-сервера пересылает ответ ТД.
После успешного подключения клиента, ТД отправляет запрос (Accouting-Request) на WLC (если отправка включена в конфигурации). WLC подменяет NAS-IP и пересылает запрос на внешний RADIUS-сервер. Внешний RADIUS-сервер отправляет ответ (Accouting-Response) WLC. WLC пересылает запрос ТД
Задача
Настроить перенаправление всех RADIUS запросов от ТД из сети 192.168.1.0/24 на сервер:
- IP-адресс: 10.10.10.12
- Порт для авторизации: 1812
- Пор для аккаунтинга: 1813
- Ключ сервера: password
Производить подмену NAS-IP на 10.10.10.1
Решение
Настройка локального RADIUS-сервера:
Переходим в конфигурационный режим
| Блок кода |
|---|
|
wlc# configure
wlc(config)# radius-server local |
Переходим в раздел radius-server local:
| Блок кода |
|---|
|
wlc(config)# radius-server local |
Настраиваем NAS ap. Необходимо ввести подсети ТД (адресное пространство точке доступа, т.е. их IP-адреса), которые будут обслуживаться локальным RADIUS-сервером при Enterprise-авторизации пользователей Wi-Fi:
| Блок кода |
|---|
|
wlc(config-radius)# nas ap
wlc(config-radius-nas)# network 192.168.1.0/24
wlc(config-radius-nas)# key ascii-text password
wlc(config-radius-nas)# exit
|
| Подсказка |
|---|
|
При схеме подключения ТД через L3 сеть (с SoftGRE-туннелями) в конфигурации должна быть настроена запись для NAS local, если она отсутствует нужно её настроить: | Блок кода |
|---|
| wlc(config-radius)# nas local
wlc(config-radius-nas)# key ascii-text password
wlc(config-radius-nas)# network 127.0.0.1/32
wlc(config-radius-nas)# exit |
|
Настраиваем virtual-server для проксирования RADIUS-запросов на внешний сервер.
Задаём имя virtual-server:
| Блок кода |
|---|
|
wlc(config-radius)# virtual-server default |
Задаём NAS-IP:
| Подсказка |
|---|
| icon | false |
|---|
| title | Подмена NAS-IP |
|---|
|
В локальном RADIUS-сервере есть возможность менять NAS-IP его во всех входящих RADIUS запросах от ТД к WLC. Если параметр не задан, при пересылке RADIUS запросов на внешний сервер в атрибуте NAS-IP будет записан адрес ТД. Это может повлечь за собой ошибки в процессе аутентификации, которые подробно рассмотрены в разделе Возможные проблемы при авторизации (ссылка) |
| Блок кода |
|---|
|
wlc(config-radius-vserver)# nas-ip-address 10.10.10.1 |
Включаем virtual-server и режим проксирования:
| Блок кода |
|---|
|
wlc(config-radius-vserver)# proxy-mode
wlc(config-radius-vserver)# enable |
Создаём upstream-server для настройки параметров вышестоящего сервера:
| Блок кода |
|---|
|
wlc(config-radius-vserver)# upstream-server eltex |
Задаём адрес вышестоящего сервера, на этот сервер будут перенаправляться запросы от ТД:
| Блок кода |
|---|
|
wlc(config-radius-upstream-server)# host 10.10.10.12 |
Включаем режим проксирования для запросов аутентификации и аккаунтинга
| Подсказка |
|---|
| icon | false |
|---|
| title | Типы upstream серверов |
|---|
|
Server-type auth — используется для проксирования только запросов аутентификации. Запросы будут проксироваться на порт, указанный в параметре port (по умолчанию – 1812). Server-type acct — используется для проксирования только аккаунтинга. Проксирование осуществляется на порт, указанный в параметре port (по умолчанию – 1812). При необходимости измените его (стандартный порт для аккаунтинга – 1813). Server-type all — используется для проксирования запросов аутентификации и аккаунтинга. Запросы аутентификации будут проксироваться на порт, указанный в параметре port (по умолчанию – 1812), а аккаунтинг будет проксироваться на порт = 'port'+1 (то есть по умолчанию – 1813). |
Выбираем режим all, так как нужно перенаправлять все запросы:
| Блок кода |
|---|
|
wlc(config-radius-upstream-server)# server-type all |
| Якорь |
|---|
| upstream-server.key |
|---|
| upstream-server.key |
|---|
|
Задаём ключ для вышестоящего сервера, ключ должен совпадать с ключом заданным в radius-profile в
разделе WLC ссылка(нужно проверить корректность создания) :
| Блок кода |
|---|
|
wlc(config-radius-upstream-server)# key ascii-text password
wlc(config-radius-upstream-server)# exit
WLC-1(config-radius-vserver)# exit |
Включаем RADIUS сервер:
| Блок кода |
|---|
|
WLC-1(config-radius-vserver)# enable
WLC-1(config-radius-vserver)# exit |
Полная конфигурация radius-server
| Блок кода |
|---|
|
radius-server local
nas local
key ascii-text encrypted 8CB5107EA7005AFF
network 127.0.0.1/32
exit
nas ap
key ascii-text encrypted 8CB5107EA7005AFF
network 192.168.1.0/24
exit
virtual-server default
proxy-mode
nas-ip-address 10.10.10.1
upstream-server eltex
host 10.10.10.12
server-type all
key ascii-text password
exit
enable
exit
exit |
Настройка в разделе WLC| Блок кода |
|---|
|
wlc(config)# wlc |
Настраиваем профиль RADIUS-сервера:
| Блок кода |
|---|
|
wlc(config-wlc)# radius-profile default-radius |
Поскольку мы настраиваем проксирование запросов аутентификации и аккаунтинга, то в auth-address и acct-address указываем адрес контроллера, который доступен для ТД.
Ключ RADIUS-сервера (auth-password / acct-password) должен совпадать с ключом, указанным для NAS ap, который мы указали в radius-server local ссылка(нужно проверить корректность создания).| Якорь |
|---|
| wlc.radius-profile |
|---|
| wlc.radius-profile |
|---|
|
| Блок кода |
|---|
|
wlc(config-wlc-radius-profile)# auth-address 192.168.1.1
wlc(config-wlc-radius-profile)# auth-password ascii-text password
wlc(config-wlc-radius-profile)# acct-address 192.168.1.1
wlc(config-wlc-radius-profile)# acct-password ascii-text password |
| Подсказка |
|---|
|
Если вы используете проксирование на SoftWLC, укажите домен RADIUS. Этот домен должен совпадать с доменом, в котором созданы учетные записи пользователей Enterprise на SoftWLC.
wlc(config-wlc-radius-profile)# domain root |
Включаем отправку аккаунтинга на RADIUS-сервер:
| Блок кода |
|---|
|
wlc(config-wlc-radius-profile)# acct-enable |
Включаем добавление идентификатора RADIUS сессии в запросах аккаунтинга:
| Блок кода |
|---|
|
wlc(config-wlc-radius-profile)# auth-acct-id-send |
Задаём временной интервал обновления аккаунтинга:
| Блок кода |
|---|
|
wlc(config-wlc-radius-profile)# acct-interval 600 |
Конфигурация radius-profile
| Блок кода |
|---|
|
radius-profile default-radius
auth-address 192.168.1.1
auth-password ascii-text ascii-text password
auth-acct-id-send
acct-enable
acct-address 192.168.1.1
acct-password ascii-text ascii-text password
acct-periodic
acct-interval 600
exit |
Создаем ssid-profile:
| Блок кода |
|---|
|
wlc(config-wlc)# ssid-profile test_enterprise |
Указываем в ssid-profile ранее настроенный профиль radius-profile:
| Блок кода |
|---|
|
wlc(config-wlc-ssid-profile)# radius-profile default-radius |
Задаем имя SSID:
| Блок кода |
|---|
|
wlc(config-wlc-ssid-profile)# ssid "test_enterprise" |
Задаем режим безопасности:
| Блок кода |
|---|
|
wlc(config-wlc-ssid-profile)# security-mode WPA2_1X |
Задаем VLAN:
| Блок кода |
|---|
|
WLC-1(config-wlc-ssid-profile)# vlan-id 3 |
Задаем остальные параметры SSID:
| Блок кода |
|---|
|
WLC-1(config-wlc)# ssid-profile test_enterprise
WLC-1(config-wlc-ssid-profile)# description "SSID for enterprise users"
WLC-1(config-wlc-ssid-profile)# 802.11kv
WLC-1(config-wlc-ssid-profile)# band 2g
WLC-1(config-wlc-ssid-profile)# band 5g
WLC-1(config-wlc-ssid-profile)# enable
WLC-1(config-wlc-ssid-profile)# exit |
Конфигурация ssid-profile:
| Блок кода |
|---|
|
ssid-profile test_enterprise
description "SSID for enterprise users"
ssid "test_enterprise"
radius-profile default-radius
vlan-id 3
security-mode WPA2_1X
802.11kv
band 2g
band 5g
enable
exit |
Применяем конфигурацию и подтверждаем.
| Блок кода |
|---|
|
wlc# commit
wlc# confirm |
| Подсказка |
|---|
Для настройки внешнего RADIUS-сервера необходимо записать в таблицу NAS внешнего RADIUS-сервера адрес и ключ локального RADIUS-сервера WLС. |
Конфигурация:
| Раскрыть |
|---|
| Блок кода |
|---|
| radius-server local
nas local
key ascii-text encrypted 8CB5107EA7005AFF
network 127.0.0.1/32
exit
nas ap
key ascii-text encrypted 8CB5107EA7005AFF
network 192.168.1.0/24
exit
virtual-server default
proxy-mode
nas-ip-address 10.10.10.1
upstream-server eltex
host 10.10.10.12
server-type all
key ascii-text password
exit
enable
exit
exit
wlc
radius-profile default-radius
auth-address 192.168.1.1
auth-password ascii-text ascii-text password
auth-acct-id-send
acct-enable
acct-address 192.168.1.1
acct-password ascii-text ascii-text password
acct-periodic
acct-interval 600
exit
ssid-profile test_enterprise
description "SSID for enterprise users"
ssid "test_enterprise"
radius-profile default-radius
vlan-id 3
security-mode WPA2_1X
802.11kv
band 2g
band 5g
enable
exit
exit |
|
Возможные проблемы
Рассмотрим возможные проблемы при авторизации.
Запрет доступа по причине неправильного NAS-IP
Рассмотрим один из вариантов запрета доступа, где причиной является отсутствие записи о NAS-IP в конфигурации внешнего RADIUS-сервера.
| draw.io Diagram |
|---|
| border | true |
|---|
| viewerToolbar | true |
|---|
| |
|---|
| fitWindow | false |
|---|
| diagramName | DeniedNASproxyRADIUS |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| diagramWidth | 2921 |
|---|
| revision | 9 |
|---|
|
В данном примере внешний RADIUS-сервер на входящий запрос (Access-Request), ответ (Access-Reject). Может быть две причины такого ответа.
При настройке проксирования RADIUS запросов на WLC указывается параметр подмены NAS-IP, в случае, если он не указан, запросы будут пересылаться на внешний RADIUS-сервер без подмены NAS-IP. В результате внешний RADIUS-сервер получит запрос с NAS-IP ТД. В таком случае на внешнем RADIUS-сервере необходимо добавлять подсеть ТД в NAS клиенты сервера. Если подмены NAS-IP в конфигурации проксирования RADIUS на WLC настроена, но внешний RADIUS-сервер присылает ответ (Access-Reject), необходим проверить наличие подсети или адреса WLC в конфигурации внешнего RADIUS-сервера.
Запрет доступа по причине ошибки аутентификации
| draw.io Diagram |
|---|
| border | true |
|---|
| viewerToolbar | true |
|---|
| |
|---|
| fitWindow | false |
|---|
| diagramName | 2 |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| diagramWidth | 2921 |
|---|
| revision | 9 |
|---|
|
Данный пример описывает проблему ответа о запрете доступа (Access-Reject), на запрос (Access-Request).
Причиной такого ответа является отсутствие учетной записи в базе данных внешнего RADIUS-сервера, под которыми авторизуется клиент. В таком случае необходимо проверить наличие учетной записи в базе данных внешнего RADIUS-сервера, а также корректность вводимых данных клиента, так как может быть допущена опечатка.