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

  1. При первом подключении клиента ТД пытается пройти MAB-авторизацию на NAC-сервере, подставляя MAC-адрес клиента в атрибуты User-Name и User-Password запроса access-request к RADIUS-серверу WLC. Контроллер проксирует запрос на внешний RADIUS-сервер Cisco ISE. Так как ISE ничего не известно о данном клиенте, он присылает access-reject на WLC, тот, в свою очередь, на ТД.
  2. После того как ТД получила access-reject, она отправляет клиенту ссылку перенаправления на гостевой портал ISE-формата, при этом дополняя ACL с доступом только до гостевого портала. Пример ссылки: 
    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
  3. После авторизации пользователя на гостевом портале клиенту возвращается ссылка редиректа на ТД, содержащая в себе адрес сайта, на который клиент хотел попасть изначально, логин и пароль, под которым клиент успешно прошёл аутентификацию на гостевом портале. Пример ссылки:
    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=login&password=Password
  4. Когда клиент переходит по этой ссылке, ТД считывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request, RADIUS успешно авторизует клиента, и ТД снимает ACL на доступ клиента и перенаправляет на изначально запрашиваемый пользователем портал.
  5. После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по MAC-адресу (так как этот сценарий реализован в логике ТД «external portal» и срабатывает при подключении к SSID, если ТД не помнит клиента). Редирект пользователя на портал происходить не будет до тех пор, пока учетная запись клиента не будет удалена из базы, вручную или автоматически (по настроенной логике).

Пример страницы гостевого портала:

Схема процесса авторизации нового клиента по логину и паролю:

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

В данном разделе описана настройка внешней портальной авторизации на WLC.

За основу взята заводская конфигурация Factory (подробнее в инструкции Quickstart):

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


Физическая конфигурация интерфейсов устройств WLC-15, WLC-30 и WLC-3200 различается между собой. Попытка применения настроек для одной модели устройства на другую может вызвать ошибку инициализации интерфейсов.

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

Ниже рассмотрен пример настройки RADIUS-сервера и проксирования RADIUS-запросов ТД на внешний RADIUS-сервер (подробнее в инструкции Настройка проксирования на внешний RADIUS):

Настройка RADIUS-сервера

Настройте локальный RADIUS-сервер:

radius-server local
  nas ap
    key ascii-text encrypted 8CB5107EA7005AFF
    network 192.168.1.0/24
  exit
  nas local
    key ascii-text encrypted 8CB5107EA7005AFF
    network 127.0.0.1/32
  exit
  domain default
    user test_user
      password ascii-text encrypted CDE65039E5591FA3
    exit
  exit
  virtual-server default
    mode proxy
    upstream-pool default-pool
    nas-ip-address 100.109.1.246 <-- WLC UPLINK IP BRIDGE 2
    enable
  exit
  upstream-server cisco-ise
    host 100.110.0.161
    server-type all
    key ascii-text encrypted 8CB5107EA7005AFF
  exit
  upstream-pool default-pool
    server-type all
    upstream-server cisco-ise
  exit
  enable
exit

Настройте локальный RADIUS-профиль:

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

Настройка портальной авторизации

Настройте портальную авторизацию (общий принцип работы описан в статье Авторизация через RADIUS).

В конфигурацию WLC необходимо внести настройки:

wlc
  portal-profile default-portal
    redirect-url-custom "https://100.110.0.161: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 192.168.1.1
    auth-password ascii-text password
    auth-acct-id-send
    acct-enable
    acct-address 192.168.1.1
    acct-password ascii-text password
    acct-periodic
  exit
exit

Значение параметра redirect-url-custom в профиле портала требуется указывать в двойных кавычках.

Параметр wlc>portal-profile>redirect-url-custom содержит URL портала и атрибуты, указанные после символа "?". Между собой атрибуты разделяются символом "&".

Таблица 1 — Атрибуты URL-шаблона для внешней портальной авторизации

Параметр

Описание

<NAS_ID>Идентификатор ТД. Когда параметр не задан, то в качестве NAS ID в RADIUS-пакетах и строке редиректа будет использоваться MAC-адрес ТД.
NAS ID возможно задать в конфигурации wlc → radius-profile <name> → nas-id. В данном примере NAS ID не задается.
<SWITCH_URL>Доменное имя, которое получает клиент при перенаправлении
<AP_MAC>MAC-адрес точки доступа 
<CLIENT_MAC>MAC-адрес клиента
<SSID>SSID
<ORIGINAL_URL>

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

<NAS_IP>

IP-адрес точки доступа

Настройте SSID-профиль:

wlc
  ssid-profile default-ssid
    ssid "default-ssid_cisco_ise"
    radius-profile default-radius
    portal-enable
    portal-profile default-portal
    vlan-id 3
    802.11kv
    band 2g
    band 5g
    enable
  exit
exit 

Использование сертификатов

Для повышения безопасности передачи данных между клиентом и ТД необходимо обеспечить шифрование трафика с использованием SSL. Для этого требуется:

  • SSL-сертификат (формат PEM);

  • Приватный ключ (формат PEM).

На ТД возможно использовать RSA-сертификаты. ECDSA-сертификаты не поддержаны.

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

Стандартный процесс выпуска сертификатов не предусматривает автоматическое шифрование приватного ключа. Однако это можно выполнить вручную с помощью утилиты OpenSSL.

Команда для шифрования ключа:

openssl rsa -aes256 -in private_key.pem -out private_key_encrypted.pem

Параметры:

  • -aes256 – алгоритм шифрования (можно заменить на -aes128 или -aes192);

  • -in private_key.pem – исходный незашифрованный ключ;

  • -out private_key_encrypted.pem – зашифрованный ключ.

После выполнения команды OpenSSL запросит пароль, который будет использоваться для защиты ключа.

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

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

После шифрования ключа его необходимо добавить к сертификату, например через текстовый редактор. Файл сертификата с шифрованным ключом должен иметь вид:

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
-----BEGIN ENCRYPTED PRIVATE KEY-----

-----END ENCRYPTED PRIVATE KEY-----

Загрузите файл сертификата с шифрованным ключом на контроллер WLC в директорию crypto:cert/

Настройте проверку сертификата и включите режим HTTPs:

wlc
  ap-profile default-ap
    captive-portal
      ap-ip-alias certificate_alias
      crypto cert certificate_encrypted.pem
      crypto private-key-password ascii-text password
      proxy-https
    exit

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

Допустимо использовать сертификат без шифрованного ключа. В таком случае приватный ключ добавляется к сертификату. Настройка crypto private-key-password не требуется.

Формат файла для сертификата без шифрованного ключа:

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----

Конфигурация:

wlc
  ap-profile default-ap
    captive-portal
      ap-ip-alias certificate_alias
      crypto cert certificate.pem
      proxy-https
    exit

Суммарные изменения в конфигурации

Изменения в конфигурации WLC:

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
    user test_user
      password ascii-text encrypted CDE65039E5591FA3
    exit
  exit
  virtual-server default
    mode proxy
    upstream-pool default-pool
    nas-ip-address 100.109.1.246
    enable
  exit
  upstream-server cisco-ise
    host 100.110.0.161
    server-type all
    key ascii-text encrypted 8CB5107EA7005AFF
  exit
  upstream-pool default-pool
    server-type all
    upstream-server cisco-ise
  exit
  enable
exit

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

wlc
  outside-address 192.168.1.1
  service-activator
    aps join auto
  exit
  airtune
    enable
  exit
  ap-location 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
    ssid "default-ssid_cisco_ise"
    radius-profile default-radius
    portal-enable
    portal-profile default-portal
    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
    password ascii-text password
	captive-portal
      ap-ip-alias wlc.ddns.net
      crypto cert certificate_encrypted.pem
      crypto private-key-password ascii-text password
      proxy-https
    exit
  exit 
  portal-profile default-portal
    redirect-url-custom "https://100.110.0.161: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 192.168.1.1
    auth-password ascii-text password
    auth-acct-id-send
    acct-enable
    acct-address 192.168.1.1
    acct-password ascii-text password
    acct-periodic
	domain default
  exit
  ip-pool default-ip-pool
    description "default-ip-pool"
    ap-location default-location
  exit
  enable
exit

Настройка Cisco ISE

1. В Cisco ISE cоздайте Network Device Profile — Eltex с помощью кнопки Add:

2. Настройте созданный профиль Eltex. Укажите протокол взаимодействия — RADIUS:

В параметрах укажите атрибуты 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, включите используемый ТД протокол обмена подтверждениями, отключите Check Password в разделах Via PAP/ASCII и Via EAP-MD5:

3. Создайте новое сетевое устройство, в примере ниже — Eltex-WLC:

4. Настройте взаимодействие по протоколу RADIUS. Укажите адрес и подсеть контроллера WLC (в примере это один контроллер и подсеть 100.109.1.246/32), в поле Device Profile выберите ранее созданный профиль Eltex:

Укажите secret key для протокола RADIUS, настроенный на контроллере WLC в разделе radius-server → virtual-server → upstream-server → key:

5. Создайте группу встроенных гостевых учетных записей, в примере ниже это Eltex_AP_Users:

В этой группе необходимо создать учетные записи, задать для каждой логин и пароль. Пример создания учетной записи:

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. Создайте правило с разрешенными протоколами, в примере это Allowed_Protocols. Установите необходимые разрешения в пунктах 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 создайте политику доступа для Wi-Fi пользователей. В примере ниже создана политика доступа с названием Policy Sets.
В эту политику попадают клиенты, приходящие с SSID default-ssid_cisco_ise, Flow Type Conditions соответствуют Wirelles_MAB или WLC_WEB_Authentication:

10. В созданной политике настройте правила аутентификации и авторизации. 
В правиле аутентификации сначала идет проверка пользователя по логину и паролю в базе Internal Users. Далее, если не сработала проверка по логину и паролю, проверяется MAC-адрес в базе EndPoints (MAB).
В правиле авторизации сначала идет проверка пользователя по логину и паролю в базе Internal Users. Далее, если не сработала проверка по логину и паролю, проверяется MAC-адрес в базе EndPoints (MAB)
В примере при успешной проверке применяется действие PermitAccess.

11. Настройте гостевой портал. Ниже приведен пример настройки портала. 

12. Адрес портала для настройки ссылки редиректа возможно получить по ссылке Portal test URL:

Отладочная информация RADIUS

В разделе Operations → RADIUS → Live Logs находится запись журнала c отладочной информацией RADIUS.

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

Запись о том, что пользователь успешно аутентифицировался и авторизовался через RADIUS по логину и паролю.

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

Запись аккаунтинга пользователя: