Описание

Система Netams WNAM будет рассмотрена для портальной авторизации пользователей Wi-Fi.

WLC/ESR-15/30/3200, vWLC, начиная с версии WNAM 1.6.4010.

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

Перед началом построения взаимодействия между Netams WNAM и WLC необходимо настроить и протестировать работу беспроводной сети и контроллера WLC без портальной авторизации и сетевого экрана. Если беспроводная сеть функционирует корректно, можно приступать к настройки портальной авторизации.

В данной статье используется подключение ТД к контроллеру WLC на основе сети L3 с построением Data SoftGRE-туннеля. В статье настрoйка WLC детально описана настройка данной схемы подключения.

Рекомендуется ознакомиться с тонкостями настройки BRAS на ESR/WLC с портальной авторизацией на основе SoftWLC в следующих статьях:

Задача

Настроить портальную авторизацию через контроллер WLC с порталом WNAM.

Решение

Настройка будет выполнена на базе заводской конфигурации (Factory).

Шаги выполнения:

  1. Конфигурование WLC:
    1. Конфигурация object-group – группы адресов для NAT, неавторизованных пользователей, url-адрес для перенаправления авторизации, адрес WNAM-сервера;
    2. Конфигурация bridge – для сетевой связности;
    3. Конфигурация vlan;
    4. Конфигурация ACL – для ограничения доступа к сети неавторизованных (до авторизации) и авторизованных клиентов (после авторизации);
    5. Конфигурация RADIUS – для взаимодействия WLC и WNAM;
    6. Конфигурация NAT – для доступа в интернет Wi-Fi клиентам;
    7. Конфигурация security zone – для разрешения редиректа запросов неавторизованных клиентов на WNAM;
    8. Конфигурация SSID – для подключения клиентов;
    9. Конфигурация subscriber-control – для пересылки неавторизованных клиентов на WNAM.
  2. Конфигурирование WNAM:
    1. Создание сервера;
    2. Создание площадки;
    3. Создание группы ваучеров;
    4. Конфигурирование правил аутентификации;
    5. Конфигурирование правил авторизации.

Лицензирование

Для конфигурации взаимодействия Netams WNAM и WLC необходима лицензия BRAS для WLC.

Детальнее о том, как установить и применить лицензию описано в статье Активация функционала по лицензии.

Проверить наличие лицензии можно с помощью команды show licence:

wlc# show licence
Feature                            Source     State         Value                              Valid from             Expiries               
--------------------------------   --------   -----------   --------------------------------   --------------------   --------------------   
BRAS                               File       Active        true                               --                     --                     
BRAS                               File       Candidate     true                               --                     --                     
WLC                                Boot       Active        true                               --                     --                     
WLC                                Boot       Candidate     true                               --                     --                            

Взаимодействие элементов системы


