Cisco ISE - Гостевой портал + Eltex AP
Настройка на ТД
Команды для настройки внешней портальной авторизации на ТД (ссылка на инструкцию: https://docs.eltex-co.ru/pages/viewpage.action?pageId=444825607#id-РуководствопоэксплуатацииWEP-30L,WEP-30L-Z-НастройкаVAPсвнешнейпортальнойавторизацией)
WEP-30L(root):/# configure
WEP-30L(config):/# interface
WEP-30L(config):/interface# wlan1-va0
WEP-30L(config):/interface/wlan1-va0# vap
WEP-30L(config):/interface/wlan1-va0/vap# vlan-id X (где X — VLAN-ID на VAP)
WEP-30L(config):/interface/wlan1-va0/vap# ap-security
WEP-30L(config):/interface/wlan1-va0/vap/ap-security# mode off (режим шифрования off — без пароля)
WEP-30L(config):/interface/wlan1-va0/vap/ap-security# exit
WEP-30L(config):/interface/wlan1-va0/vap# ssid 'Portal_WEP-30L' (изменение имени SSID)
WEP-30L(config):/interface/wlan1-va0/vap# captive-portal
WOP-30L(config):/interface/wlan1-va0/vap/captive-portal# verification-mode 'external-portal'
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal# scenarios
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal/scenarios# scenario-redirect
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal/scenarios/scenario-redirect# redirect-url "https://X.X.X.X/<NAS_ID>/?switch_url=<SWITCH_URL>&ap_mac=<AP_MAC>&client_mac=<CLIENT_MAC>
&wlan=<SSID>&original-url=<ORIGINAL_URL>" (указать URL внешнего виртуального портала в соответствии с таблицей 9)
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal/scenarios/scenario-redirect# exit
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal/scenarios# exit
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal# enabled true
WEP-30L(config):/interface/wlan1-va0/vap/captive-portal# exit
WEP-30L(config):/interface/wlan1-va0/vap# radius
WEP-30L(config):/interface/wlan1-va0/vap/radius# auth-address X.X.X.X (где Х.Х.Х.Х — IP-адрес RADIUS-сервера, используемого для авторизации)
WEP-30L(config):/interface/wlan1-va0/vap/radius# auth-password secret (где secret — пароль для RADIUS-сервера, используемого для авторизации)
WEP-30L(config):/interface/wlan1-va0/vap# save (сохранение настроек)
Таблица 9 — Настройка URL шаблона для внешней портальной авторизации
Параметр | Описание |
|---|---|
| <NAS_ID> | NAS ID, заданный на VAP или в system. Если не задан ни один из этих параметров, то в качестве NAS ID в RADIUS- и HTTP(S)-пакетах будет использоваться MAC-адрес ТД |
| <SWITCH_URL> | доменное имя, которое получает клент при перенаправлении |
| <AP_MAC> | MAC-адрес точки доступа |
| <CLIENT_MAC> | MAC-адрес клиента |
| <SSID> | SSID |
| <ORIGINAL_URL> | URL, который изначально запрашивал клиент |
radius:
auth-port: 1812
auth-address: 100.110.0.161
auth-password: testing123
auth-acct-id-send: true
tls-enable: false
acct-enable: true
acct-port: 1813
acct-address: 100.110.0.161
acct-password: testing123
acct-periodic: false
acct-interval: 600
acct-wait-ip: false
domain: root
nas-id:
captive-portal:
enabled: true
verification-mode: external-portal
age-timeout: 1
default-white-list:
scenarios:
scenario-redirect:
name: scenario-redirect
access-type: forbid
index: 1
redirect-url: https://100.110.0.161:8443/portal/PortalSetup.action?portal=f09aaac2-f101-45ed-832f-fda201ab7639?action_url=<SWITCH_URL>&redirect=<ORIGINAL_URL>&ap_mac=<AP_MAC>
virtual-portal-name: default
auth-scenario: scenario-access
scenario-access:
name: scenario-access
access-type: allow
index: 2
deauth-scenario: scenario-redirect
Взаимодействие ТД с порталом Cisco ISE:
- При первом подключении клиента (ISE ничего о нем не знает, ТД также). ТД пытается пройти MAB авторизацию на NAC сервере, подставляя MAC адрес клиента в атрибуты User-Name и User-Password запроса access-request к Radius серверу. Так как ISE ничего не знает о данном клиенте, он присылает access-reject.
- После того как ТД получила access-reject она отправляет клиенту ссылку редиректа на гостевой портал ISE (который был в ТД прописан при настройки SSID) формата:
https://100.110.0.161:8443/portal/PortalSetup.action?portal=f09aaac2-f101-45ed-832f-fda201ab7639?action_url=http%3A%2F%2Fredirect%2Eloc%3A10081%2F&redirect=http%3A%2F%2Fconnectivitycheck%2Egstatic%2Ecom%2Fgenerate%5F204&ap_mac=68%3A13%3AE2%3AC2%3A19%3A70
при этом дополняя ACL, с доступом только до гостевого портала. - После саморегистрации пользователя на гостевом портале и успешного логина через форму портала, по полученному логину и паролю, информация об устройстве как устройство MAB заносится в базу Endpoins, в которой содержится в том числе MAC клиента. А клиенту возвращается ссылка редиректа на proxy сервис ТД, содержащая в себе адрес сайта, на который клиент хотел попасть изначально, логин и пароль, под которым клиент успешно прошёл аутентификацию на гостевом портале. Ссылка вида:
http://redirect.loc:10081/?token=CYO1UK0IE1KI8BIWVNBJYR8WTNGAK1TP&buttonClicked=4&err_flag=0&err_msg=&info_flag=0&info_msg=&redirect_url=http%3A%2F%2Fconnectivitycheck.gstatic.com%2Fgenerate_204&username=Gena&password=Password414 - Когда клиент переходит по этой ссылке, ТД считывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request , radius успешно авторизует клиента и ТД снимает ACL на доступ клиента и редиректит на изначально запрашиваемый пользователем портал.
- После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по mac адресу (так как этот сценарий реализован в логике ТД "external portal" и срабатывает при подключении к SSID, если ТД не "помнит" клиента). И редиректа пользователя на портал происходить не будет, до тех пор, пока endpoint клиента не будет удален из базы, в ручную или автоматически (по какой-то настроенной логике).
Рис.1 Процесс авторизации нового клиента(по логину и паролю)
Рис.2 Процесс авторизации зарегистрированного клиента(MAB)
No. Time Source Destination Protocol Length Info 1 0.000000 100.110.0.247 100.110.0.161 RADIUS 294 Access-Request id=4 2 0.018302 100.110.0.161 100.110.0.247 RADIUS 80 Access-Reject id=4 3 277.808342 100.110.0.247 100.110.0.161 RADIUS 288 Access-Request id=5 4 277.831738 100.110.0.161 100.110.0.247 RADIUS 171 Access-Accept id=5 5 277.834463 100.110.0.247 100.110.0.161 RADIUS 255 Accounting-Request id=6 6 277.837400 100.110.0.161 100.110.0.247 RADIUS 62 Accounting-Response id=6
RADIUS Protocol
Code: Access-Request (1)
Packet identifier: 0x4 (4)
Length: 252
Authenticator: 4e18021cd2dbd9341c031c1a1da93a39
[The response to this request is in frame 2]
Attribute Value Pairs
AVP: t=User-Name(1) l=14 val=7898e81e6707
AVP: t=User-Password(2) l=18 val=Encrypted
AVP: t=Framed-IP-Address(8) l=6 val=0.0.0.0
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=Connect-Info(77) l=23 val=CONNECT 0Mbps 802.11a
AVP: t=Vendor-Specific(26) l=12 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=12 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Called-Station-Id(30) l=36 val=68-13-e2-c2-19-70:F.E.-ciscoPortal
AVP: t=Calling-Station-Id(31) l=19 val=78-98-e8-1e-67-07
AVP: t=NAS-Port(5) l=6 val=1
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=NAS-Port-Type(61) l=6 val=Wireless-802.11(19)
AVP: t=Acct-Session-Id(44) l=19 val=55DCB7FF-5C1BC61C
AVP: t=NAS-IP-Address(4) l=6 val=100.110.0.247
AVP: t=NAS-Identifier(32) l=19 val=68-13-E2-C2-19-70
AVP: t=Service-Type(6) l=6 val=Call-Check(10)
AVP: t=Message-Authenticator(80) l=18 val=30928a538a67ca2122338fdee7b8aefd
RADIUS Protocol
Code: Access-Request (1)
Packet identifier: 0x5 (5)
Length: 246
Authenticator: 5a35575eaedd8bb898325efc8d3c4ea4
[The response to this request is in frame 4]
Attribute Value Pairs
AVP: t=User-Name(1) l=8 val=tester
AVP: t=User-Password(2) l=18 val=Encrypted
AVP: t=Framed-IP-Address(8) l=6 val=100.110.1.11
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=Connect-Info(77) l=23 val=CONNECT 0Mbps 802.11a
AVP: t=Vendor-Specific(26) l=12 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=12 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Called-Station-Id(30) l=36 val=68-13-e2-c2-19-70:F.E.-ciscoPortal
AVP: t=Calling-Station-Id(31) l=19 val=78-98-e8-1e-67-07
AVP: t=NAS-Port(5) l=6 val=1
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=NAS-Port-Type(61) l=6 val=Wireless-802.11(19)
AVP: t=Acct-Session-Id(44) l=19 val=55DCB7FF-5C1BC61C
AVP: t=NAS-IP-Address(4) l=6 val=100.110.0.247
AVP: t=NAS-Identifier(32) l=19 val=68-13-E2-C2-19-70
AVP: t=Service-Type(6) l=6 val=Login(1)
AVP: t=Message-Authenticator(80) l=18 val=a646b2d8ff46c444a222236da8a7e800
Настройка Cisco ISE:
1.Создаем Network Device Profile. В нашем случае Eltex
2.Настраиваем созданный профайл "Eltex". Указываем протокол взаимодействия - Radius. В параметрах указываем атрибуты радиус по которым ISE будет определять типы Authentication/Authorization. Для этого настраиваем Flow Type Conditions:
Wireless MAB detected
Wireless Web Authentication detected
Так как для всех Wireless подключений атрибут идентификации Radius:NAS-Port-Type будет одинаков Wireless - IEEE 802.11, для:
Wireless MAB detected добавляем еще один атрибут Radius:Service-Type со значением Call Check
Wireless Web Authentication detected добавляем еще один атрибут Radius:Service-Type со значением Login
Также в "Host Lookup (MAB)" включаем Process Host Lookup, включаем используемый ТД протокол обмена подтверждениями, в нашем случае отключаем это Via PAP/ASCII и отключаем Check Password, так как ТД при mac авторизации передает в виде логина mac клиента, а в виде пароля nopassword. А Cisco ISE ожидает в поле пароля так-же мак адрес.
3.Создаем новый профиль сетевых устройств, в нашем случае "Eltex-AP".
4.Настраиваем взаимодействие с ТД по протоколу Radius. Можно указать подсеть ТД (в нашем случает это одна ТД и подсеть 100.110.0.247/32), в поле Device Profile выбираем ранее созданный профайл Eltex. Также необходимо указать secret key для протокола Radius, ранее настроенный на ТД.
5.Создать группу встроенных гостевых учетных записей, в нашем случае это Eltex-AP_testUsers и в этой группе создать учетные записи, в нашем случае это Gena и tester, задать им логин и пароль.
6.Настраиваем последовательность действий для гостевого портала (Guest Portal Sequence). Переходим в настройки Work Centers > Guest Access > Identities > Identity Source Sequence > Guest Portal Sequence - это предустановленная последовательность аутентификации гостевых пользователей. И в поле Authentication Search List выбираем порядок аутентификации пользователей. В нашем случае порядок как на скрине ниже: Internal Endpoints (MAB) → Internal Users (встроенные учетки) → Guest Users (учетки созданные пользователем самостоятельно на гостевом портале)
7.Создаем правило с разрешенными протоколами, в нашем случае MAB-WIFI_Eltex, в нем разрешаем Authentication Bypass>Process Host Lookup и Authentication Protocols>Allow PAP/ASCII
8.Настройка Authorization Profiles. На вкладке Work Centers > Guest Access > Policy Elements > Results > Authorization Profiles > Add создаем профиль авторизации под ранее созданный Network Device Profile. В данный сценарий можно включать параметры авторизации клиента, такие как CVLAN, ACL, shaper и т.п. через добавления различных атрибутов (который поддерживают или будут поддерживать ТД Eltex)
9.Настройка Policy Sets. На вкладке Work Centers > Guest Access > Policy Sets создаем политику доступа для WiFi пользователей. В нашем случае с названием Eltex-WIFI_Guest-Portal
В эту политику попадают клиенты приходящие с SSID "F.E.-ciscoPortal" и Flow Type Conditions соответствуют Wireless_MAB или WLC_WEB_Authentication
10.Настраиваем в данной политике правила аутентификации и авторизации.
В правиле аутентификации первым пунктам идет проверка пользователя по логину и паролю в базе Internal Users, вторым пунктам, если не сработал пункт один, проверяется mac адрес в базе EndPoints (MAB).
В правиле авторизации сначала проверяется пользователь по логину и паролю в базе Internal Users. Вторым пунктам, если не сработал пункт один, проверяется mac адрес в базе EndPoints (MAB). И в обоих случаях, в нашем случае при успешной проверке применяется действие PermitAccess, но можно применить созданное ранее Eltex-AP_guest (что является аналогичным, только добавляется еще один уровень абстракции) или более сложное в плане защищенности действие.
11.Настраиваем гостевой портал. В нашем случае настроено как на снимке (настройки довольно понятные и в основном касаются оформления страницы, запрашиваемых данных пользователя и пользовательских соглашений)
12.Адрес портала для настройки ссылки редиректа на ТД, можно получить по ссылке
Radius Logs
Radius live log, неизвестного клиента
Первая запись журнала, о том что клиент не смог пройти MAB аутентификацию, так как клиент еще прошел регистрацию на портале.
Вторая запись. О том что клиент не прошел динамическую авторизацию. ТД в данный момент не поддерживает CoA и данный способ не настраивался и не использовался.
Третья запись. О том что гость аутентифицировался на портале (после регистрации)
Четвертая запись. О том что пользователь успешно аутентифицировался и авторизовался через Radius по логину и паролю
Radius live log зарегистрированного клиента, по MAB (повторное после отключения от ТД или отключение и подключение к другой ТД)
Запись о том, что клиент успешно прошел MAB аутентификацию и авторизацию через RAdius (Cisco ISE занесла MAC клиента в базу EndPoints, при аутентификации пользователя на портале)
Следующая запись. Аккаунтинг пользователя
Cisco ISE + AD + AP (EAP-TLS)
Настройка связки Cisco ISE + Microsoft AD + Microsoft CA
Настройка Windows server для выполнения ролей AD + CS, создание пользователя, создания шаблона сертификата, настройка групповой политики автоматической выдачи сертификатов пользователям AD, настройка суппликанта Windows, хорошо описано в документыции: v1.31_Настройка взаимодействия SoftWLC с Microsoft Active Directory (AD) и Certificate Services (CS)
Добавление поддержки сертификатов ADCS в Cisco ISE
Требуется импортировать в Cisco ISE корневой сертификат AD-CA
Для этого в терминале Windows сервера экспортировать корневой сертификат AD-CA, командой:
certutil -ca.cert ROOT-CA_test.loc.cer
1.Импортируем корневой сертификат в доверенные сертификаты Cisco ISE
2.Генерируем CSR и скачиваем себе на комп
3.Выпускаем подписанный промежуточный сертификат для Cisco ISE, загрузив CSR на сервер и выполнив терминале команду
certreq.exe -submit -attrib "CertificateTemplate:SubCA" .\isetestMultiUse.pem
4.Скачиваем подписанный сертификат и добавляем его в Cisco ISE, выбираем сферы применения данного сертификата. В нашем случае выбрана только EAP-TLS авторизация, но можно применить данный сертификат, для админки, для гостевого портала, для Radius и pxGrid
Настройка Cisco ISE (EAP-TLS) для аутентификации и авторизации по сертификатам пользователей AD
1.Добавляем для Flow Type Conditions определение: Wireless 802.1x detected по атрибуту Radius:NAS-Port-Type значению Wireless - IEEE 802.11 и атрибуту Radius:Service-Type значению Framed
2.Добавляем в разрешенные протоколы: Allow EAP-TLS
3.Добавляем политику аутентификации-авторизации, в нашем случае Eltex-WIFI_dotx_TLS
4.Настраиваем политику аутентификации, в нашем случае использовать Preloaded_Certificate_Profile и политику авторизации, в нашем случае если это EAP-TLS, то просто PermitAccess
Radius Live Logs: авторизации клиента по EAP-TLS
Cisco ISE + AD + AP → EAP-TEAP (EAP Chaining). Авторизация по машинном и пользовательскому сертификату AD
Так-же EAP-Chaining будет работать и в случае EAP-FAST, но это подразумевает использование Cisco AnyConnect, в качестве суппликанта.
Настройка AD для выдачи пользовательского и машинного сертификата
- Перейти в Certificate Authority > Certificate Templates > Manage
- Для машинного сертификата копировать 'Workstation Authentication' шаблон и задать ему имя ('machine auth' в этом примере)
- В настройках шаблона на вкладке Security, разрешить Allow Read, Enroll and Autoenroll для 'Domain Computers'
- Для сертификата пользователя скопировать 'User' шаблон и изменить его имя ('user auth' в нашем примере)
- В настройках шаблона на вкладке Security, разрешить Allow Read, Enroll and Autoenroll для 'Domain Users'
Следующим шагом будет публикация вновь созданных шаблонов сертификатов, как показано ниже. Как только мы добавим сертификаты, они станут доступны для регистрации.
Далее используем групповую политику для автоматической регистрации сертификатов компьютера и пользователя и развертывания их на рабочих станциях.
- Открываем Group Policy Management консоль
- Редактируем GPO ту, которую хотите изменить (в данном примере используется политика по умолчанию)
- Переходим User | Computer Configuration, Policies, Windows Settings, Security Settings, и Public Key Policies.
- Двойной клик по Certificate Services Client - Auto-Enrollment.
- Изменяем Configuration Model на Enabled.
- Выбираем оба метода 'Renew expired certificates' и 'Update certificates that use certificate templates'.
- Нажимаем "ОК", чтобы сохранить изменения. Рабочие станции применят объект групповой политики и загрузят сертификат при следующем обновлении групповой политики.
Как только все настройки будут выполнены,можно либо перезагрузить компьютер пользователя, либо принудительно обновить объект групповой политики, запустив gpupdate /force в командной строке, чтобы получить сертификаты. Можно просмотреть сертификаты в консоли MMC (certlm.msc). На скринах ниже представлены как пользовательский, так и машинный сертификаты.
Настройка Cisco ISE
В данном разделе описываются только настройки индивидуальные для авторизации EAP-TEAP, остальные настройки (привязка ТД, генерация и привязка сертификатов AD-CS) идентичны настройкам Гостевого портала и EAP-TLS
Настраиваем 'Preloaded_Certificate_Profile' Administration > Identity Management > External Identity Sources > Certificate Authentication Profile
Для идентификации сертификатов ('Use Identity From'), необходимо выбрать 'Subject Alternative Name' в качестве 'Certificate Attribute' или переключиться на 'Any Subject or Alternative Name Attributes in the Certificate (for Active Directory Only)', иначе не будет работать авторизация по машинному сертификату.
Так-как ISE по умолчанию идентифицирует сертификат по атрибуту Subject (Субъект). В машинном сертификате, в поле 'Субъект' отсутствуют значения, в отличие от пользовательского сертификата.
Настраиваем 'Allowed Protocols' редактируя дефолтную политику 'Default Network Access' или создавая свою и редактируя ее. Необходимо включить 'Allow EAP-TLS' и EAP-TEAP выбрав пункты как на скрине ниже (обязательно включив 'Enable EAP Chaining')
Создаем политику аутентификации-авторизации в Policy Sets. В нашем случае политику 'Eltex-WIFI_dotx_TEAP', с фильтром по SSID (который вычитывается из Radius атрибута 'Called-Station-Id' и фильтра 'Smart Conditions')
Фильтр 'Smart Conditions', который задавали ранее в 'Network Device Profiles' для 'Wireless 802.1x detected'
Создаем профайл 'Eltex-cert_Machine-Only' для авторизации только по машинному сертификату, когда пользователь залогинился под локальной учетной записью и для аутентификации доступен только машинный сертификат.
Правило настроенное в данном профайле подразумевает (при совпадении условий авторизации) передачу Radius пакета 'Access_Accept' и Radius атрибута 'Radius:Tunnel-Private-Group-ID' со значением 4000, для помещения пользователя в CVLAN 4000 (в терминологии Cisco динамический VLAN). Так-же можно в данном правиле навешивать ACL ( именной или динамический) через другие атрибуты Radius (пока ТД Eltex не поддерживают). И другие политики которые поддерживают контроллер или ТД.
Настраиваем созданную политику 'Eltex-WIFI_dotx_TEAP' (как на снимке). Для аутентификации используем дефолтное правило с ранее отредактированным профилем 'Preloaded_Certificate_Profile'
Для авторизации создаем два правила. Одно 'Machine and User' для пользователей с обоими сертификатами (машинным и пользовательским), второе 'Machine Only' для пользователей вошедших на под локальной учетной записью и располагающие только машинным сертификатом. Для данного правила применяем политику 'Eltex-cert_Machine-Only', для присвоению пользователю CVLAN (ограниченный доступ).
Правило по дефолту остается, для тех кто не располагает сертификатами.
Windows 10 / Конфигурация Supplicant-а
Переходим в 'Параметры' и выбираем выданный AD-CS сертификат. В разделе 'Проверка подлинности клиента' в качестве основного и дополнительного методов выбираем 'Microsoft: смарт-карта или иной сертификат'
по очереди настраиваем их как на снимках ниже (выбирая сертификат выданный AD-CS)
Подтверждаем и закрываем настройки
Radius Live Logs
Авторизация по обоим сертификатам, машинному и пользовательскому (полный доступ). Пользователь вошел в систему под доменной учетной записью.
Авторизация только по машинному сертификату. Пользователь вошел в систему под локальной учетной записью.
Netams WNAM + Bras WLC
Начиная с версии WNAM 1.6.4010 доступно взаимодействие системы авторизации с аппаратным контроллером WLC (WLC-15/30/3200)
Данная статья служит для целей настройки взаимодействия NAC системы WNAM и BRAS WLC Eltex. Настраиваться будет Гостевой портал с авторизацией по коду Ваучера. Другие способы гостевой авторизации выходят за рамки данной статьи, так-как взаимодействие между WNAM и BRAS WLC Eltex не изменяется. При возникновении трудностей с другими видами гостевой авторизации необходимо обратиться к разработчику WNAM.
В нашем сценарии контроллер построен на основе маршрутизатора ESR, который выполняет не только функции управления точками доступа, но и выполняет роль сервисного маршрутизатора, обеспечивая также фильтрацию трафика, DHCP, NAT. Контроллер должен иметь установленную лицензию на BRAS. Подключение беспроводных сетей (SSID) к контроллеру возможно как по L2 с помощью VLAN (trunk port, sub interface), так и с помощью SoftGRE поверх L3. Работа функции хотспота в режиме Local switching не поддерживается.
Для понимания работы BRAS в WLC можно ознакомиться с документацией по взаимодействию BRAS ESR и гостевым порталом SWLC, по ссылкам: BRAS L3, BRAS L2, Troubleshooting
Описанный ниже сценарий предполагает, что вы предварительно полностью протестировали настройку контроллера и беспроводной сети в открытом режиме (без авторизации), и все сетевые сервисы подключающихся беспроводных клиентов успешно функционируют.
Контроллер имеет адрес 100.110.0246
Сервер авторизации WNAM имеет адрес 100.110.1.44
Клиенты получают адреса, и работают в сети VLAN 4 ( softgre 1.4 ) , адресация 192.168.3.0/24
Сервис для доступа в Интернет имеет имя INTERNET
Диаграмма взаимодействия пользователя WiFi, AP, BRAS_WLC, портала и Radius сервера WNAM
Настройка WLC
Настройка правил для Firewall:
object-group service airtune
port-range 8099
exit
object-group service dhcp_client
port-range 68
exit
object-group service dhcp_server
port-range 67
exit
object-group service dns
port-range 53
exit
object-group service netconf
port-range 830
exit
object-group service ntp
port-range 123
exit
object-group service radius_auth
port-range 1812
exit
object-group service sa
port-range 8043-8044
exit
object-group service ssh
port-range 22
exit
object-group service http
port-range 80
exit
object-group network wnam_servers
ip address-range 100.110.1.44
exit
object-group network bras_users
ip address-range 192.168.3.20-192.168.3.250
exit
object-group url defaultService
url http://100.110.1.44
exit
Настройка ACL:
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
Настройка функции 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 #Данный адрес зашит в WNAM, для связки с BRAS-WLC Eltex
session-timeout 600
exit
enable
exit
Настройки RADIUS-сервера
radius-server local
nas ap
key ascii-text encrypted 8CB5107EA7005AFF
network 192.168.1.0/24
exit
nas local
key ascii-text encrypted 8CB5107EA7005AFF
network 127.0.0.1/32
exit
domain default
exit
virtual-server default
enable
exit
enable
exit
radius-server host 100.110.1.44
key ascii-text encrypted 88B11079B9014FAAF7B9
source-address 100.110.0.246
exit
radius-server host 127.0.0.1
key ascii-text encrypted 8CB5107EA7005AFF
exit
aaa radius-profile bras_radius
radius-server host 100.110.1.44
exit
aaa radius-profile default_radius
radius-server host 127.0.0.1
exit
das-server das
key ascii-text encrypted 88B11079B9014FAAF7B9
port 3799
clients object-group wnam_servers
exit
aaa das-profile bras_das
das-server das
exit
Настройка клиентского бриджа:
bridge 4
description "SoftGRE_or_L2-BRAS"
vlan 4
security-zone users
ip firewall disable
ip address 192.168.3.1/24
service-subscriber-control object-group bras_users
location data10
protected-ports local
no spanning-tree
enable
exit
Настройка WNAM
На стороне системы авторизации создаётся объект Сервер доступа (тип: Eltex), указывается RADIUS-ключ, а также дополнительные параметры RADIUS:
Конфигурация → Сервера доступа → Создать сервер
В закладке Параметры заполняем поля IP адрес и Внешний IP адрес (адрес вашего WLC, смотрящий в сторону WNAM), Имя устройства и Местоположение (произвольно)
В закладке RADIUS в поле 'Атрибуты CoA / пост-авторизации' вставляем следующие атрибуты
Cisco-AVPair=subscriber:command=account-loggon
Idle-Timeout=1200
Acct-Interim-Interval=300
Cisco-AVPair=subscriber:vrf=1
Далее создаем площадку, к которой у нас будет привязана страница гостевого портала.
Конфигурация → Площадки → Создать площадку.
В поле 'Тип' выбираем 'Площадка', в поле 'Разрешенный сервер доступа' выбираем созданный ранее сервер. В поле 'Присвоенная IP подсеть или МАС точек доступа' указываем наш пул IP для пользователей портала (который настроили на WLC). Так через привязку пулов IP, можно привязать разные Площадки с разными порталами авторизации, трафик абонентов которых терминируется на одном WLC (Разрешенный сервер соответственно на разных площадках будет один и тот же).
Выбираем созданную площадку и на вкладке 'Авторизация' выбираем 'Метод' 'Ввод кода с ваучера', выбираем сколько будет действовать данная авторизация и 'Имя страницы' 'Ваучер (по умолчанию)'. Данных настроек достаточно для работы Гостевого портала с авторизацией по коду из Ваучера.
Настройка других способов авторизации выходит за рамки данной статьи.
Создаем ваучеры для авторизации. 'Конфигурация' → 'Гостевая авторизация' → 'Ваучеры' → 'Создать группу ваучеров'
В дальнейшем коды данных ваучеров будут использоваться для авторизации клиентов на гостевом портале.
Создаем правила аутентификации
Создаем правило для редиректа на гостевой портал (копируем дефолтное правило редиректа и модифицируем его)
Настраиваем правило как на скрине ниже. Источник запроса выбираем проводной (так-как брас у нас находится на проводном интерфейсе). Во 'Входящий радиус атрибут' выбираем по имени 'NAS-Port-ID' равным тому 'location' который указали в настройках Bridge на WLC, на который терминируется клиентский трафик. Так мы привяжем данное правило к нашему SSID с гостевым доступом. Если у вас много правил и используется много разных политик аутентификаций и авторизаций клиентов, данное правило можно кастомизировать дополнительными параметрами, под свои потребности.
Правило аутентификации привязывается к правилу авторизации при помощи тега (в самом низу снимка). Обратите внимание, чтоб тэг был уникальным и совпадал с соответствующим правилом авторизации (если сработало правило аутентификации, далее по данному тегу запускается соответствующее правило авторизации)
Создаем правило аутентификации для доступа клиента в Internet
Настраиваем как на снимке, источник запроса и Входящий RADIUS атрибут настраиваем так-же как в правиле для редиректа (объяснение выше). Так-же обращаю внимание на необходимости уникальности тега (объяснение выше)
Создаем правила авторизации
Первое правило для редиректа на портал. Результатом должно стать отправки пакета Radius 'Access-Reject' брасу.
Настраиваем как на снимке ниже.
Внимание. Правило привязывается по совпадению тега (должен быть такой же как в правиле аутентификации)
Второе правило для предоставления доступа в Internet. Результатом должно стать: отправка пакета Radius 'Access-Accept' брасу. В котором будет содержаться атрибут с указанием наименования сервиса доступного абоненту. Настраиваем как на скрине ниже.
Для этого в 'Применить' в 'RADIUS атрибуты' необходимо прописать атрибут назначающий сессии клиента сервис доступа INTERNET.
Cisco-Account-Info=AINTERNET
Контроллер в ходе авторизации запрашивает параметры сервиса INTERNET в пакете 'Access-Request', и WNAM автоматически отдаёт их в пакете 'Access-Accept' в атрибуте 'Cisco-AVPair' со значением 'subscriber:traffic-class=INTERNET' (зашито в логику взаимодействия с оборудованием Eltex, не требует дополнительной настройки).
Debug
Можно посмотреть логи работы правил авторизации: 'Диагностика' → 'Корпоративные подключения'
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)
Посмотреть информацию об использовании ваучеров. 'Конфигурация' → 'Гостевая авторизация' → 'Ваучеры'. Выбрать нужную группу.
Посмотреть информацию по клиенту (авторизации, сессии и т.д.)
F.E.wlc-30# 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 F.E.wlc-30# 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 F.E.wlc-30# 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 --
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






































































