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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Комментарий: добавил интеграцию через wlc

Оглавление

Cisco ISE - Гостевой портал + Eltex

WLC

AP

Настройка на

WLC

ТД

Конфигурации контроллера Команды для настройки внешней портальной авторизации на ТД (ссылка на инструкцию Контроллеры беспроводного доступа)

За основу возьмем factory-config:

Раскрытьtitleпример factory-config

: https://docs.eltex-co.ru/pages/viewpage.action?pageId=444825607#id-РуководствопоэксплуатацииWEP-30L,WEP-30L-Z-НастройкаVAPсвнешнейпортальнойавторизацией)


Блок кода
languagepy
object-group service ssh
  port-range 22
exit
object-group service dhcp_server
  port-range 67
exit
object-group service dhcp_client
  port-range 68
exit
object-group service ntp
  port-range 123
exit
object-group service dns
  port-range 53
exit
object-group service netconf
  port-range 830
exit
object-group service radius_auth
  port-range 1812
exit
object-group service sa
  port-range 8043-8044
exit
object-group service airtune
  port-range 8099
exit
object-group service web
  port-range 443
exit

syslog max-files 3
syslog file-size 512
syslog file tmpsys:syslog/default
  severity info
exit

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 127.0.0.1
  key ascii-text encrypted 8CB5107EA7005AFF
exit
aaa radius-profile default_radius
  radius-server host 127.0.0.1
exit

boot host auto-config
boot host auto-update

vlan 3
  force-up
exit
vlan 2
exit

no spanning-tree

domain lookup enable

security zone trusted
exit
security zone untrusted
exit
security zone users
exit

bridge 1
  vlan 1
  security-zone trusted
  ip address 192.168.1.1/24
  no spanning-tree
  enable
exit
bridge 2
  vlan 2
  security-zone untrusted
  ip address dhcp
  no spanning-tree
  enable
exit
bridge 3
  vlan 3
  mtu 1458
  security-zone users
  ip address 192.168.2.1/24
  no spanning-tree
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  switchport access vlan 2
exit
interface gigabitethernet 1/0/2
  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

tunnel softgre 1
  mode data
  local address 192.168.1.1
  default-profile
  enable
exit

security zone-pair trusted untrusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted trusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted self
  rule 10
    action permit
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 20
    action permit
    match protocol icmp
    enable
  exit
  rule 30
    action permit
    match protocol udp
    match source-port object-group dhcp_client
    match destination-port object-group dhcp_server
    enable
  exit
  rule 40
    action permit
    match protocol udp
    match destination-port object-group ntp
    enable
  exit
  rule 50
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 60
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
  rule 70
    action permit
    match protocol tcp
    match destination-port object-group netconf
    enable
  exit
  rule 80
    action permit
    match protocol tcp
    match destination-port object-group sa
    enable
  exit
  rule 90
    action permit
    match protocol udp
    match destination-port object-group radius_auth
    enable
  exit
  rule 100
    action permit
    match protocol gre
    enable
  exit
  rule 110
    action permit
    match protocol tcp
    match destination-port object-group airtune
    enable
  exit
  rule 120
    action permit
    match protocol tcp
    match destination-port object-group web
    enable
  exit
exit
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
exit
security zone-pair users self
  rule 10
    action permit
    match protocol icmp
    enable
  exit
  rule 20
    action permit
    match protocol udp
    match source-port object-group dhcp_client
    match destination-port object-group dhcp_server
    enable
  exit
  rule 30
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 40
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
exit
security zone-pair users untrusted
  rule 1
    action permit
    enable
  exit
exit

security passwords default-expired

nat source
  ruleset factory
    to zone untrusted
    rule 10
      description "replace 'source ip' by outgoing interface ip address"
      action source-nat interface
      enable
    exit
  exit
exit