Конфигурирование WLC

  1. Конфигурация object-group:

    Перейдите в конфигурационный режим:


    wlc# configure
    wlc(config)#


    Создайте группу wnam_servers для последующего создания профиля RADIUS:


    wlc(config)# object-group network wnam_servers


    Добавьте адрес WNAM-сервера:


    wlc(config-object-group-network)#  ip address-range 100.110.1.44
    wlc(config-object-group-network)#  exit


    Создайте группу bras_users:


    wlc(config)# object-group network bras_users


    Добавьте пул адресов клиентов, которые будут попадать в авторизацию через портал (Bridge 1, Vlan 1):


    wlc(config-object-group-network)# ip address-range 192.168.2.2-192.168.2.254 
    wlc(config-object-group-network)# exit


    Создайте группу local:


    wlc(config)# object-group network local


    Добавьте пул адресов из сети клиентов, которые будут получать доступ в интернет через NAT:


    wlc(config-object-group-network)# ip address-range 192.168.2.1-192.168.2.254
    wlc(config-object-group-network)# exit


    Создайте группу defaultService:


    wlc(config)# object-group url defaultService


    Добавьте url с адресом WNAM-сервера для работы правила фильтрации авторизации пользователей:


    wlc(config-object-group-url)# http://100.110.1.44
    wlc(config-object-group-url)# exit


    Создайте группу redirect:


    wlc(config)# object-group service redirect


    Добавьте пул портов для прослушивания http/https-трафика:


    wlc(config-object-group-service)# port-range 3128-3135
    wlc(config-object-group-service)# exit




    Слушающий порт прокси (HTTP/HTTPS) будет открыт для каждого ядра WLC/ESR. Порты HTTP начинаются с порта 3128. 
    На WLC-15/30 4 ядра, нужно разрешить порты для HTTP 3128-3131, для HTTPS 3132-3135.
    На WLC-3200 24 ядра, нужно разрешить порты для HTTP 3128-3151, для HTTPS 3152-3175.



    Полная конфигурация object-group:


    object-group network wnam_servers
      ip address-range 100.110.1.44
    exit
    object-group network bras_users
      ip address-range 192.168.2.2-192.168.2.254
    exit
    object-group network local
      ip address-range 192.168.2.1-192.168.2.254
    exit
    object-group url defaultService
      url http://100.110.1.44
    exit
    object-group service redirect
      port-range 3128-3135
    exit




  2. Конфигурация Bridge:Конфигурация Bridge для uplink:

    wlc(config)# bridge 2


    Пропишите ip-адрес для связности с сервером WNAM:


    wlc(config-bridge)# ip address 100.110.0.246/23
    wlc(config-bridge)# exit


    Конфигурация Bridge для пользователей:


    wlc(config)# bridge 3


    Добавьте location, по нему сервер WNAM определит площадку для неавторизованных клиентов:


    wlc(config-bridge)# location data10
    wlc(config-bridge)# exit


    Полная конфигурация Bridge:


    bridge 1
      vlan 1
      description "MGMT-AP"
      security-zone trusted
      ip address 192.168.1.1/24
      no spanning-tree
      enable
    exit
    bridge 2
      vlan 2
      description "UPLINK"
      security-zone untrusted
      ip address 100.110.0.246/23
      no spanning-tree
      enable
    exit
    bridge 3
      description "BRAS-users"
      vlan 3
      mtu 1458
      history statistics
      security-zone users
      ip address 192.168.2.1/24
      no spanning-tree
      location data10
      enable
    exit
  3. Конфигурация Vlan:

    Конфигурация клиентского Vlan 3 (Bridge 3):


    wlc(config)# vlan 3


    Добавьте параметр force-up, который переводит Vlan в режим постоянного статуса UP:


    wlc(config-vlan)# force-up
    wlc(config-vlan)# exit


    Полная конфигурация Vlan:


    vlan 3
      force-up
    exit




  4. Настройка списков контроля доступа:


    Создайте список контроля доступа для ограничения неавторизованных пользователей в сети. Список разрешает прохождение DNS- и DHCP-трафика:


    wlc(config-acl)# ip access-list extended BYPASS
    


    Создайте правило с номером 10, это правило отвечает за разрешение получение адреса по протоколу DHCP неавторизованным клиентам:


    wlc(config-acl)# rule 10


    Добавьте действие правила – разрешение:


    wlc(config-acl-rule)# action permit 


    Добавьте совпадение по протоколу udp:


    wlc(config-acl-rule)# match protocol udp


    Добавьте совпадение по порту источника:


    wlc(config-acl-rule)# match source-port 68


    Добавьте совпадение по порту назначения:


    wlc(config-acl-rule)# match destination-port 67


    Включите правило:


    wlc(config-acl-rule)# enable
    wlc(config-acl-rule)# exit


    Создайте правило под номером 11, оно отвечает за разрешение DNS-запросов неавторизованных клиентов:


    wlc(config-acl)# rule 11


    Добавьте действие правило – разрешение:


    wlc(config-acl-rule)# action permit


    Добавьте совпадение по протоколу udp:


    wlc(config-acl-rule)# match protocol udp


    Добавьте совпадение по порту назначения 53:


    wlc(config-acl-rule)# match destionation-port 53


    Включите правило:


    wlc(config-acl-rule)# enable
    wlc(config-acl-rule)# exit
    wlc(config-acl)# exit


    Создайте список контроля доступа, который будет применяться после авторизации клиента, он разрешит полный доступ:

    Создание списка:


    wlc(config)# ip access-list extended INTERNET


    Создайте правило с номером 10, которое разрешает все:


    wlc(config-acl)# rule 10


    Добавьте действие правила – разрешение:


    wlc(config-acl-rule)# action permit


    Включите правило:


    wlc(config-acl-rule)# enable
    wlc(config-acl-rule)# exit
    wlc(config-acl)# exit


    Полная конфигурация списков контроля доступа:


    ip access-list extended BYPASS
      rule 10
        action permit
        match protocol udp
        match source-port 68
        match destination-port 67
        enable
      exit
      rule 11
        action permit
        match protocol udp
        match destination-port 53
        enable
      exit
    exit
    ip access-list extended INTERNET
      rule 10
        action permit
        enable
      exit
    exit




  5. Настройка RADIUS:


    Добавьте RADIUS-сервер с адресом WNAM:


    wlc(config)# radius-server host 100.110.1.44
    


    Укажите ключ для взаимодействия:


    wlc(config-radius-server)# key ascii-text wnampass
    


    Укажите адрес источник (Bridge 2):


    wlc(config-radius-server)# source-address 100.110.0.246
    wlc(config-radius-server)# exit
    


    Создайте AAA-профиль с адресом WNAM-сервера:


    wlc(config)# aaa radius-profile bras_radius
    


    Укажите адрес WNAM-сервера:


    wlc(config-aaa-radius-profile)# radius-server host 100.110.1.44
    wlc(config-aaa-radius-profile)# exit
    


    Создайте сервер DAS:


    wlc(config)# das-server das
    


    Укажите ключ:


    wlc(config-das-server)# key ascii-text wnampass
    


    Укажите порт:


    wlc(config-das-server)# port 3799
    


    Добавьте object-group, в которой указан адрес сервера WNAM, запросы с адресов из группы wnam_servers поступят в обработку, остальные будут отброшены:


    wlc(config-das-server)# clients object-group wnam_servers
    wlc(config-das-server)# exit
    


    Создайте AAA-профиль для DAS-сервера:


    wlc(config)# aaa das-profile bras_das
    


    Укажите имя DAS-сервера, которое создали ранее:


    wlc(config-aaa-das-server)# das-server das
    wlc(config-aaa-das-server)# exit 
    


    Полная конфигурация RADIUS:


    radius-server host 100.110.1.44
      key ascii-text wnampass
      source-address 100.110.0.246
    exit
    aaa radius-profile bras_radius
      radius-server host 100.110.1.44
    exit
    
    das-server das
      key ascii-text wnampass
      port 3799
      clients object-group wnam_servers
    exit
    aaa das-profile bras_das
      das-server das
    exit




  6. Настройка NAT:


    Перейдите в блок конфигурации NAT:


    wlc(config)# nat source


    Создайте пул, в котором указывается адрес для подмены:


    wlc(config-snat)# pool translate


    Укажите адрес (Bridge 2):


    wlc(config-snat-pool)# ip address-range 100.110.0.246
    wlc(config-snat-pool)# exit


    Создайте список правил:


    wlc(config-snat)# ruleset SNAT


    Укажите внешний интерфейс, в котором будет происходить трансляция адресов:


    wlc(config-snat-ruleset)# to interface gigabitethernet 1/0/1


    Создайте правило с номером 1:


    wlc(config-snat-ruleset)# rule 1


    Добавьте совпадение по адресу источника, в качестве которого выступает object-group с пулом адресов клиентов:


    wlc(config-snat-rule)# match source-address object-group local


    Укажите действие правила – преобразование адресов источника в адрес, указанный в пуле translate:


    wlc(config-snat-rule)# action source-nat pool translate


     Включите правило:


    wlc(config-snat-rule)# enable
    wlc(config-snat-rule)# exit
    wlc(config-snat-ruleset)# exit
    wlc(config-snat)# exit


    Полная конфигурация NAT:


    nat source
      pool translate
        ip address-range 100.110.0.246
      exit
      ruleset SNAT
        to interface gigabitethernet 1/0/1
        rule 1
          match source-address object-group local
          action source-nat pool translate
          enable
        exit
      exit
    exit
  7. Конфигурация security zone-pair:

    Перейдите в блок security zone-pair users self, чтобы открыть http/https-порты в файрволле для клиентов:


    wlc(config)# security zone-pair users self


    Добавьте правило с номером 50:


    wlc(config-security-zone-pair)# rule 50


    Укажите действие для правила – разрешение:


    wlc(config-security-zone-pair-rule)# action permit 


    Добавьте совпадение по протоколу tcp:


    wlc(config-security-zone-pair-rule)# match protocol tcp

    Добавьте совпадение по пулу портов в object-group:

    wlc(config-security-zone-pair-rule)# match destionation-port object-group redirect

    Включите правило:

    wlc(config-security-zone-pair-rule)# enable
    wlc(config-security-zone-pair-rule)# exit
    wlc(config-security-zone)# exit

    Полная конфигурация security zone-pair:

    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
      rule 50
        action permit
        match protocol tcp
        match destination-port object-group redirect
    exit
    security zone-pair users untrusted
      rule 1
        action permit
        enable
      exit
    exit
  8. Настройка SSID: 


    Перейдите в раздел конфигурации WLC

    wlc(config)# wlc

    Перейдите в конфигурацию SSID:

    wlc(config-wlc)# ssid-profile test-ssid

    Укажите имя SSID, которое будет вещаться для клиентов:

    wlc(config-wlc-ssid)# ssid F.E.freeSSID
    wlc(config-wlc-ssid)# exit
    wlc(config-wlc)# exit

    Полная конфигурация SSID:

    wlc
      ssid-profile test-ssid
        description F.E.free
        ssid F.E.freeSSID
        vlan-id 3
        802.11kv
        band 2g
        band 5g
        enable
      exit
    exit
  9. Включение ssid-profile в локацию:

    Включите созданный SSID в локацию. ТД получит конфигурацию и начнёт вещать данные SSID. В примере ниже ssid-profile включен в локацию default-location.


    ap-location default-location
      ssid-profile test-ssid
    exit
  10. Конфигурация редиректа клиентов:


    Перейдите в блок настроек редиректа:

    wlc(config)# subscriber-control

    Добавьте профиль AAA das-сервера:

    wlc(config-subscriber-control)# aaa das-profile bras_das

    Добавьте профиль AAA RADIUS для создания сессий:

    wlc(config-subscriber-control)# aaa sessions-radius-profile bras_radius

    Добавьте профиль AAA RADIUS для доступа к сервисам:

    wlc(config-subscriber-control)# aaa services-radius-profile bras_radius 

    Укажите внешний IP WLC (Bridge 2), который будет выступать атрибутом NAS-IP-Address в RADIUS-запросах на WNAM:

    wlc(config-subscriber-control)# nas-ip-address 100.110.0.246 

    Включите аутентификацию сессий по mac-адресам:

    wlc(config-subscriber-control)# session mac-authentication 

    Укажите список контроля доступа для неавторизованных клиентов:

    wlc(config-subscriber-control)# bypass-traffic-acl BYPASS 

    Перейдите в блок конфигурации сервиса:

    wlc(config-subscriber-control)# default-service

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

    wlc(config-subscriber-default-service)# class-map BYPASS
    Укажите локальный белый список URL, доступ к этим адресам по протоколам HTTP/HTTPS будет работать до авторизации:  
    wlc(config-subscriber-default-service)# filter-name local defaultService

    Укажите действие сервиса – разрешить:

    wlc(config-subscriber-default-service)# filter-action permit

    Укажите url-адрес, куда будут перенаправляться неавторизованные клиенты:

    wlc(config-subscriber-default-service)# default-action redirect http://100.110.1.44/cp/eltexwlc

    Укажите время таймаута сессии:

    wlc(config-subscriber-default-service)# session-timeout 600
    wlc(config-subscriber-default-service)# exit

    Включите работу редиректа:

    wlc(config-subscriber-control)# enable
    wlc(config-subscriber-control)# exit

    Полная конфигурация настроек редиректа:

    subscriber-control
      aaa das-profile bras_das
      aaa sessions-radius-profile bras_radius
      aaa services-radius-profile bras_radius
      nas-ip-address 100.110.0.246
      session mac-authentication
      bypass-traffic-acl BYPASS
      default-service
        class-map BYPASS
        filter-name local defaultService
        filter-action permit
        default-action redirect http://100.110.1.44/cp/eltexwlc
        session-timeout 600
      exit
      enable
    exit

    При конфигурации default-action redirect всегда используется шаблон "http://<address WNAM>/cp/eltexwlc", где <address WNAM> сетевой адрес сервера Netams WNAM.
    В случае указания другого url авторизация работать не будет.

