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

Ключ

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

...

Задача

Настроить со стороны WLC перенаправление неавторизованных клиентов на сервер портальной авторизации WNAM. Со стороны WNAM создать площадку, правила авторизации и аутентификации, ваучеры для новых клиентов.Настроить  портальную авторизацию через контроллер WLC с порталом WNAM.

  • Контроллер WLC имеет адреса:
    • из сети WNAM: 100.110.0.246/23 (Vlan 2);
    • из сети управления ТД: 192.168.1.1/24 (Bridge 1, Vlan 1);
    • из сети клиентов ТД с портальной авторизацией: 192.168.3.1/24 (Bridge 3, Vlan 3).
  • Сервер авторизации WNAM имеет адрес: 100.110.1.44/23 (Vlan 2);
  • Точка доступа подключена к WLC. Получает адрес контроллера и терминации GRE туннеля в 43 опции из пула DHCP, настроенного на WLC из сети: 192.168.1.0/24 (Vlan 1);
  • Клиенты получают адреса из пула DHCP, настроенного на WLC из сети: 192.168.2.0/24 (Vlan 3).
  • Сервис для доступа в Интернет после авторизации на портале имеет имя: INTERNET.

...

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

...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNamewnamDiagram
simpleViewerfalse
width
diagramWidth812
revision2

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

  1. Конфигурация objectКонфигурация 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


    Подсказка
    titleВажно!

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

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

    На WLC-3200 24 ядра, нужно разрешить порты  для HTTP 3128-3151, для HTTPS 3152-3175.


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

    Блок кода
    object-
    Блок кода
    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для uplink:

    Блок кода
    wlc(config)# bridge 2

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

    Блок кода
    wlc(config-bridge)# ip address 100.110.0.246/23
    wlc(config-bridge)# exit

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

    Блок кода
    wlc(config)# bridge 3

    Добавить location для определения сервером WNAM , по нему сервер 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
    vlan 2
    exit


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

    Блок кода
    wlc(config-acl)# ip access-list extended BYPASS
    

    Создание правила с номером 10, это правило отвечает за разрешение получение адреса по протоколу dhcp 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

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

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

    Блок кода
    wlc(config)# ip access-list extended WELCOMEINTERNET

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

    Блок кода
    wlc(config-acl)# rule 10

    Добавляем действие правила - разрешение:

    Блок кода
    wlc(config-acl-rule)# action permit

    Добавляем совпадение по протоколу tcpВключаем правило:

    Блок кода
    wlc(config-acl-rule)# match protocol tcp

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

    Блок кода
    enable
    wlc(config-acl-rule)# match destination-port 443

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

    Блок кода
    wlc(config-acl-rule)# enable
    wlc(config-acl-rule)# exit

    Создаем правило с номером 30, в котором разрешены http-запросы:

    Блок кода
    wlc(config-acl)# rule 30

    Добавляем действие правила - разрешение:

    Блок кода
    wlc(config-acl-rule)# action permit

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

    Блок кода
    wlc(config-acl-rule)# match protocol udp

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

    Блок кода
    wlc(config-acl-rule)# match destination-port 80

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

    Блок кода
    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
    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 WELCOME
      rule 10
        action permit
        match protocol tcp 68
        match destination-port 44367
        enable
      exit
      rule 3011
        action permit
        match protocol tcpudp
        match destination-port 8053
        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 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 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 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 defaulttest-ssid
    Указываем имя SSID, которые будет вещаться для клиентов:
    Блок кода
    wlc(config-wlc-ssid)# ssid F.E.freeSSID
    wlc(config-wlc-ssid)# exit
    wlc(config-wlc)# exit
    Полная конфигурация SSID:
    Блок кода
    wlc
      ssid-profile defaulttest-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.
    Блок кода
    languagevb
    themeEclipse
    ap-location default-location
      ssid-profile test-ssid
    exit
  10. Конфигурация редиректа клиентов:
    Переходим в блок настроек редиректа:
    Блок кода
    wlc(config)# subscriber-control
    Добавляем профиль aaa AAA das-сервера:
    Блок кода
    wlc(config-subscriber-control)# aaa das-profile bras_das
    Добавляем профль aaa профиль AAA RADIUS  для создания сессий:
    Блок кода
    wlc(config-subscriber-control)# aaa sessions-radius-profile bras_radius
    Добавляем профиль aaa AAA RADIUS для доступа к сервисам:
    Блок кода
    wlc(config-subscriber-control)# aaa services-radius-profile bras_radius 
    Указываем внешний  ip IP WLC (Bridge 2), который будет выступать атрибутом NAS-IP-Address в RADIUS-запросах на WNAM:
    Блок кода
    wlc(config-subscriber-control)# nas-ip-address 100.110.0.246 
    Включаем аутентификацию сессий по мак-адресам:
    Блок кода
    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
    Указываем фильтр по имени сервиса для редиректа:
    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
    Подсказка
    titleВажно!

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

...

Раскрыть
titleПолная конифгурация 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 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 WELCOMEBYPASS
  rule 10
    action permit
    match protocol tcp udp
    match source-port 68
    match destination-port 44367
    enable
  exit
  rule 3011
    action permit
    match protocol tcpudp
    match destination-port 8053
    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


...

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

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

  • Создаётся объект Сервер доступа (тип: Eltex);
  • Заполняем поля IP адрес и Внешний IP адрес (адрес вашего WLC, смотрящий в сторону WNAM);
  • Имя устройства и Местоположение (произвольно).

...

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

Блок кода
Cisco-AVPair=subscriber:command=account-loggon
Idle-Timeout=1200
Acct-Interim-Interval=300
Cisco-AVPair=subscriber:vrf=1

...

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

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

...

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


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

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

...

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

Создаем правило для редиректа на гостевой портал (копируем стандартное правило редиректа и модифицируем его).

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

Переходим во вкладку: Конфигурация → Правила аутентификации.
Создаем новое правило аутентификации и настраиваем, как на скриншоте приведенном ниже. Источник запроса выбираем проводной (BRAS у нас находится на проводном интерфейсе).
В параметре  "Входящий радиус атрибут" выбираем "NAS-Port-ID" равным тому "location" который указали в настройках Bridge 3 на WLC, на котором терминируется клиентский трафик.
Таким образом свяжем данное правило с  SSID с гостевым доступом.

Подсказка
titleВажно!

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

...


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

Подсказка
titleВажно!

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

...

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

...

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

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

...

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

...

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

Блок кода
titleПример вывода логов авторизации файла /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

...