Алгоритм работы
Поддержано начиная с версий:
Устройства: WLC/ESR-15/30/3200
Версия ПО WLC: 1.26.0
Устройства: WEP-1L, WEP/WOP-2L, WEP-200L, WEP/WOP-30L, WEP-30L-Z, WOP-20L
Версия ПО ТД: 2.5.2
На ТД поддержан способ портальной авторизации по новой схеме через RADIUS.
При первом подключении клиента к ТД, для него пока отсутствует учетная запись во внешней системе (RADIUS сервере), поэтому весь клиентский трафик блокируется, кроме:
- DHCP
- DNS
- Запросы на адрес портала
- HTTP/HTTPS из белого списка
После подключения клиента, ТД пытается провести MAB (MAC Authentication Bypass) авторизацию на RADIUS сервере, подставляя MAC адрес клиента в атрибуты User-Name и User-Password в запросе Access-Request к RADIUS серверу. Так как на RADIUS сервере учетная запись с такими параметрами на данный момент отсутствует, он отправляет Access-Reject.
Далее клиент обращается на HTTP ресурс. ТД перехватывает его запрос и перенаправляет клиента на гостевой портал, который был задан в настройках SSID (portal-profile). Клиент переходит на портал по полученному URL, который содержит в себе:
- switch_url – URL для перенаправления клиента после авторизации на портале
- ap_mac -– MAC адрес ТД к которой подключен клиент
- client_mac – MAC адрес клиента
- wlan – название SSID, к которому подключен клиент
- redirect – URL, который клиент запрашивал первоначально
Пример URL :
https://eltex-co.ru/?switch_url=http://redirect.loc:10081&ap_mac=68:13:E2:35:1F:30&client_mac=38:d5:7a:e1:e0:13&wlan=Portal-SSID&redirect=http://www.msftconnecttest.com/connecttest.txt
Далее пользователь проходит саморегистрацию на гостевом портале и через форму портала ему возвращается URL редиректа на ТД, который содержит параметры:
- username – имя пользователя;
- password – пароль пользователя;
- redirect_url – URL, который клиент запрашивал первоначально, портал может подменил адрес. В нашем примере клиент пытался подключиться к http://www.msftconnecttest.com, но его перенаправили на https://eltex-co.ru;
- error_url – URL для перенаправления клиента в случае ошибки авторизации. В нашем примере этот параметр не используется.
Названия параметров можно переопределить в конфигурации ap-profile
Пример URL:
http://redirect.loc:10081/?username=60336144&password=3hMYEPEW0tdb&buttonClicked=4&redirect_url=https://eltex-co.ru/
На устройстве клиента открывается URL редиректа, полученный от портала. ТД вычитывает из него username и password, подставляет их в атрибуты User-Name и User-Password в запросе Access-Request и отправляет запрос на RADIUS сервер. После успешной авторизации клиента на RADIUS сервере, ТД снимает ограничения на доступ и перенаправляет клиента на URL, указанный в redirect_url. После регистрации пользователя, его учетная запись для MAB авторизации создается в БД RADIUS.
В случае переподключения клиента к ТД или подключения к другой ТД (к тому же SSID), авторизация будет проходить по MAC адресу, на запрос Access-Request MAB авторизации вернется Access-Accept, так как на RADIUS сервере уже есть соответствующая учетная запись клиента ( MAB авторизация запрашивается при подключение клиента к ТД, если ТД не "помнит" клиента). Перенаправление клиента на портал происходить не будет до тех пор, пока MAC адрес клиента не будет удален из БД.
Конфигурация WLC
Пример настроек будет выполнен на factory конфигурации WLC
Порядок настройки:
- Создаем белый список URL
- Создаем белый список IP адресов
- Создаем portal-profile
- Создаем radius-profile
- Создаем ssid-profile
- Добавляем ssid-profile в ap-location
Белые списки предназначены для того, чтобы в случае необходимости предоставить пользователю доступ к определенным ресурсам до авторизации. Список этих ресурсов можно задать через URL, RegExp или подсеть IP. Белые списки не являются обязательными. Адрес портала добавляется в белый список автоматически, поэтому задавать его не требуется.
Создаем белый список URL, он может содержать URL и/или RegExp. Доступ к указанным адресам будет разрешён до авторизации.
object-group url white_url url eltex-co.ru regexp '(.+\.)eltex-co\.com' exit
Создаем белый список IP адресов, доступ к указанным адресам будет разрешён до авторизации. В белый список можно добавлять адреса подсетей, которые нужны для авторизации.
object-group network white_ip ip prefix 192.168.0.0/24 exit
Создаем portal-profile
Описание параметров:
redirect-url – адрес портала;
age-timeout – временной интервал, в течение которого точка доступа "помнит" клиента и не проводит MAB авторизацию;
verification-mode – режим работы портала;
white-list domain – белый список URL;
white-list address – белый список IP адресов.wlc portal-profile portal-pr redirect-url https://eltex-co.ru age-timeout 10 verification-mode external-portal white-list domain white_url white-list address white_ip exit exit
При режиме verification-mode external-portal к указанному URL в redirect-url автоматически добавляются параметры таким образом, что результирующий URL имеет вид:
https://eltex-co.ru/?switch_url=<SWITCH_URL>&ap_mac=<AP_MAC>&client_mac=<CLIENT_MAC>&wlan=<SSID>
Если необходимо изменить названия параметров: switch_url, ap_mac, client_mac, wlan, можно задать строку самостоятельно через параметр redirect-url-custom, например:
redirect-url-custom https://eltex-co.ru/?action_url=<SWITCH_URL>&ap_addr=<AP_MAC>&client_addr=<CLIENT_MAC>&ssid_name=<SSID>
В примере были изменены следующие названия параметров :
- switch_url → action_url
- ap_mac → ap_addr
- client_mac →client_addr
- wlan →ssid_name
Создаем radius-profile
wlc radius-profile portal_radius auth-address 192.168.4.5 auth-password ascii-text encrypted 92BB3C7EB50C5AFE80 auth-acct-id-send acct-enable acct-address 192.168.4.5 acct-password ascii-text encrypted 92BB3C7EB50C5AFE80 acct-periodic acct-interval 300 exit exit
Создаем ssid-profile
wlc ssid-profile portal_test ssid portal_test radius-profile portal_radius portal-enable portal-profile portal-pr vlan-id 3 band 5g enable exit exit
Добавляем ssid-profile в ap-location
wlc ap-location default-location description default-location mode tunnel ap-profile default-ap ssid-profile portal_test exit exit