Полная конфигурация WLC


#!/usr/bin/clish
#260
#1.26.1
#06/08/2024
#17:35:15
hostname wlc

object-group service airtune
  port-range 8099
exit
object-group service dhcp_client
  port-range 68
exit
object-group service dhcp_server
  port-range 67
exit
object-group service dns
  port-range 53
exit
object-group service netconf
  port-range 830
exit
object-group service ntp
  port-range 123
exit
object-group service radius_auth
  port-range 1812
exit
object-group service sa
  port-range 8043-8044
exit
object-group service ssh
  port-range 22
exit
object-group service https
  port-range 443
exit
object-group service redirect
  port-range 3128-3131
exit

object-group network wnam_servers
  ip address-range 100.110.1.44
exit
object-group network bras_users
  ip address-range 192.168.2.2-192.168.2.254
exit
object-group network local
  ip address-range 192.168.2.1-192.168.2.254
exit
exit
object-group url defaultService
  url http://100.110.1.44
exit

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

radius-server local
  nas ap
    key ascii-text encrypted testing123
    network 192.168.1.0/24
  exit
  nas local
    key ascii-text encrypted testing123
    network 127.0.0.1/32
  exit
  domain default
    user admin
      password ascii-text encrypted admin
    exit
    user test
      password ascii-text encrypted test
    exit
  exit
  virtual-server default
    enable
  exit
  enable
