Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue

Оглавление

Отображение дочерних

Оглавление

Интеграция со сторонними NAC системами

Cisco ISE - Гостевой портал + ТД Realtek 2.5.5 build 14 (задача по тестированию #301370)

Для тестирования портальной авторизации с Cisco ISE использовалась ТД WOP-30LS c тестовой прошивкой 2.5.5 build 14 (задача #317673), в которой сняты ограничения на пропуск трафика на все порты при редиректе клиента на гостевой портал (в обычной прошивке доступны только порты 80, 8080, 443) и Добавлен атрибут:

Service-Type (6).
Значения следующие:
Captive Portal = Service-Type: Login (1),
802.1X = Service-Type: Framed (2),
MAC = Service-Type: Call Check (10).

Описание реализации на ТД: Портальная авторизация Cisco-like
Задача по реализации функционала: #277209

Настройка на стороне ТД

...

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 шаблона для внешней портальной авторизации

...

Параметр

...

Описание

...

URL, который изначально запрашивал клиент

Блок кода
languagebash
titleЧасть конфига ТД относящаяся к настройке портала
            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:

  1. При первом подключении клиента (ISE ничего о нем не знает, ТД тоже), ТД пытается пройти MAB авторизацию на NAC сервере, подставляя MAC адрес клиента в атрибуты User-Name и User-Password запроса access-request к Radius серверу. Так-как ISE ничего не знает о данном клиенте, он присылает access-reject
  2. После того как ТД получила 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, с доступом только до гостевого портала.
  3. После саморегистрации пользователя на гостевом портале и успешного логина через форму портала, по присланному логину и паролю, информация об устройстве как устройство MAB заносится в базу Endpoins, в которой содержится в том числе мак клиента. А клиенту возвращается ссылка редиректа на 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
  4. Когда клиент переходит по этой ссылке ТД вычитывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request , radius успешно авторизует клиента и ТД снимает ACL на доступ клиента и редиректит на изначально запрашиваемый пользователем портал.
  5. После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по mac адресу (так-как этот сценарий реализован в логике ТД "external portal" и срабатывает при подключении к SSID, если ТД не "помнит" клиента). И редиректа пользователя на портал происходить не будет, до тех пор, пока endpoint клиента не будет удален из базы, в ручную или автоматически (по какой-то настроенной логике)

...

Рис.1 Процесс авторизации нового клиента(по логину и паролю)

Image Removed

Рис.2 Процесс авторизации зарегистрированного клиента(MAB)

Результаты тестирования:

Проверил возможность MAB (mac) авторизации пользователей на портале. Работает .
Cisco ISE распознает подставляемые в атрибутах User-Name (запроса access-request ) mac-адрес и по нему находит "конечную точку" в базе Endpoins (конечно после того, как пользователь зарегился и успешно аутентифицировался через портал). Проверку User-Password отключил, так-как ТД передает 'nopassword", а Cisco ISE ожидает мак-адрес. Если для кого-то из клиентов это будет критично, необходимо на ТД необходимо будет реализовать передачу в атрибуте User-Password mac-адрес клиента в таком же виде как и в атрибуте User-Name (без разделителей)

Проверил работу регистрации на гостевом портале с последующей аутентификацией и авторизацией клиента через RADIUS. Работает.

Проверил сценарий портальной авторизации согласно логики зашитой в ТД  "Cisco-Like". Работает:
В котором ТД известного клиента сначала аутентифицирует через Radius по mac, затем получив access-reject, редиректит на  портал cisco ISE, после регистрации пользователя на портале и получения пользователям ссылки редиректа вида 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
перехода клиента по данной ссылке, авторизует через Radius, по выданному порталом логину и паролю (которые портал включил в ссылку редиректа, в виде объектов &username=Gena&password=Password414)
При отключении клиента от ТД и повторном подключении (через промежуток превышающий параметр age-timeout , указанный на ТД) или подключении к другой ТД вещающей ту же WIFI сеть, ТД авторизует клиента по mac адресу (так-как Cisco ISE уже знает клиента и занесла его mac адрес в базу EndPoints). 

Блок кода
languagebash
titleПакеты Radius в процессе авторизации неизвестного клиента
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
Блок кода
languagebash
titleАтрибуты пакета Access-request. "Аутентификация по мак адресу"
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
Блок кода
languagebash
titleАтрибуты пакета Access-request. "Аутентификация по логину-паролю"
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

Dump файл Radius обмена ТД и Cisco ISE dump-ise-radius.pcap

Для более продвинутых сценариев гостевого доступа, необходимо так-же реализовать:

  1. Принятие ссылки редиректа через radius атрибут
  2. Поддержка ТД named или dynamic ACL и назначение по получении через атрибуты radius access-accept или CoA-Request атрибуты
  3. Желательно поддержать атрибут ограничения скорости входящего и исходящего трафика для клиента
  4. Желательно поддержать radius атрибут NAS-Identifier, для идентификации локации ТД

В задаче #308897 идет проработка требований для реализации сценариев Норникеля, для реализации которых так-же потребуется доработка передачи, приема и обработка атрибутов radius и CoA.

Настройка Cisco ISE:

Создаем Network Device Profile. В нашем случае Eltex
Image Removed 

Настраиваем созданный профайл "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 ожидает в поле пароля так-же мак адрес
Image Removed

Создаем новый профиль сетевых устройств, в нашем случае  "Eltex-AP"
Image Removed

Настраиваем взаимодействие с ТД по протоколу Radius. Можно указать подсеть ТД (в нашем случает это одна ТД и подсеть 100.110.0.247/32), в поле Device Profile выбираем ранее созданный профайл Eltex. Так-же необходимо указать secret key для протокола Radius, ранее настроенный на ТД
Image Removed 

Можно создать группу встроенных гостевых учетных записей, в нашем случае это Eltex-AP_testUsers и в этой группе создать учетные записи, в нашем случае это Gena и tester, задать им логин и парольImage Removed

Настраиваем последовательность действий для гостевого портала (Guest Portal Sequence). Переходим в настройки Work Centers > Guest Access > Identities > Identity Source Sequence > Guest Portal Sequence - это предустановленная последовательность аутентификации гостевых пользователей. И в поле Authentication Search List выбираем порядок аутентификации пользователей. В нашем случае порядок как на скрине ниже: Internal Endpoints (MAB) → Internal Users (встроенные учетки) → Guest Users (учетки созданные пользователем самостоятельно на гостевом портале)
Image Removed

Создаем правило с разрешенными протоколами, в нашем случае MAB-WIFI_Eltex, в нем разрешаем Authentication Bypass>Process Host Lookup и Authentication Protocols>Allow PAP/ASCIIImage Removed

Настройка Authorization Profiles. На вкладке  Work Centers > Guest Access > Policy Elements > Results > Authorization Profiles > Add создаем профиль авторизации под ранее созданный Network Device Profile. В данный сценарий можно включать параметры авторизации клиента, такие как CVLAN, ACL, shaper и т.п. через добавления различных атрибутов (который поддерживают или будут поддерживать ТД Eltex)Image Removed

Настройка 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

Image Removed

Настраиваем в данной политике правила аутентификации и авторизации. 
В правиле аутентификации первым пунктам идет проверка пользователя по логину и паролю в базе Internal Users, вторым пунктам, если не сработал пункт один, проверяется mac адрес в базе EndPoints (MAB).
В правиле авторизации сначала проверяется пользователь по логину и паролю в базе Internal Users, вторым пунктам, если не сработал пункт один, проверяется mac адрес в базе EndPoints (MAB) и в обоих случаях, в нашем случае при успешной проверке навешивается действие PermitAccess, но можно навесить созданное ранее Eltex-AP_guest (что в принципе одно и тоже, только добавляется еще один уровень абстракции) или более сложное в плане секьюрности действие.
Image Removed

Настраиваем гостевой портал. В нашем случае настроено как на скриншоте (настройки довольно понятные и в основном касаются оформления страницы, запрашиваемых данных пользователя и пользовательских соглашений)
Image Removed

Адрес портала для настройки ссылки редиректа на ТД, можно получить по ссылке
Image Removed

...

Radius live log, неизвестного клиента
Image Removed

Первая запись журнала, о том что клиент не смог пройти MAB аутентификацию, так-как клиент еще прошел регистрацию на портале.Image Removed

Вторая запись. О том что клиент не прошел динамическую авторизацию. ТД в данный момент не поддерживает CoA и данный способ не настраивался и не использовался.
Image Removed

Третья запись. О том что гость аутентифицировался на портале (после регистрации)
Image Removed

Четвертая запись. О том что пользователь успешно аутентифицировался и авторизовался через Radius по логину и паролю
Image Removed

Radius live log зарегистрированного клиента, по MAB (повторное после отключения от ТД или отключение и подключение к другой ТД)
Image Removed

Запись о том, что клиент успешно прошел MAB аутентификацию и авторизацию через RAdius (Cisco ISE занесла мак клиента в базу EndPoints, при аутентификации пользователя на портале)
Image Removed

Следующая запись. Аккаунтинг пользователя
Image Removed 

Cisco ISE + AD + AP WOP-30LS (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, командой:

Блок кода
languagebash
titleэкспорт корневого сертификата AD-CA
certutil -ca.cert ROOT-CA_test.loc.cer

Импортируем корневой сертификат в доверенные сертификаты Cisco ISE
Image Removed
Image Removed

Генерируем CSR и скачиваем себе на комп
Image Removed
Image Removed

Выпускаем подписанный промежуточный сертификат для Cisco ISE, загрузив CSR на сервер и выполнив терминале команду 

Блок кода
languagebash
titleВыпускаем подписанный промежуточный серитфикат
certreq.exe -submit -attrib "CertificateTemplate:SubCA" .\isetestMultiUse.pem

Скачиваем подписанный сертификат и добавляем его в Cisco ISE, выбираем сферы применения данного сертификата. В нашем случае выбрана только EAP-TLS авторизация, но можно применить данный сертификат, для админки, для гостевого портала, для Radius и pxGrid
Image Removed
Image Removed

Настройка Cisco ISE (EAP-TLS) для аутентификации и авторизации по сертификатам пользователей AD

Добавляем для Flow Type Conditions определение: Wireless 802.1x detected  по атрибуту Radius:NAS-Port-Type значению Wireless - IEEE 802.11 и атрибуту Radius:Service-Type значению Framed
Image Removed

Добавляем в разрешенные протоколы: Allow EAP-TLS
Image Removed

Добавляем политику аутентификации-авторизации, в нашем случае Eltex-WIFI_dotx_TLS
Image Removed

Настраиваем политику аутентификации, в нашем случае использовать Preloaded_Certificate_Profile и политику авторизации, в нашем случае если это EAP-TLS, то просто PermitAccess 
Image Removed

Radius Live Logs: авторизации клиента по EAP-TLS 

Image Removed

Дампы EAPOL обмена и Radius обмена
dump-ise-eapol_TLS.pcap         dump-ise-radius_TLS.pcap

Cisco ISE + AD + AP WOP-30LS → EAP-TEAP (EAP Chaining). Авторизация по машинном и пользовательскому сертификату AD

Так-же EAP-Chaining будет работать и в случае EAP-FAST, но это подразумевает использование Cisco AnyConnect, в качестве суппликанта.

Настройка ТД WOP-30LS 

Настройка WOP-30LS  c тестовой прошивкой 2.5.5 build 14 (задача #317673), в которой реализована передача Radius атрибута Service-Type, происходит как для обычной Enterprise авторизации Настройка VAP с Enterprise-авторизацией

Настройка AD для выдачи пользовательского и машинного сертификата

  1. Перейти в Certificate Authority > Certificate Templates > Manage
  2. Для машинного сертификата копировать 'Workstation Authentication' шаблон и задать ему имя ('machine auth' в этом примере)
  3. В настройках шаблона на вкладке Security,  разрешить Allow Read, Enroll and Autoenroll для 'Domain Computers'
  4. Для сертификата пользователя скопировать  'User' шаблон и изменить его имя ('user auth' в нашем примере)
  5. В настройках шаблона на вкладке Security, разрешить Allow Read, Enroll and Autoenroll для 'Domain Users'

Image Removed

Image Removed

Image Removed

Следующим шагом будет публикация вновь созданных шаблонов сертификатов, как показано ниже. Как только мы добавим сертификаты, они станут доступны для регистрации.
Image Removed

Image Removed

Далее используем групповую политику для автоматической регистрации сертификатов компьютера и пользователя и развертывания их на рабочих станциях.

  1. Открываем Group Policy Management консоль
  2. Редактируем GPO ту, которую хотите изменить (в данном примере используется политика по умолчанию)
  3. Переходим User | Computer Configuration, Policies, Windows Settings, Security Settings, и Public Key Policies.
  4. Двойной клик по Certificate Services Client - Auto-Enrollment.
  5. Изменяем Configuration Model на Enabled.
  6. Выбираем оба метода 'Renew expired certificates' и 'Update certificates that use certificate templates'.
  7. Нажимаем "ОК", чтобы сохранить изменения. Рабочие станции применят объект групповой политики и загрузят сертификат при следующем обновлении групповой политики.

Image Removed

Image Removed

Как только все настройки будут выполнены,можно либо перезагрузить компьютер пользователя, либо принудительно обновить объект групповой политики, запустив gpupdate /force в командной строке, чтобы получить сертификаты. Можно просмотреть сертификаты в консоли MMC (certlm.msc). На скринах ниже представлены как пользовательский, так и машинный сертификаты.

Image Removed

Настройка Cisco ISE

В данном разделе описываются только настройки индивидуальные для авторизации EAP-TEAP, остальные настройки (привязка ТД, генерация и привязка сертификатов AD-CS) идентичны настройкам Гостевого портала и EAP-TLS 

Настраиваем 'Preloaded_Certificate_Profile'  Administration Identity Management > External Identity Sources > Certificate Authentication Profile
Image Removed 

Для идентификации сертификатов ('Use Identity From'), необходимо выбрать  'Subject Alternative Name' в качестве 'Certificate Attribute' или переключиться на   'Any Subject or Alternative Name Attributes in the Certificate (for Active Directory Only)', иначе не будет работать авторизация по машинному сертификату. 

Image Removed

Так-как ISE по умолчанию идентифицирует сертификат по атрибуту Subject (Субъект). В машинном сертификате, в поле 'Субъект' отсутствуют значения, в отличие от пользовательского сертификата. 
Image Removed

Настраиваем 'Allowed Protocols' редактируя дефолтную политику 'Default Network Access' или создавая свою и редактируя ее. Необходимо включить 'Allow EAP-TLS' и EAP-TEAP выбрав пункты как на скрине ниже (обязательно включив 'Enable EAP Chaining')
Image Removed

Image Removed

Создаем политику аутентификации-авторизации в Policy Sets. В нашем случае политику 'Eltex-WIFI_dotx_TEAP', с фильтром по SSID (который вычитывается из Radius атрибута 'Called-Station-Id' и фильтра 'Smart Conditions')
Image Removed 

Image Removed
Фильтр 'Smart Conditions', который задавали ранее в 'Network Device Profiles' для 'Wireless 802.1x detected'
Image Removed

...

Image Removed

Правило настроенное в данном профайле подразумевает (при совпадении условий авторизации) передачу Radius пакета  'Access_Accept' и Radius атрибута 'Radius:Tunnel-Private-Group-ID' со значением 4000, для помещения пользователя в CVLAN 4000 (в терминологии Cisco динамический VLAN). Так-же можно в данном правиле навешивать ACL ( именной или динамический) через другие атрибуты Radius (пока ТД Eltex не поддерживают). И другие политики которые поддерживают контроллер или ТД.
Image Removed

...

Windows 10 / Конфигурация Supplicant-а

Image Removed

Image Removed

Image Removed

Image Removed

Переходим в 'Параметры' и выбираем выданный AD-CS сертификат. В разделе 'Проверка подлинности клиента' в качестве основного и дополнительного методов выбираем 'Microsoft: смарт-карта или иной сертификат' 

Image Removed

и поочереди настраиваем их как на скринах ниже (выбирая сертификат выданный AD-CS)
Image Removed

Подтверждаем и закрываем настройки
Image Removed

Radius Live Logs

Авторизация по обоим сертификатам, машинному и пользовательскому (полный доступ). Пользователь вошел в систему под доменной учетной записью.
Image Removed

Image Removed

Image Removed

Авторизация только по машинному сертификату. Пользователь вошел в систему под локальной учетной записью.
Image Removed
Image Removed
Image Removed

Дампы EAPOL обмена и Radius обмена
dump-ise-eapol_teap-cert_all.pcap       dump-ise-eapol_teap-cert_machine-only.pcap
dump-ise-radius-teap-cert_all.pcap      dump-ise-radius_teap-cert_machine-only.pcap

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 L2Troubleshooting

Описанный ниже сценарий предполагает, что вы предварительно полностью протестировали настройку контроллера и беспроводной сети в открытом режиме (без авторизации), и все сетевые сервисы подключающихся беспроводных клиентов успешно функционируют.

Контроллер имеет адрес 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

Файл дампа RADIUS обмена radius_wnam.pcap

Настройка WLC

Настройка правил для Firewall:

...

Настройка 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-сервера 

...

Настройка клиентского бриджа:

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

Полная конфигурация контроллера приведена в приложенном файле: wlc30_bras-wnam_hospot

Настройка WNAM

На стороне системы авторизации создаётся объект Сервер доступа (тип: Eltex), указывается RADIUS-ключ, а также дополнительные параметры RADIUS:
Конфигурация → Сервера доступа → Создать сервер
В закладке Параметры заполняем поля IP адрес и Внешний IP адрес (адрес вашего WLC, смотрящий в сторону WNAM), Имя устройства и Местоположение (произвольно)

Image Removed

В закладке RADIUS в  поле 'Атрибуты CoA / пост-авторизации' вставляем следующие атрибуты

Cisco-AVPair=subscriber:command=account-loggon
Idle-Timeout=1200
Acct-Interim-Interval=300
Cisco-AVPair=subscriber:vrf=1
Image Removed

Далее создаем площадку, к которой у нас будет привязана страница гостевого портала.
Конфигурация → Площадки → Создать площадку. 
В поле 'Тип' выбираем 'Площадка', в поле 'Разрешенный сервер доступа' выбираем созданный ранее сервер. В поле 'Присвоенная IP подсеть или МАС точек доступа' указываем наш пул IP для пользователей портала (который настроили на WLC). Так через привязку пулов IP, можно привязать разные Площадки с разными порталами авторизации, трафик абонентов которых терминируется на одном WLC (Разрешенный сервер соответственно на разных площадках будет один и тот же).
Image Removed

Выбираем созданную площадку и на вкладке 'Авторизация' выбираем 'Метод' 'Ввод кода с ваучера', выбираем сколько будет действовать данная авторизация и 'Имя страницы' 'Ваучер (по умолчанию)'. Данных настроек достаточно для работы Гостевого портала с авторизацией по коду из Ваучера. 
Настройка других способов авторизации выходит за рамки данной статьи.

Image Removed 

Создаем ваучеры для авторизации. 'Конфигурация' → 'Гостевая авторизация' → 'Ваучеры' → 'Создать группу ваучеров' 
Image Removed

В дальнейшем коды данных ваучеров будут использоваться для авторизации клиентов на гостевом портале.
Image Removed

Создаем правила аутентификации:

Создаем правило для редиректа на гостевой портал (копируем дефолтное правило редиректа и модифицируем его)
Настраиваем правило как на скрине ниже. Источник запроса выбираем проводной (так-как брас у нас находится на проводном интерфейсе). Во  'Входящий радиус атрибут' выбираем по имени '
NAS-Port-ID' равным тому 'location' который указали в настройках Bridge на WLC, на который терминируется клиентский трафик.  Так мы привяжем данное правило к нашему SSID с гостевым доступом. Если у вас много правил и используется много разных политик аутентификаций и авторизаций клиентов, данное правило можно кастомизировать дополнительными параметрами, под свои потребности.
Правило аутентификации привязывается к правилу авторизации при помощи тега (в самом низу скрина). Обратите внимание, чтоб тэг бэл уникальным и совпадал с соответствующим правилом авторизации (если сработало правило аутентификации, далее по данному тегу запускается соответствующее правило авторизации)

Image Removed 

Создаем правило аутентификации для доступа клиента в Internet
Настраиваем как на скрине, источник запроса и Входящий RADIUS атрибут настраиваем так-же как в правиле для редиректа (объяснение выше). Так-же обращаю внимание на необходимости уникальности тега (объяснение выше)
Image Removed

Создаем правила авторизации:

Первое правило для редиректа на портал. Результатом должно стать отправки пакета Radius 'Access-Reject' брасу.
Настраиваем как на скрине ниже.
Внимание. Правило привязывается по совпадению тега (должен быть такой же как в правиле аутентификации)

Image Removed

Второе правило для предоставления доступа в Internet. Результатом должно стать: отправка пакета Radius 'Access-Accept' брасу. В котором будет содержаться атрибут с указанием наименования сервиса доступного абоненту. Настраиваем как на скрине ниже.

Для этого в 'Применить' в 'RADIUS атрибуты' необходимо прописать атрибут назначающий сессии клиента сервис  доступа INTERNET.

Cisco-Account-Info=AINTERNET

Image Removed

Контроллер в ходе авторизации запрашивает параметры сервиса INTERNET в пакете 'Access-Request', и WNAM автоматически отдаёт их в пакете 'Access-Accept' в атрибуте 'Cisco-AVPair' со значением 'subscriber:traffic-class=INTERNET' (зашито в логику взаимодействия с оборудованием Eltex, не требует дополнительной настройки).

Debug:

Можно посмотреть логи работы правил авторизации: 'Диагностика' → 'Корпоративные подключения'

Image Removed

Блок кода
languagebash
titleЛог 'Доступ для гостевого Wi-Fi tester Guest Portal Redirect'
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
Блок кода
languagebash
titleЛог 'Доступ для гостевого Wi-Fi tester Доступ для гостевого Wi-Fi'
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)

Посмотреть информацию об использовании ваучеров. 'Конфигурация' → 'Гостевая авторизация' → 'Ваучеры'. Выбрать нужную группу.
Image Removed

Посмотреть информацию по клиенту (авторизации, сессии и тд)
Image Removed

Блок кода
languagebash
titleАктивные Wi-Fi подключения клиента, сервисы и сессии видны на контроллере:
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    --
               
Блок кода
languagebash
titleНа сервере 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