Описание
Стема Netams WNAM будет рассмотрена для портальной авторизации пользователей Wi-Fi.
Взаимодействие системы авторизации Netams WNAM с контроллероми WLC/ESR доступна на:
В данной статье будет рассмотрен пример настройки авторизации клиента через гостевой портал путем идентификации по коду ваучера. Другие способы гостевой авторизации выходят за рамки данной статьи, так как взаимодействие между системой WNAM и BRAS WLC не изменяется.
Перед началом построения взаимодействия между Netams WNAM и WLC необходимо настроить и протестировать работу беспроводной сети и контроллера WLC без портальной авторизации и сетевого экрана. Если беспроводная сеть функционирует корректно, можно приступать к настройки портальной авторизации.
В данной статье используется подключение ТД к контроллеру WLC на основе сети L3 с построением Data SoftGRE туннеля. В статье настрoйка WLC детально описана настройка данной схемы подключения.
Рекомендуется ознакомиться с тонкостями настройки BRAS на ESR/WLC с портальной авторизацией на основе SoftWLC , в следующих статьях:
- BRAS/BRAS в vrf. L3 WiFi - руководство по настройке с резервированием
- BRAS. L2 WiFi - руководство по настройке и быстрому запуску
- BRAS. Troubleshooting Guide
Описание схемы сети
- Контроллер WLC имеет адреса:
- из сети WNAM: 100.110.0.246/23 (Vlan 1000);
- из сети управления ТД: 192.168.1.1/24 (Bridge 1, Vlan 1);
- из сети клиентов ТД с портальной авторизацией: 192.168.3.1/24 (Bridge 3, Vlan 3).
- Сервер авторизации WNAM имеет адрес: 100.110.1.44/23 (Vlan 1000);
- Точка доступа подключена к WLC. Получает адрес контроллера и терминации GRE туннеля в 43 опции из пула DHCP, настроенного на WLC из сети: 192.168.1.0/24 (Vlan 1);
- Клиенты получают адреса из пула DHCP, настроенного на WLC из сети: 192.168.2.0/24 (Vlan 3).
- Сервис для доступа в Интернет после авторизации на портале имеет имя: INTERNET.
Лицензирование
Для конфигурации взаимодействия Netams WNAM и WLC, необходима лицензия BRAS для WLC.
Детально о том, как установить и применить лицензию описано в статье – Активация функционала по лицензии.
Проверить наличие лицензии можно с помощью команды show licence:
wlc# show licence Feature Source State Value Valid from Expiries -------------------------------- -------- ----------- -------------------------------- -------------------- -------------------- BRAS File Active true -- -- BRAS File Candidate true -- -- WLC Boot Active true -- -- WLC Boot Candidate true -- --
Взаимодействие элементов системы
Конфигурование WLC
Конфигурация object-group:
object-group network wnam_servers ip address-range 100.110.1.44 exit object-group network bras_users ip address-range 192.168.2.2-192.168.2.254 exit object-group network local ip address-range 192.168.2.1-192.168.2.254 exit object-group url defaultService url http://100.110.1.44 exit
Конфигурация Bridge:
bridge 1 vlan 1 description "MGMT_AP" security-zone trusted ip address 192.168.1.1/24 no spanning-tree enable exit bridge 2 vlan 2 description "Internet" security-zone untrusted ip address 100.110.0.246/23 service-policy dynamic upstream no spanning-tree enable exit bridge 3 description "BRAS-users" vlan 3 mtu 1458 history statistics security-zone users ip address 192.168.2.1/24 service-policy dynamic downstream no spanning-tree location data10 enable exit
Конфигурация Vlan:
vlan 3 force-up exit vlan 2 exit
Конфигурация интерфейсов:
interface gigabitethernet 1/0/1 description "UPLINK" mode switchport switchport access vlan 2 exit interface gigabitethernet 1/0/2 description "AP-MGMT" mode switchport exit interface gigabitethernet 1/0/3 mode switchport exit interface gigabitethernet 1/0/4 mode switchport exit interface tengigabitethernet 1/0/1 mode switchport switchport access vlan 2 exit interface tengigabitethernet 1/0/2 mode switchport exit
Конфигурация списков контроля доступа:
ip access-list extended BYPASS
rule 10
action permit
match protocol udp
match source-port 68
match destination-port 67
enable
exit
rule 11
action permit
match protocol udp
match destination-port 53
enable
exit
exit
ip access-list extended WELCOME
rule 10
action permit
match protocol tcp
match destination-port 443
enable
exit
rule 30
action permit
match protocol tcp
match destination-port 80
enable
exit
exit
ip access-list extended INTERNET
rule 10
action permit
enable
exit
exit
Настройка RADIUS:
radius-server host 100.110.1.44 key ascii-text wnampass source-address 100.110.0.246 exit aaa radius-profile bras_radius radius-server host 100.110.1.44 exit das-server das key ascii-text wnampass port 3799 clients object-group wnam_servers exit aaa das-profile bras_das das-server das exit
Конфигурация NAT:
nat source
pool translate
ip address-range 100.110.0.246
exit
ruleset SNAT
to interface gigabitethernet 1/0/1
rule 1
match source-address object-group local
action source-nat pool translate
enable
exit
exit
exit
Конфигурация Security Zone-Pair:
security zone-pair untrusted self
rule 1
action permit
match protocol udp
match source-port object-group dhcp_server
match destination-port object-group dhcp_client
enable
exit
rule 10
action permit
match protocol tcp
match destination-port object-group ssh
enable
exit
rule 20
action permit
match protocol tcp
match destination-port object-group http
enable
exit
Конфигурация SSID в разделе WLC:
wlc
ssid-profile default-ssid
description F.E.free
ssid F.E.freeSSID
vlan-id 3
802.11kv
band 2g
band 5g
enable
exit
exit
Конфигурация BRAS:
subscriber-control
aaa das-profile bras_das
aaa sessions-radius-profile bras_radius
aaa services-radius-profile bras_radius
nas-ip-address 100.110.0.246
session mac-authentication
bypass-traffic-acl BYPASS
default-service
class-map BYPASS
filter-name local defaultService
filter-action permit
default-action redirect http://100.110.1.44/cp/eltexwlc
session-timeout 600
exit
enable
exit
Важно!
При конфигурации default-action redirect всегда используется шаблон "http://<ip-address WNAM>/cp/eltexwlc", где <ip-address WNAM> сетевой адрес сервера Netams WNAM.
В случае указания другого url авторизация работать не будет.
Конфигурация WNAM
Создание сервера
На стороне системы авторизации переходим: Конфигурация → Сервера доступа → Создать сервер.
В закладке Параметры:
- Создаётся объект Сервер доступа (тип: Eltex);
- Заполняем поля IP адрес и Внешний IP адрес (адрес вашего WLC, смотрящий в сторону WNAM);
- Имя устройства и Местоположение (произвольно).
Во вкладке RADIUS указывается RADIUS-ключ (wnampass), в поле "Атрибуты CoA / пост-авторизации":
Cisco-AVPair=subscriber:command=account-loggon Idle-Timeout=1200 Acct-Interim-Interval=300 Cisco-AVPair=subscriber:vrf=1
В поле ввода "Секретный ключ" указываем ключ, который указали для radius-server host 100.110.1.44 в конфигурации WLC:
wnampass
Создание площадки
Далее создаем площадку, к которой у нас будет привязана страница гостевого портала: Конфигурация → Площадки → Создать площадку.
В поле "Тип" выбираем "Площадка", в поле "Разрешенный сервер доступа" выбираем созданный ранее сервер. В поле "Присвоенная IP подсеть или МАС точек доступа" указываем наш пул IP для пользователей портала (сеть Bridge 3 на WLC).
Важно!
Таким образом через привязку пулов IP можно привязать разные Площадки с разными порталами авторизации, трафик клиентов которых терминируется на одном WLC.
Разрешенный сервер соответственно на разных площадках будет один и тот же.
Далее выбираем созданную площадку.
На вкладке "Авторизация" выбираем "Метод" – "Ввод кода с ваучера". Указываем срок валидности ваучера для авторизации. В параметре "Имя страницы" выбираем "Ваучер (по умолчанию)". Данных настроек достаточно для работы гостевого портала с авторизацией по коду из Ваучера.
Настройка других способов авторизации выходит за рамки данной статьи.
Создание группы ваучеров
Переходим к созданию ваучеров для авторизации: Конфигурация → Гостевая авторизация → Ваучеры → Создать группу ваучеров.
В дальнейшем коды данных ваучеров будут использоваться для авторизации клиентов на гостевом портале.
Создаем правило для редиректа на гостевой портал (копируем стандартное правило редиректа и модифицируем его).
Конифгурирование прави аутентификации
Переходим во вкладку: Конфигурация → Правила аутентификации.
Создаем новое правило аутентификации и настраиваем, как на скриншоте приведенном ниже. Источник запроса выбираем проводной (BRAS у нас находится на проводном интерфейсе).
В параметре "Входящий радиус атрибут" выбираем "NAS-Port-ID" равным тому "location" который указали в настройках Bridge 3 на WLC, на котором терминируется клиентский трафик.
Таким образом свяжем данное правило с SSID с гостевым доступом.
Важно!
В данное правило можно добавить дополнительными параметрами при необходимости.
Правило аутентификации привязывается к правилу авторизации при помощи тега. В данном примере указан тег guest-wifi-redirect.
Важно!
Обратите внимание, чтобы тег был уникальным и совпадал с соответствующим правилом авторизации.
Если сработало правило аутентификации, далее по данному тегу запускается соответствующее правило авторизации.
Приступаем к созданию правила аутентификации для доступа клиента в Internet.
Параметры "Источник запроса" и "Входящий RADIUS атрибут" настраиваем так же, как в правиле для редиректа (объяснение выше).
Важно!
Необходимо использовать уникальный тег, как в примере выше. В данном примере указан тег guest-wifi-permit.
Конфигурирование правил авторизации
Создаем правила авторизации:
Переходим во вкладку: Конфигурация → Правила авторизации.
Первое правило для редиректа на портал приводим к виду, как на примере ниже.
В результате должен быть ответ протокола Radius формата "Access-Reject" от сервиса авторизации системе BRAS на WLC.
Важно!
Правило привязывается по совпадению тега, поэтому тег должен быть такой же, как и в правиле аутентификации.
Второе правило для предоставления доступа в Internet. В блоке "Применить" параметра "RADIUS атрибуты" необходимо прописать атрибут назначающий сессии клиента сервис доступа с названием INTERNET, который настроен в виде списка контроля доступа на WLC.
Cisco-Account-Info=AINTERNET
В результате, на данном этапе, должен быть ответ протокола Radius формата "Access-Accept" от сервиса авторизации системе BRAS на WLC. В нем будет содержаться атрибут с указанием наименования сервиса доступного абоненту.
Логика взаимдействия на этапе предоставления доступа в инетрнет
Контроллер WLC в ходе авторизации запрашивает параметры сервиса INTERNET в пакете Radius "Access-Request", а WNAM, в свою очередь, отдаёт их в ответном пакете "Access-Accept", где в атрибуте "Cisco-AVPair", со значением "subscriber:traffic-class=INTERNET".
Эта последовательность зашита в логику взаимодействия с оборудованием Eltex и не требует дополнительной настройки.
На этом конфигурация сервиса Netams WNAM завершена.
После конфигурирования портала и контроллера WLC при подключения к SSID с названием "F.E.freeSSID" будет регистрация в сети. Мы попадем на портал авторизации, где необходимо ввести один из свободных ваучеров. Посмотреть доступные ваучеры можно: Конфигурация → Гостевая авторизация → Ваучеры. Выбираем созданную группу Test_Guest-Portal и вводим свободный. После авторизации будет предоставлен доступ в интернет, а введенный ваучер привяжется
Отладочная информация Netams WNAM
Логирование работы правил авторизации
Мониторинг логов работы правил авторизации необходимо перейти в: Диагностика → Корпоративные подключения
1: fillFromRadiusAttributes - identity: '78:98:E8:1E:67:07', portType: EthernetMAB
2: fillFromRadiusAttributes - mac: '78:98:E8:1E:67:07'
3: fillFromRadiusAttributes - password: present in request
4: fillFromRadiusAttributes - nas: 'WLC-30 [F.E.]', ip: 100.110.0.246, id: 6614c699fd772e622ebb0689, vendor: ELTEX [enabled]
5: fillFromRadiusAttributes - nas: IP address: 100.110.0.246, identifier: 'null', port: 'location data10'
6: fillFromRadiusAttributes - site: 'test', id: new [enabled]
7: fillFromRadiusAttributes - session id: '3098476543630901255'
8: radius - received 8 attributes in the request:
Cisco-AVPair-subscriber:vrf = 1
User-Name = 78:98:E8:1E:67:07
Cisco-AVPair-subscriber:CELL = d998075724dc24029b359a8db24682a0
User-Password = (password length: 8)
NAS-IP-Address = 100.110.0.246
Cisco-AVPair-subscriber:l2-interface = softgre 1.4
Acct-Session-Id = 3098476543630901255
NAS-Port-Id = location data10
9: filterForPapMacMethod - checkMABPassword: matched captiveportal_pass for 'Редирект для гостевого Wi-Fi tester'
10: authentication - a1profiles candidates: 1 with preliminary processing result: RadiusResponse [state=OK, attributes=[]]
11: authentication - final result: Redirect with policy 'Редирект для гостевого Wi-Fi tester' and tag 'guest-wifi-redirect'
12: authorization - guest redirect
13: radius - send RADIUS REJECT, reason: This will instruct Wi-Fi controller to execute redirect action
1: fillFromRadiusAttributes - identity: '78:98:E8:1E:67:07', portType: EthernetMAB
2: fillFromRadiusAttributes - mac: '78:98:E8:1E:67:07'
3: fillFromRadiusAttributes - password: present in request
4: fillFromRadiusAttributes - nas: 'WLC-30 [F.E.]', ip: 100.110.0.246, id: 6614c699fd772e622ebb0689, vendor: ELTEX [enabled]
5: fillFromRadiusAttributes - nas: IP address: 100.110.0.246, identifier: 'null', port: 'location data10'
6: fillFromRadiusAttributes - site: 'test', id: new [enabled]
7: fillFromRadiusAttributes - session id: '3098476543630901255'
8: radius - received 8 attributes in the request:
Cisco-AVPair-subscriber:vrf = 1
User-Name = 78:98:E8:1E:67:07
Cisco-AVPair-subscriber:CELL = d998075724dc24029b359a8db24682a0
User-Password = (password length: 8)
NAS-IP-Address = 100.110.0.246
Cisco-AVPair-subscriber:l2-interface = softgre 1.4
Acct-Session-Id = 3098476543630901255
NAS-Port-Id = location data10
9: filterForPapMacMethod - checkMABPassword: matched captiveportal_pass for 'Доступ для гостевого Wi-Fi tester'
10: authentication - a1profiles candidates: 1 with preliminary processing result: RadiusResponse [state=OK, attributes=[]]
11: authentication - final result: Allow with policy 'Доступ для гостевого Wi-Fi tester' and tag 'guest-wifi-permit'
12: authorization - a2profiles candidates: 7
13: authorization - final result: Accept with policy 'Доступ для гостевого Wi-Fi'
14: radius - send RADIUS ACCEPT with 1 attributes
15: radius - attribute: Cisco-Account-Info = AINTERNET
16: addIP - Set IP address 192.168.3.21 on Accounting message (session 3098476543630901255)
Информация о ваучерах
Информация о статусе ваучеров находится по пути: Конфигурация → Гостевая авторизация → Ваучеры.
Затем необходимо выбрать нужную группу.
Информация о клиентах Wi-Fi
Также посмотреть активные клиентские подключения к Wi-Fi можно посмотреть на контроллере WLC командой:
wlc# show subscriber-control sessions status
Ниже приведен пример вывода активных клиентских сессий на контроллере WLC:
wlc# sh subscriber-control sessions status
Session id User name IP address MAC address Interface Domain
-------------------- --------------- --------------- ----------------- -------------------- ---------------
3098476543630901251 78:98:E8:1E:67: 192.168.3.21 78:98:e8:1e:67:07 softgre 1.4 --
07
wlc# sh subscriber-control services counters session-id 3098476543630901251 Service id Service name Recv packets Recv bytes Send packets Send bytes -------------------- --------------- -------------- -------------- -------------- -------------- 3134505340649865218 A INTERNET 4559 3868861 3842 692224
wlc# sh wlc clients MAC User MAC AP Hostname AP SSID RSSI AP-Location Username ----------------- ----------------- ------------------------------ --------------- ------- ----------------- ----------------- 78:98:e8:1e:67:07 68:13:e2:02:ea:20 WEP-3ax F.E.freeSSID -35 default-location --
Расположение логов
На сервере WNAM лог авторизации пользователей находится в файле: /home/wnam/logs/wnam.log
11:33:41.702 DEBUG [EltexWlcService.java:196] - CP ELTEX WLC clicked: username=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, sessionId=3098476543630901255, dst='http://www.msftconnecttest.com/redirect' 11:33:41.716 DEBUG [PageGenerator.java:713] - processAuthRequest ELTEXWLC: username=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, site_id=new, domain_id=3098476543630901255, dst='http://www.msftconnecttest.com/redirect' adv curr/max=1/1 11:33:41.719 DEBUG [PageGenerator.java:1300] - captive portal redirected to VOUCHER page, username=78:98:E8:1E:67:07, cust=new, form='6614c99dfd772e622ebb06a7' 11:34:13.380 DEBUG [VoucherHandler.java:52] - postVoucher CODE='V3U5', FORM=6614c99dfd772e622ebb06a7, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, site_id=new, name=78:98:E8:1E:67:07 11:34:13.382 DEBUG [VoucherHandler.java:62] - find_voucher: 66b34731933c505a427dad16, code=V3U5, status=Не активирован 11:34:13.395 DEBUG [VoucherHandler.java:125] - postVoucher OK CODE='V3U5', voucher='Группа: WNAM-WLC_01, владелец: admin', vg='WNAM-WLC_01' 11:34:13.399 DEBUG [PageGenerator.java:390] - processRedirectRequestCi mac=78:98:E8:1E:67:07, method=ORIGINAL, formName=, redirectUrl=null, key=b04fb14d-36fb-4c30-a886-bfbab119088c 11:34:13.401 DEBUG [PageGenerator.java:849] - loginAtNasCi ELTEXWLC mac=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, dst='http://www.msftconnecttest.com/redirect' 11:34:13.406 DEBUG [EltexWlcService.java:66] - backToEltexWLC login server='100.110.0.246', user=78:98:E8:1E:67:07, password=password, dst='http://www.msftconnecttest.co...' 11:34:13.407 DEBUG [EltexWlcService.java:85] - open EltexWLC access REQ for IP=192.168.3.21, MAC=78:98:E8:1E:67:07 at NAS_IP=100.110.0.246 11:34:13.411 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket AUTH as=100.110.0.246, secret_len=10, attrs=[Vendor-Specific: 0x, User-Name: 78:98:E8:1E:67:07, User-Password: <stripped out>, NAS-IP-Address: 100.110.0.246, Acct-Session-Id: 3098476543630901255, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Port-Id: location data10] 11:34:13.411 DEBUG [ProfilingService.java:440] - handleMac on MAC: 78:98:E8:1E:67:07 for vendor D-Link International 11:34:13.412 DEBUG [ProfilingService.java:466] - handleMac on MAC: 78:98:E8:1E:67:07 checks added: 1, res: [D-Link International] 11:34:13.414 DEBUG [ProfilingService.java:1091] - Endpoint 78:98:E8:1E:67:07 logical profile set to Home Network Devices 11:34:13.414 DEBUG [ProfilingService.java:1102] - Endpoint 78:98:E8:1E:67:07 policy set assigned: [DLink-Device] 11:34:13.416 DEBUG [ProfilingService.java:469] - handleMac on MAC: 78:98:E8:1E:67:07 profiled in 5 ms. 11:34:13.433 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket AUTH as=100.110.0.246, secret_len=10, attrs=[User-Name: INTERNET, Vendor-Specific: 0x, NAS-IP-Address: 100.110.0.246, NAS-Port-Id: location data10, User-Password: <stripped out>, Vendor-Specific: 0x, Vendor-Specific: 0x, Acct-Session-Id: 3134505340649865221, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x] 11:34:13.434 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: 78:98:E8:1E:67:07, Vendor-Specific: 0x, Acct-Session-Id: 3098476543630901255, Acct-Status-Type: Start, Vendor-Specific: 0x, Event-Timestamp: 1723436510, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, NAS-IP-Address: 100.110.0.246] 11:34:13.435 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: 78:98:E8:1E:67:07, Vendor-Specific: 0x, Acct-Session-Id: 3098476543630901255, Acct-Status-Type: Interim-Update, Vendor-Specific: 0x, Event-Timestamp: 1723436806, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, Vendor-Specific: 0x, Vendor-Specific: 0x, Acct-Input-Gigawords: 0, Acct-Input-Octets: 128192, Acct-Output-Gigawords: 0, Acct-Output-Octets: 149134, Acct-Session-Time: 286, NAS-IP-Address: 100.110.0.246] 11:34:13.436 DEBUG [EltexWlcService.java:176] - sendCoa attrs=8, fail=false, resp=CoA-ACK 11:34:13.437 DEBUG [EltexWlcService.java:148] - open EltexWLC access SUCCESS for IP=192.168.3.21, MAC=78:98:E8:1E:67:07, num_avp=1 11:34:13.440 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: INTERNET, Vendor-Specific: 0x, Acct-Session-Id: 3134505340649865221, Vendor-Specific: 0x, Acct-Status-Type: Start, Vendor-Specific: 0x, Event-Timestamp: 1723436806, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, NAS-IP-Address: 100.110.0.246] 11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Interim-Update new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=78:98:E8:1E:67:07, NAS_IP=100.110.0.246, site_id=new 11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Start new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=78:98:E8:1E:67:07, NAS_IP=100.110.0.246, site_id=new 11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Start new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=INTERNET, NAS_IP=100.110.0.246, site_id=new












