it

Описание

Captive Portal используется для реализации политики безопасности, посредством проверки соответствия устройств и пользователей требованиям безопасности до предоставления доступа к корпоративной сети. С помощью Captive Portal гостевые и временные пользователи могут воспользоваться упрощенным процессом регистрации и получить ограниченный доступ к сетевым ресурсам.

Диаграмма портальной авторизации на ТД, подключенной через контроллер WLC:

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

  1. Подключается к ТД.
  2. ТД выполняет MAB аутентификацию устройства пользователя.
  3. WLC выполняет проксирование RADIUS запроса авторизации, что бы со стороны NAICE выглядело как подключение со стороны одного устройства (WLC).
  4. RADIUS-запрос приходит в NAICE и он в соответствии с настройкой политик проверяет наличие гостевого эндпоинта в БД.
  5. Т.к. подключение происходит в первый раз - эндпоинт не найден, вместе с ответом Access-Accept возвращаются параметры с адресом портала для редиректа и ACL со списком разрешенных ресурсов, в которые должен быть включен  адрес портала на адрес WLC.
  6. WLC проксирует ответ на ТД, от которой был получен запрос.
  7. Клиент получает IP-адрес и пытается получить доступ в Интернет. В ответ ТД начинает возвращать редирект со ссылкой на портал.
  8. Пользовательское устройство получая ссылку редиректа открывает всплывающий браузер и открывает страницу портальной авторизации.
  9. Успешно пройдя портальную авторизацию (по логину/паролю или с регистрацией и подтверждением номера по СМС) для устройства клиента добавляется запись о гостевом эндпоинте, содержащая мак-адрес клиента.
  10. После успешной авторизации на портале на WLC отправляется запрос CoA re-authenticate.
  11. WLC перенаправляет данный запрос на ТД.
  12. ТД выполняет повторную ре-аутентификацию устройства пользователя с использованием MAB аутентификации.
  13. NAICE, повторно получив запрос, в соответствии с настройкой политик проверяет наличие гостевого эндпоинта в БД. 
  14. Т.к. ранее пользователь прошел регистрацию на портале - гостевой эндпоинт в БД есть. На ТД отправляется Access-Accept и пользователь получает доступ в сеть.

Требования

Настройка контроллера

Далее приведен приведен пример настройки Eltex WLC-30 (v.1.30.6) с точкой WEP-30L(2.8.0). Предполагается что на контроллере уже настроен IP-адрес, обеспечена сетевая связность с сервером NAICE. Руководство по обновлению ПО Eltex WLC-30 можно найти по ссылке. Полностью ознакомится с документацией по настройке контроллера можно на официальном сайте компании https://eltex-co.ru. За основу будет взята заводская конфигурация, пример настройки которой доступен по ссылке.

Настройка конфигурации контроллера

Добавить NAICE, как радиус сервер, и настроить проксирование RADIUS-запросов от ТД на него. Так же требуется настроить проксирование CoA запросов со стороны NAICE на ТД через WLC:

radius-server local
  nas AP_subnet                    # Подсеть ТД, на которые будет выполняться проксирование CoA-запросов
    key ascii-text testing123
    network 192.168.1.0/24
  exit
  nas naice
    key ascii-text testing123
    network 100.110.3.124/32       # Адрес NAICE, для которого будет выполняться проксирование CoA-запросов на ТД
  exit
  virtual-server default
    mode proxy
    upstream-pool naice
    das-server enable
    nas-ip-address 100.127.0.136   # Адрес WLC, который будет заменять в поле NAS-IP-Address адрес ТД при выполнении проксирования RADIUS-запросов
    enable
  exit
  upstream-server naice
    host 100.110.3.124             # Адрес NAICE, на который выполняется проксирование RADIUS-запросов от ТД
    server-type all
    key ascii-text testing123
  exit
  upstream-pool naice
    server-type all
    upstream-server naice
  exit
  enable
exit

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

ip access-list extended test-acl
  rule 1
    action permit
    match destination-address 100.110.3.124 255.255.255.255   # Адрес NAICE
    enable
  exit
  rule 2
    action permit
    match protocol udp
    match destination-port port-range 53
    enable
  exit
  rule 3
    action permit
    match protocol udp
    match source-port port-range 68
    match destination-port port-range 67
    enable
  exit
exit

В настройке WLC настроить профиль SSID, включить портальную авторизацию, создать профиль для портала,  включить das-server на ТД и в настройках RADIUS профиля указать настройку, чтобы MAC-адрес пользователя подставлялся в пароль:

wlc
  outside-address 192.168.1.1                    # Адрес WLC для точек доступа
  service-activator
    aps join auto
  exit
  ap-location default-location
    mode tunnel
    ap-profile default-ap
    ssid-profile default-ssid
  exit
  ssid-profile default-ssid
    ssid "default-ssid"
    radius-profile default-radius
    portal-enable
    portal-profile default-portal
    vlan-id 3
    band 2g
    band 5g
    enable
  exit
  ap-profile default-ap
    password ascii-text password
    services
      das-server enable
      das-server key ascii-text testing123
    exit
    ipv4-acl test-acl
  exit
  portal-profile default-portal
    preauth-filter-mode acl
    disconnect-on-reject
    verification-mode external-portal
  exit
  radius-profile default-radius
    auth-address 192.168.1.1                    # Адрес WLC во влане точек. Необходимо указать его, как адрес RADIUS-сервера для ТД. 
                                                # Иначе WLC не сможет выполнять проксирование и подмену NAS-IP при отправке RADIUS-запроса к NAICE.
    auth-password ascii-text testing123
    session password mac
    auth-acct-id-send                   		# Данная настройка является критичной, так как уникальность сессии определяется по атрибуту Acct-Session-Id
    acct-enable
    acct-address 192.168.1.1
    acct-password ascii-text testing123
    acct-periodic
    domain default
  exit
  enable
exit

Добавить правила firewall:

object-group service das
  port-range 1700
exit

security zone-pair untrusted self
  rule 2
    action permit
    match protocol udp
    match destination-port object-group radius_auth  # Разрешить UDP трафик для RADIUS-аутентификации
    enable
  exit
  rule 3
    action permit
    match protocol udp
    match destination-port object-group das          # Разрешить UDP трафик для CoA-запросов
    enable
  exit
  rule 4
    action permit
    match protocol tcp
    match destination-port object-group ssh          # Разрешить подключение по SSH
    enable
  exit
  rule 5
    action permit
    match protocol icmp
    enable
  exit
exit

 

object-group service ssh
  port-range 22
exit
object-group service dhcp_server
  port-range 67
exit
object-group service dhcp_client
  port-range 68
exit
object-group service ntp
  port-range 123
exit
object-group service netconf
  port-range 830
exit
object-group service radius_auth
  port-range 1812
exit
object-group service sa
  port-range 8043-8044
exit
object-group service dns
  port-range 53
exit
object-group service airtune
  port-range 8099
exit
object-group service web
  port-range 443
exit
object-group service das
  port-range 1700
exit

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

logging radius

radius-server local
  nas AP_subnet
    key ascii-text testing123
    network 192.168.1.0/24
  exit
  nas local
    key ascii-text password
    network 127.0.0.1/32
  exit
  nas naice
    key ascii-text testing123
    network 100.110.3.124/32
  exit
  domain default
  exit
  virtual-server default
    mode proxy
    upstream-pool naice
    das-server enable
    nas-ip-address 100.127.0.136
    enable
  exit
  upstream-server naice
    host 100.110.3.124
    server-type all
    key ascii-text testing123
  exit
  upstream-pool naice
    server-type all
    upstream-server naice
  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

boot host auto-config
boot host auto-update

vlan 3
  force-up
exit
vlan 2
exit

no spanning-tree

domain lookup enable

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

ip access-list extended test-acl
  rule 1
    action permit
    match destination-address 100.110.3.124 255.255.255.255
    enable
  exit
  rule 2
    action permit
    match protocol udp
    match destination-port port-range 53
    enable
  exit
  rule 3
    action permit
    match protocol udp
    match source-port port-range 67-68
    match destination-port port-range 67
    enable
  exit
exit

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

interface gigabitethernet 1/0/1
  mode switchport
  switchport access vlan 2
exit
interface gigabitethernet 1/0/2
  mode switchport
exit
interface gigabitethernet 1/0/3
  mode switchport
exit
interface gigabitethernet 1/0/4
  mode switchport
exit
interface gigabitethernet 1/0/5
  mode switchport
  switchport access vlan 2
exit
interface gigabitethernet 1/0/6
  mode switchport
exit

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

security zone-pair trusted untrusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted trusted
  rule 1
    action permit
    enable
  exit