exit
username admin
  password encrypted password
exit

radius-server host 100.110.1.44
  key ascii-text encrypted wnampass
  source-address 100.110.0.246
exit
radius-server host 127.0.0.1
  key ascii-text encrypted testing123
exit
aaa radius-profile bras_radius
  radius-server host 100.110.1.44
exit
aaa radius-profile default_radius
  radius-server host 127.0.0.1
exit

das-server das
  key ascii-text encrypted wnampass
  port 3799
  clients object-group wnam_servers
exit
aaa das-profile bras_das
  das-server das
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
security zone dmz
exit

ip access-list extended BYPASS
  rule 10
    action permit
    match protocol udp
    match source-port 68
    match destination-port 67
    enable
  exit
  rule 11
    action permit
    match protocol udp
    match destination-port 53
    enable
  exit
exit
ip access-list extended INTERNET
  rule 10
    action permit
    enable
  exit
exit

subscriber-control
  aaa das-profile bras_das
  aaa sessions-radius-profile bras_radius
  aaa services-radius-profile bras_radius
  nas-ip-address 100.110.0.246
  session mac-authentication
  bypass-traffic-acl BYPASS
  default-service
    class-map BYPASS
    filter-name local defaultService
    filter-action permit
    default-action redirect http://100.110.1.44/cp/eltexwlc
    session-timeout 600
  exit
  enable
