Cisco ISE - Гостевой портал саморегистрации + схема портальной авторизации контроллера ELTEX WLC (Dynamic_URL, namedACL, CoA)
Данная схема работает исключительно по средствам MAB авторизации
cisco-av-pair = url-redirect-acl=<<Имя настроенного на контроллере ACL>> cisco-av-pair = url-redirect=<<Ссылка на портал Cisco-ISE>> |
cisco-av-pair = url-redirect-acl=test1 cisco-av-pair = url-redirect=https://100.110.0.161:8443/portal/gateway?sessionId=646e00a1crG8uOFjddsRpNqJaT0taePWbRimqRw1M3d0sv_xEcs&portal=4f22cb25-630a-4c50b257-4aa2c04fd552&action=cwa&token=edccfff2ba55759ac1f762 |
Cisco-AVPair: subscriber:command=reauthenticate |
В нашем (демонстрационном случае) используется упрощенная схема подтверждения идентификационных данных. |
Диаграмма портальной авторизации на ТД, подключенной через контроллер WLC:
В общем случае клиент проходит следующие шаги в ходе выполнения портальной авторизации:
Далее приведен приведен пример настройки Eltex WLC-30 (v.1.30.6) с точкой WEP-30L(2.8.0). Предполагается что на контроллере уже настроен IP-адрес, обеспечена сетевая связность с сервером Cisco-ISE. Руководство по обновлению ПО Eltex WLC-30 можно найти по ссылке. Полностью ознакомится с документацией по настройке контроллера можно на официальном сайте компании https://eltex-co.ru. За основу будет взята заводская конфигурация, пример настройки которой доступен по ссылке.
Добавить Cisco-ISE, как радиус сервер, и настроить проксирование RADIUS-запросов от ТД на него. Так же требуется настроить проксирование CoA запросов со стороны Cisco-ISE на ТД через WLC:
radius-server local
nas AP_subnet # Подсеть ТД, на которые будет выполняться проксирование CoA-запросов
key ascii-text testing123
network 192.168.1.0/24
exit
nas cisco_ise
key ascii-text testing123
network 100.110.0.161/32 # Адрес Cisco-ISE, для которого будет выполняться проксирование CoA-запросов на ТД
exit
virtual-server default
mode proxy
upstream-pool cisco_ise
das-server enable
nas-ip-address 100.127.2.200 # Адрес WLC, который будет заменять в поле NAS-IP-Address адрес ТД при выполнении проксирования RADIUS-запросов
enable
exit
upstream-server cisco_ise
host 100.110.0.161 # Адрес Cisco-ISE, на который выполняется проксирование RADIUS-запросов от ТД
server-type all
key ascii-text testing123
exit
upstream-pool cisco_ise
server-type all
upstream-server cisco_ise
exit
enable
exit |
Создать ACL с тем же именем, которое было указано при настройке профиля авторизации в Cisco-ISE:
ip access-list extended test1
rule 1
action permit
match destination-address 100.110.0.161 255.255.255.255 # Адрес Cisco-ISE
enable
exit
rule 2
action permit
match protocol udp
match destination-port port-range 53
enable
exit
rule 3
action permit
match protocol udp
match source-port port-range 68
match destination-port port-range 67
enable
exit
exit |
В настройке WLC настроить профиль SSID, включить портальную авторизацию, создать профиль для портала, включить das-server на ТД и в настройках RADIUS профиля указать настройку, чтобы MAC-адрес пользователя подставлялся в пароль:
wlc
outside-address 192.168.1.1 # Адрес WLC для точек доступа
service-activator
aps join auto
exit
ap-location default-location
mode tunnel
ap-profile default-ap
ssid-profile default-ssid
exit
ssid-profile default-ssid
ssid "!F.E.portal-CoA"
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
das-server enable
das-server key ascii-text testing123
exit
ipv4-acl test-acl
exit
portal-profile default-portal
preauth-filter-mode acl
disconnect-on-reject
verification-mode external-portal
exit
radius-profile default-radius
auth-address 192.168.1.1 # Адрес WLC во влане точек. Необходимо указать его, как адрес RADIUS-сервера для ТД.
# Иначе WLC не сможет выполнять проксирование и подмену NAS-IP при отправке RADIUS-запроса к Cisco-ISE.
auth-password ascii-text testing123
session password mac
auth-acct-id-send # Данная настройка является критичной, так как уникальность сессии определяется по атрибуту Acct-Session-Id
acct-enable
acct-address 192.168.1.1
acct-password ascii-text testing123
acct-periodic
domain default
exit
ip-pool default-ip-pool
description "default-ip-pool"
ap-location default-location
exit
enable
exit |
Добавить правила firewall:
object-group service das
port-range 1700
exit
security zone-pair untrusted self
rule 2
action permit
match protocol udp
match destination-port object-group radius_auth # Разрешить UDP трафик для RADIUS-аутентификации
enable
exit
rule 3
action permit
match protocol udp
match destination-port object-group das # Разрешить UDP трафик для CoA-запросов
enable
exit
rule 4
action permit
match protocol tcp
match destination-port object-group ssh # Разрешить подключение по SSH (Используйте осторожно, если контроллер подключен напрямую к ISP)
enable
exit
rule 5
action permit
match protocol icmp
enable
exit
exit |
Полная конфигурация Eltex WLC-30 (v.1.30.6)
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 netconf
port-range 830
exit
object-group service radius_auth
port-range 1812-1813
exit
object-group service sa
port-range 8043-8044
exit
object-group service dns
port-range 53
exit
object-group service airtune
port-range 8099
exit
object-group service web
port-range 443
exit
object-group service das
port-range 1700
exit
syslog max-files 3
syslog file-size 512
syslog file tmpsys:syslog/default
severity info
exit
logging radius
radius-server local
nas AP_subnet
key ascii-text testing123
network 192.168.1.0/24
exit
nas local
key ascii-text testing123
network 127.0.0.1/32
exit
nas cisco_ise
key ascii-text testing123
network 100.110.0.161/32
exit
domain default
exit
virtual-server default
mode proxy
upstream-pool cisco_ise
das-server enable
nas-ip-address 100.127.2.200
enable
exit
upstream-server cisco_ise
host 100.110.0.161
server-type all
key ascii-text testing123
exit
upstream-pool cisco_ise
server-type all
upstream-server cisco_ise
exit
enable
exit
radius-server host 127.0.0.1
key ascii-text testing123
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
ip access-list extended test1
rule 1
action permit
match destination-address 100.110.0.161 255.255.255.255
exit
rule 2
action permit
match protocol udp
match destination-port port-range 53
enable
exit
rule 3
action permit
match protocol udp
match source-port port-range 67-68
match destination-port port-range 67
enable
exit
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 gigabitethernet 1/0/5
mode switchport
switchport access vlan 2
exit
interface gigabitethernet 1/0/6
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
rule 2
action permit
match protocol udp
match destination-port object-group radius_auth
enable
exit
rule 3
action permit
match protocol udp
match destination-port object-group das
enable
exit
rule 4
action permit
match protocol tcp
match destination-port object-group ssh
enable
exit
rule 5
action permit
match protocol icmp
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
ap-location default-location
mode tunnel
ap-profile default-ap
ssid-profile default-ssid
exit
ssid-profile default-ssid
ssid "!F.E.portal-CoA"
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
das-server enable
das-server key ascii-text testing123
exit
ipv4-acl test1
exit
portal-profile default-portal
preauth-filter-mode acl
disconnect-on-reject
verification-mode external-portal
exit
radius-profile default-radius
auth-address 192.168.1.1
auth-password ascii-text testing123
session password mac
auth-acct-id-send
acct-enable
acct-address 192.168.1.1
acct-password ascii-text testing123
acct-periodic
domain default
exit
ip-pool default-ip-pool
description "default-ip-pool"
ap-location default-location
exit
enable
exit
ip ssh server
ntp enable
ntp broadcast-client enable |
В заводской конфигурации WLC-30 предусмотрено автоматическое подключение точек доступа к контроллеру. Для этого требуется подключить точку доступа в порт gi1/0/2 и контроллер WLC сам выполнит обновление, если версия ПО на точке доступа не соответствует версии, которая размещена на контроллере, выполнит конфигурирование в соответствие с настройками: выбранными профилями конфигурации и SSID. Инструкцию по загрузке актуальной версии ПО точек доступа на контроллер можно найти по ссылке.
В разделе "Administration" → "Network Resources" → "Network Device Profiles" необходимо создать профиль (В нашем случае на скриншот ниже 'Eltex-AP_for-CoA' )
В качестве вендора необходимо указывать Cisco и выбирать в качестве RADIUS Dictionaries тоже Cisco, так-как мы используем вендор специфик атрибуты Cisco-av-pair. При выборе вендора Eltex случались разные казусы с невозможностью использовать два атрибута Cisco-av-pair подряд в пакете Access-Accept, для передачи url редиректа и имени ACL. |
Cisco:cisco-av-pair |
Disconnect - RFC 5176 (это достаточно) Re-authenticate - Cisco:cisco-av-pair = subscriber:command=reauthenticate |
В разделе "Administration" → "Network Resources" → "Network Device" необходимо создать устройство (В нашем случае на скриншот ниже 'F.E.-Eltex_AP' )
В нашем случае 'Allowed_for_AP-CoA' (скриншот ниже)
Authentication Bypass > Process Host Lookup Authentication Protocols > Allow PAP/ASCII |
Используем существующую политику Daily (default).
В нашем сценарии используем существующее хранилище 'GuestEndpoints' (ранее задали его в настройках портала и 'Guest Type')
Данная политика авторизации будет навешиваться на не-аутентифицированного пользователя (не прошедшего авторизацию на портале). И предусматривает применение на сессию клиента ACL и редиректа на гостевой портал саморегистрации (скриншот ниже).
В данный сценарий можно включать параметры авторизации клиента, такие как CVLAN, shaper и т.п. через добавления различных атрибутов (который поддерживают или будут поддерживать ТД Eltex). |

Перейти в политику можно по синей стрелке справа ">"
Настраиваем Authentication Policy и Authorization Policy как отображено на скриншоте:
Radius пакеты и атрибуты:
Radius обмен процесса авторизации
No. Time Source Destination Protocol Length Info 11 0.000000 100.127.2.200 100.110.0.161 RADIUS 316 Access-Request id=66 2 0.054155 100.110.0.161 100.127.2.200 RADIUS 427 Access-Accept id=66 3 46.933863 100.110.0.161 100.127.2.200 RADIUS 230 CoA-Request id=101 4 46.978071 100.127.2.200 100.110.0.161 RADIUS 316 Access-Request id=67 5 46.979828 100.127.2.200 100.110.0.161 RADIUS 88 CoA-ACK id=101 6 47.014845 100.110.0.161 100.127.2.200 RADIUS 209 Access-Accept id=67 7 47.016633 100.127.2.200 100.110.0.161 RADIUS 262 Accounting-Request id=68 8 47.026206 100.110.0.161 100.127.2.200 RADIUS 64 Accounting-Response id=68 |
Атрибуты пакета Access-Request (MAB аутентификации)
RADIUS Protocol
Code: Access-Request (1)
Packet identifier: 0x42 (66)
Length: 272
Authenticator: 4410fb4412b13fc162d59f59c8bd68e3
[The response to this request is in frame 2]
Attribute Value Pairs
AVP: t=User-Name(1) l=19 val=78-98-e8-1e-67-07
AVP: t=User-Password(2) l=34 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=35 val=68-13-e2-c2-28-e0:!F.E.portal-CoA
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=06FB2545-40E87D76
AVP: t=NAS-IP-Address(4) l=6 val=100.127.2.200
AVP: t=NAS-Identifier(32) l=19 val=68-13-E2-C2-28-E0
AVP: t=Service-Type(6) l=6 val=Call-Check(10)
AVP: t=Message-Authenticator(80) l=18 val=2fa7c052431324b024d1d5d5490badcd |
Атрибуты пакета Access-Accept в ответ на первичную MAB аутентификацию
RADIUS Protocol
Code: Access-Accept (2)
Packet identifier: 0x42 (66)
Length: 383
Authenticator: b5df40483c0b863ff0a967af7b60618d
[This is a response to a request in frame 1]
[Time from request: 0.054155000 seconds]
Attribute Value Pairs
AVP: t=User-Name(1) l=19 val=78-98-E8-1E-67-07
AVP: t=Class(25) l=78 val=434143533a363436653030613163724738754f466a64647352704e714a61543074616550…
AVP: t=Message-Authenticator(80) l=18 val=90d3bb0e49b633199d8a7f74f3b6270a
AVP: t=Vendor-Specific(26) l=30 vnd=ciscoSystems(9)
Type: 26
Length: 30
Vendor ID: ciscoSystems (9)
VSA: t=Cisco-AVPair(1) l=24 val=url-redirect-acl=test1
AVP: t=Vendor-Specific(26) l=218 vnd=ciscoSystems(9)
Type: 26
Length: 218
Vendor ID: ciscoSystems (9)
[…]VSA: t=Cisco-AVPair(1) l=212 val=url-redirect=https://100.110.0.161:8443/portal/gateway?sessionId=646e00a1crG8uOFjddsRpNqJaT0taePWbRimqRw1M3d0sv_xEcs&portal=4f22cb25-630a-4c50-b257-4aa2c04fd552&action=cwa&token=edccfff2ba55759ac1f762
|
Атрибуты пакета CoA-Request
RADIUS Protocol
Code: CoA-Request (43)
Packet identifier: 0x65 (101)
Length: 186
Authenticator: 0cf0bae02528f6bfb818044c8ffd7784
[The response to this request is in frame 5]
Attribute Value Pairs
AVP: t=NAS-IP-Address(4) l=6 val=100.127.2.200
AVP: t=Calling-Station-Id(31) l=19 val=78-98-e8-1e-67-07
AVP: t=Event-Timestamp(55) l=6 val=Apr 25, 2025 10:09:00.000000000 Новосибирское стандартное время
AVP: t=Message-Authenticator(80) l=18 val=a728bf9cd14be304bcd08aba426eab54
AVP: t=Vendor-Specific(26) l=41 vnd=ciscoSystems(9)
Type: 26
Length: 41
Vendor ID: ciscoSystems (9)
VSA: t=Cisco-AVPair(1) l=35 val=subscriber:command=reauthenticate
AVP: t=Vendor-Specific(26) l=76 vnd=ciscoSystems(9)
Type: 26
Length: 76
Vendor ID: ciscoSystems (9)
VSA: t=Cisco-AVPair(1) l=70 val=audit-session-id=646e00a1crG8uOFjddsRpNqJaT0taePWbRimqRw1M3d0sv_xEcs |
Атрибуты пакета Access-Accept авторизации с полным доступом
RADIUS Protocol
Code: Access-Accept (2)
Packet identifier: 0x43 (67)
Length: 165
Authenticator: 43f595d49019bc7414a99db904f62b5e
[This is a response to a request in frame 4]
[Time from request: 0.036774000 seconds]
Attribute Value Pairs
AVP: t=User-Name(1) l=7 val=fea_1
AVP: t=Class(25) l=78 val=434143533a3634366530306131412f474b735631715236796c573765734c396c5342345f…
AVP: t=Message-Authenticator(80) l=18 val=865b02be3cd7340ea4566bd0375d5525
AVP: t=Vendor-Specific(26) l=42 vnd=ciscoSystems(9)
Type: 26
Length: 42
Vendor ID: ciscoSystems (9)
VSA: t=Cisco-AVPair(1) l=36 val=profile-name=Windows10-Workstation |
Цепочка аутентификации и авторизации
Авторизация пока еще неизвестного клиента, с целью редиректа на портал регистрации
Регистрация и авторизация на портале
Отправка команды на реаунтификацию по средствам CoA
Финальный Permit-Access
Аккаунтинг