ip dhcp-server
ip dhcp-server pool ap-pool
  network 192.168.1.0/24
  address-range 192.168.1.2-192.168.1.254
  default-router 192.168.1.1
  dns-server 192.168.1.1
  option 42 ip-address 192.168.1.1
  vendor-specific
    suboption 12 ascii-text "192.168.1.1"
    suboption 15 ascii-text "https://192.168.1.1:8043"
  exit
exit
ip dhcp-server pool users-pool
  network 192.168.2.0/24
  address-range 192.168.2.2-192.168.2.254
  default-router 192.168.2.1
  dns-server 192.168.2.1
exit

softgre-controller
  nas-ip-address 127.0.0.1
  data-tunnel configuration wlc
  aaa radius-profile default_radius
  keepalive-disable
  service-vlan add 3
  enable
exit

wlc
  outside-address 192.168.1.1
  service-activator
    aps join auto
  exit
  airtune
    enable
  exit
  ap-location default-location
    description "default-location"
    mode tunnel
    ap-profile default-ap
    airtune-profile default_airtune
    ssid-profile default-ssid
  exit
  airtune-profile default_airtune
    description "default_airtune"
  exit
  ssid-profile default-ssid
    description "default-ssid"
    ssid "default-ssid"
    radius-profile default-radius
    vlan-id 3
    security-mode WPA2_1X
    802.11kv
    band 2g
    band 5g
    enable
  exit
  radio-2g-profile default_2g
    description "default_2g"
  exit
  radio-5g-profile default_5g
    description "default_5g"
  exit
  ap-profile default-ap
    description "default-ap"
    password ascii-text encrypted 8CB5107EA7005AFF
  exit
  radius-profile default-radius
    description "default-radius"
    auth-address 192.168.1.1
    auth-password ascii-text encrypted 8CB5107EA7005AFF
    domain default
  exit
  wids-profile default-wids
    description "default-wids"
  exit
  ip-pool default-ip-pool
    description "default-ip-pool"
    ap-location default-location
  exit
  enable
exit

wlc-journal all
  limit days 365
exit

ip ssh server

ip tftp client timeout 45
ntp enable
ntp broadcast-client enable

ip https server

Внесём изменения в конфигурацию:

Раскрыть
titleизменения в конфигурации WLC
Блок кода
languagepy
radius-server local
  virtual-server default
    proxy-mode
    upstream-server 1
      host 100.110.0.161
      server-type all
      key ascii-text secret123
    exit
    enable
  exit
exit

radius-server host 100.110.0.161
  key ascii-text secret123
exit
radius-server host 127.0.0.1
  key ascii-text password
exit
aaa radius-profile default_radius
  radius-server host 100.110.0.161
  radius-server host 127.0.0.1
exit

das-server COA
  key ascii-text secret123
  port 1700
exit
aaa das-profile COA
  das-server COA
exit

security zone-pair untrusted self
  rule 2
    action permit
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 3
    action permit
    match protocol tcp
    match destination-port object-group web
    enable
  exit
  rule 4
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 5
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
exit

ip route 0.0.0.0/0 x.x.x.x

wlc
  ssid-profile default-ssid
    ssid "cisco_ise"
    radius-profile default-radius
    portal-enable
    portal-profile default-portal
    vlan-id 3
    band 2g
    band 5g
    enable
  exit
  ap-profile default-ap
    password ascii-text password
    services
      ip telnet server
      ip ssh server
      ip http server
    exit
  exit
  portal-profile default-portal
    redirect-url-custom https://x.x.x.x:8443/portal/PortalSetup.action?portal=10968c1f-36fe-4e5c-96ff-9d74f689b29b?action_url=<SWITCH_URL>&redirect=<ORIGINAL_URL>&ap_mac=<AP_MAC>
    age-timeout 10
    verification-mode external-portal
  exit
  radius-profile default-radius
    auth-address 100.110.0.161
    auth-password ascii-text secret123
    auth-acct-id-send
    acct-enable
    acct-address 100.110.0.161
    acct-password ascii-text secret123
    acct-periodic
    acct-interval 60
  exit