exit
security zone-pair trusted self
  rule 10
    action permit
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 20
    action permit
    match protocol icmp
    enable
  exit
  rule 30
    action permit
    match protocol udp
    match source-port object-group dhcp_client
    match destination-port object-group dhcp_server
    enable
  exit
  rule 40
    action permit
    match protocol udp
    match destination-port object-group ntp
    enable
  exit
  rule 50
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 60
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
  rule 70
    action permit
    match protocol tcp
    match destination-port object-group netconf
    enable
  exit
  rule 80
    action permit
    match protocol tcp
    match destination-port object-group sa
    enable
  exit
  rule 90
    action permit
    match protocol udp
    match destination-port object-group radius_auth
    enable
  exit
  rule 100
    action permit
    match protocol gre
    enable
  exit
  rule 110
    action permit
    match protocol tcp
    match destination-port object-group airtune
    enable
  exit
  rule 120
    action permit
    match protocol tcp
    match destination-port object-group web
    enable
  exit
exit
security zone-pair untrusted self
  rule 1
    action permit
    match protocol udp
    match source-port object-group dhcp_server
    match destination-port object-group dhcp_client
    enable
  exit
  rule 2
    action permit
    match protocol udp
    match destination-port object-group radius_auth
    enable
  exit
  rule 3
    action permit
    match protocol udp
    match destination-port object-group das
    enable
  exit
  rule 4
    action permit 
    match protocol tcp
    match destination-port object-group ssh
    enable
  exit
  rule 5
    action permit
    match protocol icmp
    enable
  exit
exit
security zone-pair users self
  rule 10
    action permit
    match protocol icmp
    enable
  exit
  rule 20
    action permit
    match protocol udp
    match source-port object-group dhcp_client
    match destination-port object-group dhcp_server
    enable
  exit
  rule 30
    action permit
    match protocol tcp
    match destination-port object-group dns
    enable
  exit
  rule 40
    action permit
    match protocol udp
    match destination-port object-group dns
    enable
  exit
exit
security zone-pair users untrusted
  rule 1
    action permit
    enable
  exit
exit

security passwords default-expired

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

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

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

wlc
  outside-address 192.168.1.1
  service-activator
    aps join auto
  exit
  ap-location default-location
    mode tunnel
    ap-profile default-ap
    ssid-profile default-ssid
  exit
  ssid-profile default-ssid
    ssid "default-ssid"
    radius-profile default-radius
    portal-enable
    portal-profile default-portal
    vlan-id 3
    band 2g
    band 5g
    enable
  exit
  ap-profile default-ap
    password ascii-text password
    services
      das-server enable
      das-server key ascii-text testing123
    exit
    ipv4-acl test-acl
  exit
  portal-profile default-portal
    preauth-filter-mode acl
    disconnect-on-reject
    verification-mode external-portal
  exit
  radius-profile default-radius
    auth-address 192.168.1.1
    auth-password ascii-text testing123
    session password mac
    auth-acct-id-send
    acct-enable
    acct-address 192.168.1.1
    acct-password ascii-text testing123
    acct-periodic
    domain default
  exit
  ip-pool default-ip-pool
    description "default-ip-pool"
    ap-location default-location
  exit
  enable
exit

ip ssh server

ntp enable
ntp broadcast-client enable

Настройка точки доступа

В заводской конфигурации WLC-30 предусмотрено автоматическое подключение точек доступа к контроллеру. Для этого требуется подключить точку доступа в порт gi1/0/2 и контроллер WLC сам выполнит обновление, если версия ПО на точке доступа не соответствует версии, которая размещена на контроллере, выполнит конфигурирование в соответствие с настройками: выбранными профилями конфигурации и SSID. Инструкцию по загрузке актуальной версии ПО точек доступа на контроллер можно найти по ссылке.

Настройка NAICE

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


Для быстроты и удобства  в NAICE реализованы дефолтные сущности для настройки портала , которые можно использовать, редактировать, или использовать свои. Разберем настройку на примере Eltex WLC. 

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

Для взаимодействия с WLC в систему добавлен профиль устройства по умолчанию Eltex WLC


Перейти в раздел Пользователи и устройства → Сетевые ресурсы → Профили устройств. Создать профиль устройства:


На вкладке Аутентификация/Авторизация настроить:

В блоке Условия определения типа подключения включить Wireless 802.1x и Wireless MAB. Использовать предложенные автозаполнением атрибуты.

В блоке MAB включить:

Далее перейти на вкладку Настройки RADIUS CoA.

Включить:


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

Включить:

Нажать кнопку Добавить.

Настройка сетевого устройства

Перейти в раздел Пользователи и устройства → Сетевые ресурсы → Устройства. Добавить сетевое устройство:


 

Нажать Добавить.

Настройка протокола аутентификации MAB

Возможность аутентификации MAB по умолчанию отключена. Необходимо явно разрешить использовать MAB-аутентификацию. Это можно сделать в предустановленном списке доступных протоколов Default protocols или создать новый. В данном примере будет создан новый список.