exit

bridge 1
  vlan 1
  description "MGMT-AP"
  security-zone trusted
  ip address 192.168.1.1/24
  no spanning-tree
  enable
exit
bridge 2
  vlan 2
  description "UPLINK"
  security-zone untrusted
  ip address 100.110.0.246/23
  no spanning-tree
  enable
exit
bridge 3
  description "BRAS-users"
  vlan 3
  mtu 1458
  security-zone users
  ip address 192.168.2.1/24
  no spanning-tree
  location data10
  enable
exit

interface gigabitethernet 1/0/1
  description "UPLINK"
  mode switchport
  switchport access vlan 2
exit
interface gigabitethernet 1/0/2
  description "AP-MGMT"
  mode switchport
exit
interface gigabitethernet 1/0/3
  mode switchport
exit
interface gigabitethernet 1/0/4
  lldp receive
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 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
exit
security zone-pair trusted trusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted untrusted
  rule 1
    action permit
    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 10
    action permit
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 20
    action permit
    match protocol tcp
    match destination-port object-group http
    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
  pool translate
    ip address-range 100.110.0.246
  exit
  ruleset factory
    to zone untrusted
    rule 10
      description "replace 'source ip' by outgoing interface ip address"
      action source-nat interface
      enable
    exit
  exit
  ruleset SNAT
    to interface gigabitethernet 1/0/1
    rule 1
      match source-address object-group local
      action source-nat pool translate
      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

ip route 0.0.0.0/0 100.110.0.1

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
    ssid-profile default-ssid
  exit
  ssid-profile default-ssid
    description F.E.free
    ssid F.E.freeSSID
    vlan-id 3
    802.11kv
    band 2g
    band 5g
    enable
  exit
  ap-profile default-ap
    password ascii-text encrypted testing123
    services
      ip ssh server
      ip http server
    exit
  exit
  radius-profile default-radius
    auth-address 192.168.1.1
    auth-password ascii-text encrypted testing123
    domain default
  exit
  ip-pool default-ip-pool
    description default-ip-pool
    ap-location default-location
  exit
  enable
exit

ip ssh server

clock timezone gmt +7

ntp enable
ntp broadcast-client enable
ntp server 194.190.168.1
exit

ip https server


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

Создание сервера

На стороне системы авторизации перейдите: Конфигурация → Сервера доступа → Создать сервер.

В закладке Параметры:

В поле «Атрибуты CoA / пост-авторизации» задайте: 

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

В поле ввода «Секретный ключ» укажите ключ, который указали для radius-server host 100.110.1.44 в конфигурации WLC:

wnampass

Создание площадки

1. Создайте площадку, к которой будет привязана страница гостевого портала: Конфигурация → Площадки → Создать площадку.

В поле «Тип» выберите Площадка, в поле «Разрешенный сервер доступа» выберите созданный ранее сервер. В поле «Присвоенная IP подсеть или МАС точек доступа» укажите наш пул IP для пользователей портала (сеть Bridge 3 на WLC).

Таким образом через привязку пулов IP можно привязать разные Площадки с разными порталами авторизации, трафик клиентов которых терминируется на одном WLC.