exit

Таблица 1 — Настройка 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, который изначально запрашивал клиент

WEP-30L(root):/# configure
WEP-30L(config):/# interface
WEP-30L(config):/interface# wlan1-va0  
WEP-30L(config):/interface/wlan1-va0# common 
WEP-200L(config):/interface/wlan1-va0/common# enabled 'true'
WEP-200L(config):/interface/wlan1-va0/common# exit
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>/?action_url=<SWITCH_URL>&redirect=<ORIGINAL_URL>&ap_mac=<AP_MAC>" (указать URL внешнего виртуального портала в соответствии с таблицей 1)
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 (сохранение настроек)


Таблица 1 — Настройка 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, который изначально запрашивал клиент


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


Image Added

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


Image Added

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


Блок кода
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

Настройка Cisco ISE

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


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 ожидает в поле пароля так-же мак адрес.
Image Added


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


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


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


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 (учетные записи созданные пользователем самостоятельно на гостевом портале)
Image Added


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


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


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
Image Added


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


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


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

Radius Logs

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


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


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


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


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


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


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


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



Cisco ISE - Гостевой портал + Eltex WLC

Настройка на WLC

Конфигурации контроллера для настройки внешней портальной авторизации (ссылка на инструкцию Контроллеры беспроводного доступа)

За основу возьмем контроллер с преднастроенным factory-config:

Раскрыть
titleпример factory-config


Блок кода
languagepy
object-group service ssh
  port-range 22
exit
object-group service dhcp_server
  port-range 67
exit
object-group service dhcp_client
  port-range 68
exit
object-group service ntp
  port-range 123
exit
object-group service dns
  port-range 53
exit
object-group service netconf
  port-range 830
exit
object-group service radius_auth
  port-range 1812
exit
object-group service sa
  port-range 8043-8044
exit
object-group service airtune
  port-range 8099
exit
object-group service web
  port-range 443
exit

syslog max-files 3
syslog file-size 512
syslog file tmpsys:syslog/default
  severity info
exit

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 127.0.0.1
  key ascii-text encrypted 8CB5107EA7005AFF
exit
aaa radius-profile default_radius
  radius-server host 127.0.0.1
exit

boot host auto-config
boot host auto-update

vlan 3
  force-up
exit
vlan 2
exit

no spanning-tree

domain lookup enable

security zone trusted
exit
security zone untrusted
exit
security zone users
exit

bridge 1
  vlan 1
  security-zone trusted
  ip address 192.168.1.1/24
  no spanning-tree
  enable
exit
bridge 2
  vlan 2
  security-zone untrusted
  ip address dhcp
  no spanning-tree
  enable
exit
bridge 3
  vlan 3
  mtu 1458
  security-zone users
  ip address 192.168.2.1/24
  no spanning-tree
  enable
exit

interface gigabitethernet 1/0/1
  mode switchport
  switchport access vlan 2
exit
interface gigabitethernet 1/0/2
  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

tunnel softgre 1
  mode data
  local address 192.168.1.1
  default-profile
  enable
exit

security zone-pair trusted untrusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted trusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted self
  rule 10
    action permit
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 20
    action permit
    match protocol icmp
    enable
  exit
  rule 30
    action permit
    match protocol udp
    match source-port object-group dhcp_client
    match destination-port object-group dhcp_server
    enable
  exit
  rule 40
    action permit
    match protocol udp
    match destination-port object-group ntp
    enable
  exit
  rule 50
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 60
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
  rule 70
    action permit
    match protocol tcp
    match destination-port object-group netconf
    enable
  exit
  rule 80
    action permit
    match protocol tcp
    match destination-port object-group sa
    enable
  exit
  rule 90
    action permit
    match protocol udp
    match destination-port object-group radius_auth
    enable
  exit
  rule 100
    action permit
    match protocol gre
    enable
  exit
  rule 110
    action permit
    match protocol tcp
    match destination-port object-group airtune
    enable
  exit
  rule 120
    action permit
    match protocol tcp
    match destination-port object-group web
    enable
  exit
exit
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
exit
security zone-pair users self
  rule 10
    action permit
    match protocol icmp
    enable
  exit
  rule 20
    action permit
    match protocol udp
    match source-port object-group dhcp_client
    match destination-port object-group dhcp_server
    enable
  exit
  rule 30
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 40
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
exit
security zone-pair users untrusted
  rule 1
    action permit
    enable
  exit
exit

security passwords default-expired

nat source
  ruleset factory
    to zone untrusted
    rule 10
      description "replace 'source ip' by outgoing interface ip address"
      action source-nat interface
      enable
    exit
  exit
exit

ip dhcp-server
ip dhcp-server pool ap-pool
  network 192.168.1.0/24
  address-range 192.168.1.2-192.168.1.254
  default-router 192.168.1.1
  dns-server 192.168.1.1
  option 42 ip-address 192.168.1.1
  vendor-specific
    suboption 12 ascii-text "192.168.1.1"
    suboption 15 ascii-text "https://192.168.1.1:8043"
  exit
exit
ip dhcp-server pool users-pool
  network 192.168.2.0/24
  address-range 192.168.2.2-192.168.2.254
  default-router 192.168.2.1
  dns-server 192.168.2.1
exit

softgre-controller
  nas-ip-address 127.0.0.1
  data-tunnel configuration wlc
  aaa radius-profile default_radius
  keepalive-disable
  service-vlan add 3
  enable
exit

wlc
  outside-address 192.168.1.1
  service-activator
    aps join auto
  exit
  airtune
    enable
  exit
  ap-location default-location
    description "default-location"
    mode tunnel
    ap-profile default-ap
    airtune-profile default_airtune
    ssid-profile default-ssid
  exit
  airtune-profile default_airtune
    description "default_airtune"
  exit
  ssid-profile default-ssid
    description "default-ssid"
    ssid "default-ssid"
    radius-profile default-radius
    vlan-id 3
    security-mode WPA2_1X
    802.11kv
    band 2g
    band 5g
    enable
  exit
  radio-2g-profile default_2g
    description "default_2g"
  exit
  radio-5g-profile default_5g
    description "default_5g"
  exit
  ap-profile default-ap
    description "default-ap"
    password ascii-text encrypted 8CB5107EA7005AFF
  exit
  radius-profile default-radius
    description "default-radius"
    auth-address 192.168.1.1
    auth-password ascii-text encrypted 8CB5107EA7005AFF
    domain default
  exit
  wids-profile default-wids
    description "default-wids"
  exit
  ip-pool default-ip-pool
    description "default-ip-pool"
    ap-location default-location
  exit
  enable
exit

wlc-journal all
  limit days 365
exit

ip ssh server

ip tftp client timeout 45
ntp enable
ntp broadcast-client enable

ip https server



Внесём дополнения в конфигурацию:

Раскрыть
titleизменения в конфигурации WLC


Блок кода
languagepy
radius-server local
  virtual-server default
    proxy-mode
    upstream-server 1
      host 100.110.0.161
      server-type all
      key ascii-text secret123
    exit
    enable
  exit
exit

radius-server host 100.110.0.161
  key ascii-text secret123
exit
radius-server host 127.0.0.1
  key ascii-text password
exit
aaa radius-profile default_radius
  radius-server host 100.110.0.161
  radius-server host 127.0.0.1
exit

security zone-pair untrusted self
  rule 2
    action permit
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 3
    action permit
    match protocol tcp
    match destination-port object-group web
    enable
  exit
  rule 4
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 5
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
exit

ip route 0.0.0.0/0 x.x.x.x