Перейти в раздел Доступ к сети → Элементы политик → Разрешенные протоколы и добавить новый список, или отредактировать существующий:

Настроить:

Нажать кнопку Добавить.

Настройка цепочки идентификации

Перейти в раздел  Пользователи и устройства → Управление идентификацией → Цепочки идентификации  и добавить новую цепочку, или отредактировать существующую:

В цепочке обязательно необходимо добавить следующий источник идентификации:

Можно так же использовать источник идентификаций Internal DB и внешние источники идентификаций MS AD или LDAP.

Нажать кнопку Добавить.

Настройка портала

По умолчанию в NAICE добавлен один портал Default portal, который также можно использовать в настройках, отредактировать или удалить.

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

Перейти в раздел Управление порталами → Конструктор порталов и добавить новый портал (или отредактировать существующий):


Для работы портала в режиме регистрации пользователей по СМС минимально необходимо заполнить следующие поля:


Нажать Далее. Откроется окно редактирования внешнего вида портала:

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


Нажать Далее. Откроется окно редактирования страниц портала. На данной странице выполняется редактирование тестового наполнения страниц портала для выбранного языка и настройка шаблона СМС сообщений.

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

Нажать Добавить.

Настройка шаблона СМС

На вкладке Вход по СМС содержится предустановленный шаблон СМС

Доступ к '${ssid}'.
Логин: '${target}'.
Пароль: '${code}'

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

Настройка профиля авторизации

По умолчанию в NAICE добавлен профиль авторизации Portal web redirect profile, который использует в своих настройках портал по умолчанию Default portal и имя ACL portal.

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

Перейти в раздел Доступ к сети  → Элементы политик → Профили авторизации  и добавить новый профиль, или отредактировать существующий:

Необходимо заполнить следующие поля:

Нажать Добавить.

Настройка политики

Учитывая гибкие возможности по настройке политик в NAICE, процесс аутентификации с помощью Captive Portal может быть настроен с использованием различных условий. В данном примере приведена простейшая настройка.

Добавление и настройка политики

Перейти в раздел Доступ к сети → Политики RADIUS и добавить политику:


Настроить:

Нажать кнопку Сохранить.

После этого новая политика будет добавлена в список.

После сохранения новой политики, в колонке Настройка справа станет доступна кнопка , по нажатию на которой будет выполнен переход в режим редактирования политики.


Настройка политики аутентификации

После перехода в режим редактирования ранее созданной политики Portal Auth в блоке Политика аутентификации:

Выбрать в политике аутентификации по умолчанию Default ранее созданную цепочку идентификации  Portal sequence.

При необходимости можно создать новую политику аутентификации.


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

Оставаясь в созданной ранее политике MAB Auth в блоке Политика авторизации добавить новые политики авторизации:

Добавить политику авторизации с условием «Guest endpoints·Registered guest Равно yes», которое позволит авторизовываться зарегистрированным клиентам без прохождения повторной авторизации на портале. Для данного условия выбрать профиль авторизации PermitAccess.

Добавить политику авторизации с условием «Guest endpoints·Registered guest Равно no», которое позволит подключаться ранее незарегистрированным клиентам, для которых будет выполняться редирект на портал. Для данного условия выбрать ранее созданный профиль авторизации Portal Profile.

Проверка подключения с использованием демо шлюза

В рамках данного примера настройки для отправки СМС используется демо шлюз (Demo gateway). Данный шлюз предназначен для отладки и демонстрации работы функционала без использования реальной интеграции с СМС шлюзом и не может быть отредактирован или удален. Информация о коде отправленной СМС отображается в разделе Мониторинг → Система → Системные события.

Инструкция по настройке интеграции с СМС шлюзом описана v1.1_4.7.3 Пример интеграции с smsc.ru.


Подключиться к созданному SSID и дождаться редиректа на портал.

В открывшемся окне ввести номер телефона и капчу для получения смс-кода. Нажать Выслать код:

Перейти в раздел Мониторинг  → Система → Системные события. В открывшейся таблице появится событие об отправке СМС через демо шлюз с кодом подтверждения:

Ввести полученный код на телефоне, после чего отобразится сообщение об успешной авторизации:

В раздел Мониторинг  → RADIUS → Пользовательские сессии можно увидеть запросы авторизации пользователя:

Для подключения пользователя отображается две сессии:


Траблшутинг проблем во время портальной авторизации пользователя доступен в v1.1_ru_9.5 Диагностика подключения портального пользователя.