Разрешенный сервер соответственно на разных площадках будет один и тот же.


2. Выберите созданную площадку.

На вкладке Авторизация выберите в поле «Метод»Ввод кода с ваучера. Укажите срок валидности ваучера для авторизации. В параметре «Имя страницы» выберите Ваучер (по умолчанию). Данных настроек достаточно для работы гостевого портала с авторизацией по коду из Ваучера.

Настройка других способов авторизации выходит за рамки данной статьи.


Создание группы ваучеров

1. Перейдите к созданию ваучеров для авторизации: Конфигурация → Гостевая авторизация → Ваучеры → Создать группу ваучеров.


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

Конфигурирование правил аутентификации

1. Перейдите во вкладку: Конфигурация → Правила аутентификации.

Создайте новое правило аутентификации и настройте как на скриншоте приведенном ниже. «Источник запроса» выберите Проводной.

В параметре «Входящий радиус атрибут» выберите NAS-Port-ID, равным тому location, указанный в настройках Bridge 3 на WLC, на которой терминируется клиентский трафик.

Таким образом свяжите данное правило с SSID с гостевым доступом. 

В правило можно добавить дополнительными параметрами при необходимости.

Правило аутентификации привязывается к правилу авторизации при помощи тега. В данном примере указан тег guest-wifi-redirect.

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


2. Приступите к созданию правила аутентификации для доступа клиента в Internet.

Параметры «Источник запроса» и «Входящий RADIUS атрибут» настройте так же, как в правиле для редиректа (см. выше).

 Необходимо использовать уникальный тег, как в примере выше. В данном примере указан тег guest-wifi-permit.


Конфигурирование правил авторизации

1. Создайте правила авторизации.

Перейдите во вкладку: Конфигурация → Правила авторизации.

Первое правило для редиректа на портал приведите к виду как на примере ниже.

В результате должен быть ответ протокола Radius-формата Access-Reject от сервиса авторизации системе BRAS на WLC. 

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


2. Второе правило для предоставления доступа в Internet. В блоке «Применить» параметра «RADIUS-атрибуты» пропишите атрибут, назначающий сервис доступа с названием INTERNET, который настроен в виде списка контроля доступа на WLC.

Cisco-Account-Info=AINTERNET

В результате, на данном этапе, должен быть ответ протокола Radius формата Access-Accept от сервиса авторизации системе BRAS на WLC. В нем будет содержаться атрибут с указанием наименования сервиса доступного абоненту.


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

На этом конфигурация сервиса Netams WNAM завершена.

После конфигурирования портала и контроллера WLC при подключения к SSID с названием F.E.freeSSID будет регистрация в сети. Клиент попадёт на портал авторизации, где необходимо ввести один из свободных ваучеров. Посмотреть доступные ваучеры можно при переходе на следующую вкладку: Конфигурация → Гостевая авторизация → Ваучеры. Выберите созданную группу Test_Guest-Portal и введите свободный. После авторизации будет предоставлен доступ в интернет, а введенный ваучер привяжется.

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

Логирование работы правил авторизации

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

1: fillFromRadiusAttributes - identity: '78:98:E8:1E:67:07', portType: EthernetMAB
2: fillFromRadiusAttributes - mac: '78:98:E8:1E:67:07'
3: fillFromRadiusAttributes - password: present in request
4: fillFromRadiusAttributes - nas: 'WLC-30 [F.E.]', ip: 100.110.0.246, id: 6614c699fd772e622ebb0689, vendor: ELTEX [enabled]
5: fillFromRadiusAttributes - nas: IP address: 100.110.0.246, identifier: 'null', port: 'location data10'
6: fillFromRadiusAttributes - site: 'test', id: new [enabled]
7: fillFromRadiusAttributes - session id: '3098476543630901255'
8: radius - received 8 attributes in the request: 
    Cisco-AVPair-subscriber:vrf = 1
    User-Name = 78:98:E8:1E:67:07
    Cisco-AVPair-subscriber:CELL = d998075724dc24029b359a8db24682a0
    User-Password = (password length: 8)
    NAS-IP-Address = 100.110.0.246
    Cisco-AVPair-subscriber:l2-interface = softgre 1.4
    Acct-Session-Id = 3098476543630901255
    NAS-Port-Id = location data10