wlc
  ssid-profile default-ssid
    ssid "cisco_ise"
    radius-profile default-radius
    portal-enable
    portal-profile default-portal
    vlan-id 3
    band 2g
    band 5g
    enable
  exit
  ap-profile default-ap
    password ascii-text password
    services
      ip telnet server
      ip ssh server
      ip http server
    exit
  exit
  portal-profile default-portal
    redirect-url-custom https://x.x.x.x:8443/portal/PortalSetup.action?portal=10968c1f-36fe-4e5c-96ff-9d74f689b29b?action_url=<SWITCH_URL>&redirect=<ORIGINAL_URL>&ap_mac=<AP_MAC>
    age-timeout 10
    verification-mode external-portal
  exit
  radius-profile default-radius
    auth-address 100.110.0.161
    auth-password ascii-text secret123
    auth-acct-id-send
    acct-enable
    acct-address 100.110.0.161
    acct-password ascii-text secret123
    acct-periodic
    acct-interval 60
  exit
exit



Таблица 1 — Настройка 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, который изначально запрашивал клиент


Взаимодействие контроллера с порталом Cisco ISE

  1. При первом подключении клиента ТД пытается пройти MAB авторизацию на NAC сервере, подставляя MAC адрес клиента в атрибуты User-Name и User-Password запроса access-request к Radius серверу. Так как ISE ничего не знает о данном клиенте, он присылает access-reject.
  2. После того как ТД получила access-reject она отправляет клиенту ссылку редиректа на гостевой портал ISE  формата: 
    https://100.110.0.161:8443/portal/PortalSetup.action?portal=10968c1f-36fe-4e5c-96ff-9d74f689b29b/?action_url=http%3A%2F%2Fredirect%2Eloc%3A10081%2F&ap_mac=68%3A13%3AE2%3A0E%3A85%3A50&client_mac=a2%3A13%3A66%3A1b%3Ac7%3A8e&redirect=http%3A%2F%2Fconnectivitycheck%2Egstatic%2Ecom%2Fgenerate%5F204
    при этом дополняя ACL, с доступом только до гостевого портала.
  3. После саморегистрации пользователя на гостевом портале и успешного логина через форму портала, по полученному логину и паролю, информация об устройстве как устройство MAB заносится в базу Endpoins, в которой содержится в том числе MAC клиента. А клиенту возвращается ссылка редиректа на proxy сервис ТД, содержащая в себе адрес сайта, на который клиент хотел попасть изначально, логин и пароль, под которым клиент успешно прошёл аутентификацию на гостевом портале. Ссылка вида:
    http://redirect.loc:10081/?token=NAI4PU5HK6O007V0KMYS37M800GOZW97&buttonClicked=4&err_flag=0&err_msg=&info_flag=0&info_msg=&redirect_url=http%3A%2F%2Fconnectivitycheck.gstatic.com%2Fgenerate_204&username=slava&password=Password
  4. Когда клиент переходит по этой ссылке, ТД считывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request , radius успешно авторизует клиента и ТД снимает ACL на доступ клиента и редиректит на изначально запрашиваемый пользователем портал.
  5. После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по mac адресу (так как этот сценарий реализован в логике ТД "external portal" и срабатывает при подключении к SSID, если ТД не "помнит" клиента). И редиректа пользователя на портал происходить не будет, до тех пор, пока endpoint клиента не будет удален из базы, в ручную или автоматически (по какой-то настроенной логике).


Image Added

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


Настройка Cisco ISE

1.Создаем Network Device Profile

Image Added