9: filterForPapMacMethod - checkMABPassword: matched captiveportal_pass for 'Редирект для гостевого Wi-Fi tester'
10: authentication - a1profiles candidates: 1 with preliminary processing result: RadiusResponse [state=OK, attributes=[]]
11: authentication - final result: Redirect with policy 'Редирект для гостевого Wi-Fi tester' and tag 'guest-wifi-redirect'
12: authorization - guest redirect
13: radius - send RADIUS REJECT, reason: This will instruct Wi-Fi controller to execute redirect action


1: fillFromRadiusAttributes - identity: '78:98:E8:1E:67:07', portType: EthernetMAB
2: fillFromRadiusAttributes - mac: '78:98:E8:1E:67:07'
3: fillFromRadiusAttributes - password: present in request
4: fillFromRadiusAttributes - nas: 'WLC-30 [F.E.]', ip: 100.110.0.246, id: 6614c699fd772e622ebb0689, vendor: ELTEX [enabled]
5: fillFromRadiusAttributes - nas: IP address: 100.110.0.246, identifier: 'null', port: 'location data10'
6: fillFromRadiusAttributes - site: 'test', id: new [enabled]
7: fillFromRadiusAttributes - session id: '3098476543630901255'
8: radius - received 8 attributes in the request: 
    Cisco-AVPair-subscriber:vrf = 1
    User-Name = 78:98:E8:1E:67:07
    Cisco-AVPair-subscriber:CELL = d998075724dc24029b359a8db24682a0
    User-Password = (password length: 8)
    NAS-IP-Address = 100.110.0.246
    Cisco-AVPair-subscriber:l2-interface = softgre 1.4
    Acct-Session-Id = 3098476543630901255
    NAS-Port-Id = location data10
9: filterForPapMacMethod - checkMABPassword: matched captiveportal_pass for 'Доступ для гостевого Wi-Fi tester'
10: authentication - a1profiles candidates: 1 with preliminary processing result: RadiusResponse [state=OK, attributes=[]]
11: authentication - final result: Allow with policy 'Доступ для гостевого Wi-Fi tester' and tag 'guest-wifi-permit'
12: authorization - a2profiles candidates: 7
13: authorization - final result: Accept with policy 'Доступ для гостевого Wi-Fi'
14: radius - send RADIUS ACCEPT with 1 attributes
15: radius -     attribute: Cisco-Account-Info = AINTERNET
16: addIP - Set IP address 192.168.3.21 on Accounting message (session 3098476543630901255)

Информация о ваучерах

Информация о статусе ваучеров находится по следующему пути: Конфигурация → Гостевая авторизация → Ваучеры.

Выберите нужную группу.

Информация о клиентах Wi-Fi

Активные клиентские подключения к Wi-Fi можно посмотреть на контроллере WLC-командой:

wlc# show subscriber-control sessions status

Ниже приведен пример вывода активных клиентских сессий на контроллере WLC:

wlc# sh subscriber-control sessions status
Session id             User name         IP address        MAC address         Interface              Domain
--------------------   ---------------   ---------------   -----------------   --------------------   ---------------
3098476543630901251    78:98:E8:1E:67:   192.168.3.21      78:98:e8:1e:67:07   softgre 1.4            --
                       07


wlc# sh subscriber-control services counters session-id 3098476543630901251
Service id             Service name      Recv packets     Recv bytes       Send packets     Send bytes
--------------------   ---------------   --------------   --------------   --------------   --------------
3134505340649865218    A INTERNET        4559             3868861          3842             692224


wlc# sh wlc clients
MAC User            MAC AP              Hostname AP                      SSID              RSSI      AP-Location         Username
-----------------   -----------------   ------------------------------   ---------------   -------   -----------------   -----------------
78:98:e8:1e:67:07   68:13:e2:02:ea:20   WEP-3ax                          F.E.freeSSID      -35       default-location    --

Расположение логов

Лог авторизации пользователей находится на сервере WNAM в файле: /home/wnam/logs/wnam.log

11:33:41.702 DEBUG [EltexWlcService.java:196] - CP ELTEX WLC clicked: username=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, sessionId=3098476543630901255, dst='http://www.msftconnecttest.com/redirect'
11:33:41.716 DEBUG [PageGenerator.java:713] - processAuthRequest ELTEXWLC: username=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, site_id=new, domain_id=3098476543630901255, dst='http://www.msftconnecttest.com/redirect' adv curr/max=1/1
11:33:41.719 DEBUG [PageGenerator.java:1300] - captive portal redirected to VOUCHER page, username=78:98:E8:1E:67:07, cust=new, form='6614c99dfd772e622ebb06a7'
11:34:13.380 DEBUG [VoucherHandler.java:52] - postVoucher CODE='V3U5', FORM=6614c99dfd772e622ebb06a7, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, site_id=new, name=78:98:E8:1E:67:07
11:34:13.382 DEBUG [VoucherHandler.java:62] - find_voucher: 66b34731933c505a427dad16, code=V3U5, status=Не активирован
11:34:13.395 DEBUG [VoucherHandler.java:125] - postVoucher OK CODE='V3U5', voucher='Группа: WNAM-WLC_01, владелец: admin', vg='WNAM-WLC_01'
11:34:13.399 DEBUG [PageGenerator.java:390] - processRedirectRequestCi mac=78:98:E8:1E:67:07, method=ORIGINAL, formName=, redirectUrl=null, key=b04fb14d-36fb-4c30-a886-bfbab119088c
11:34:13.401 DEBUG [PageGenerator.java:849] - loginAtNasCi ELTEXWLC mac=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, dst='http://www.msftconnecttest.com/redirect'
11:34:13.406 DEBUG [EltexWlcService.java:66] - backToEltexWLC login server='100.110.0.246', user=78:98:E8:1E:67:07, password=password, dst='http://www.msftconnecttest.co...'
11:34:13.407 DEBUG [EltexWlcService.java:85] - open EltexWLC access REQ for IP=192.168.3.21, MAC=78:98:E8:1E:67:07 at NAS_IP=100.110.0.246
11:34:13.411 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket AUTH as=100.110.0.246, secret_len=10, attrs=[Vendor-Specific: 0x, User-Name: 78:98:E8:1E:67:07, User-Password: <stripped out>, NAS-IP-Address: 100.110.0.246, Acct-Session-Id: 3098476543630901255, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Port-Id: location data10]
11:34:13.411 DEBUG [ProfilingService.java:440] - handleMac on MAC: 78:98:E8:1E:67:07 for vendor D-Link International
11:34:13.412 DEBUG [ProfilingService.java:466] - handleMac on MAC: 78:98:E8:1E:67:07 checks added: 1, res: [D-Link International]
11:34:13.414 DEBUG [ProfilingService.java:1091] - Endpoint 78:98:E8:1E:67:07 logical profile set to Home Network Devices
11:34:13.414 DEBUG [ProfilingService.java:1102] - Endpoint 78:98:E8:1E:67:07 policy set assigned: [DLink-Device]
11:34:13.416 DEBUG [ProfilingService.java:469] - handleMac on MAC: 78:98:E8:1E:67:07 profiled in 5 ms.
11:34:13.433 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket AUTH as=100.110.0.246, secret_len=10, attrs=[User-Name: INTERNET, Vendor-Specific: 0x, NAS-IP-Address: 100.110.0.246, NAS-Port-Id: location data10, User-Password: <stripped out>, Vendor-Specific: 0x, Vendor-Specific: 0x, Acct-Session-Id: 3134505340649865221, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x]
11:34:13.434 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: 78:98:E8:1E:67:07, Vendor-Specific: 0x, Acct-Session-Id: 3098476543630901255, Acct-Status-Type: Start, Vendor-Specific: 0x, Event-Timestamp: 1723436510, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, NAS-IP-Address: 100.110.0.246]
11:34:13.435 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: 78:98:E8:1E:67:07, Vendor-Specific: 0x, Acct-Session-Id: 3098476543630901255, Acct-Status-Type: Interim-Update, Vendor-Specific: 0x, Event-Timestamp: 1723436806, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, Vendor-Specific: 0x, Vendor-Specific: 0x, Acct-Input-Gigawords: 0, Acct-Input-Octets: 128192, Acct-Output-Gigawords: 0, Acct-Output-Octets: 149134, Acct-Session-Time: 286, NAS-IP-Address: 100.110.0.246]
11:34:13.436 DEBUG [EltexWlcService.java:176] - sendCoa attrs=8, fail=false, resp=CoA-ACK
11:34:13.437 DEBUG [EltexWlcService.java:148] - open EltexWLC access SUCCESS for IP=192.168.3.21, MAC=78:98:E8:1E:67:07, num_avp=1
11:34:13.440 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: INTERNET, Vendor-Specific: 0x, Acct-Session-Id: 3134505340649865221, Vendor-Specific: 0x, Acct-Status-Type: Start, Vendor-Specific: 0x, Event-Timestamp: 1723436806, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, NAS-IP-Address: 100.110.0.246]
11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Interim-Update new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=78:98:E8:1E:67:07, NAS_IP=100.110.0.246, site_id=new
11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Start new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=78:98:E8:1E:67:07, NAS_IP=100.110.0.246, site_id=new
11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Start new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=INTERNET, NAS_IP=100.110.0.246, site_id=new