Взаимодействие контроллера с порталом 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=10968c1f-36fe-4e5c-96ff-9d74f689b29b/?action_url=http%3A%2F%2Fredirect%2Eloc%3A10081%2F&ap_mac=68%3A13%3AE2%3A0E%3A85%3A50&client_mac=a2%3A13%3A66%3A1b%3Ac7%3A8e&redirect=http%3A%2F%2Fconnectivitycheck%2Egstatic%2Ecom%2Fgenerate%5F204
    при этом дополняя ACL, с доступом только до гостевого портала.
  3. После саморегистрации пользователя на гостевом портале и успешного логина через форму портала, по полученному логину и паролю, информация об устройстве как устройство MAB заносится в базу Endpoins, в которой содержится в том числе MAC клиента. А клиенту возвращается ссылка редиректа на proxy сервис ТД, содержащая в себе адрес сайта, на который клиент хотел попасть изначально, логин и пароль, под которым клиент успешно прошёл аутентификацию на гостевом портале. Ссылка вида: 
  4. http://redirect.loc:10081/?token=NAI4PU5HK6O007V0KMYS37M800GOZW97&buttonClicked=4&err_flag=0&err_msg=&info_flag=0&info_msg=&redirect_url=http%3A%2F%2Fconnectivitycheck.gstatic.com%2Fgenerate_204&username=slava_1&password=Password
  5. Когда клиент переходит по этой ссылке, ТД считывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request , radius успешно авторизует клиента и ТД снимает ACL на доступ клиента и редиректит на изначально запрашиваемый пользователем портал.
  6. После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по mac адресу (так как этот сценарий реализован в логике ТД "external portal" и срабатывает при подключении к SSID, если ТД не "помнит" клиента). И редиректа пользователя на портал происходить не будет, до тех пор, пока endpoint клиента не будет удален из базы, в ручную или автоматически (по какой-то настроенной логике).
Image Removed

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

Image Removed

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

Настройка Cisco ISE

1.Создаем Network Device Profile.
Image Removed 

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.
Image Removed

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

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

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

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 (учетные записи созданные пользователем самостоятельно на гостевом портале)
Image Removed

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

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

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
Image Removed

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

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

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

Radius Logs

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 занесла MAC клиента в базу EndPoints, при аутентификации пользователя на портале)
Image Removed

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

Cisco ISE - Гостевой портал + Eltex AP

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

Команды для настройки внешней портальной авторизации на ТД (ссылка на инструкцию: https://docs.eltex-co.ru/pages/viewpage.action?pageId=444825607#id-РуководствопоэксплуатацииWEP-30L,WEP-30L-Z-НастройкаVAPсвнешнейпортальнойавторизацией)

Блок кода
languagepy
WEP-30L(root):/# configure
WEP-30L(config):/# interface
WEP-30L(config):/interface# wlan1-va0  
WEP-30L(config):/interface/wlan1-va0# common 
WEP-200L(config):/interface/wlan1-va0/common# enabled 'true'
WEP-200L(config):/interface/wlan1-va0/common# exit
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>/?action_url=<SWITCH_URL>&redirect=<ORIGINAL_URL>&ap_mac=<AP_MAC>" (указать URL внешнего виртуального портала в соответствии с таблицей 1)
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 (сохранение настроек)

Таблица 1 — Настройка 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, который изначально запрашивал клиент

Блок кода
languagepy
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, в которой содержится в том числе 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
  4. Когда клиент переходит по этой ссылке, ТД считывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request , radius успешно авторизует клиента и ТД снимает ACL на доступ клиента и редиректит на изначально запрашиваемый пользователем портал.
  5. После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по mac адресу (так как этот сценарий реализован в логике ТД "external portal" и срабатывает при подключении к SSID, если ТД не "помнит" клиента). И редиректа пользователя на портал происходить не будет, до тех пор, пока endpoint клиента не будет удален из базы, в ручную или автоматически (по какой-то настроенной логике).
Image Removed

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

Image Removed

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

Блок кода
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

Настройка Cisco ISE

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


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".Image Removed

Image Added


4.Настраиваем взаимодействие с ТД по протоколу Radius. Можно Требуется указать подсеть ТД контроллера WLC (в нашем случает это одна ТД один контроллер и подсеть 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, неизвестного клиента
Image Removed

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


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


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


Четвертая запись. О том что пользователь успешно аутентифицировался и авторизовался через Radius по логину и паролю
Radius live log зарегистрированного клиента, по MAB (повторное после отключения от ТД или отключение и подключение к другой ТД)
Image Removed


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


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