Описание

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 testing123
    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 testing123
exit
aaa radius-profile default_radius
  radius-server host 127.0.0.1
exit

boot host auto-config
boot host auto-update

vlan 3
  force-up
exit
vlan 2
exit

no spanning-tree

domain lookup enable

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

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

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

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

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

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

security passwords default-expired

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

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

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

wlc
  outside-address 192.168.1.1
  service-activator
    aps join auto
  exit
  ap-location default-location
    mode tunnel
    ap-profile default-ap
    ssid-profile default-ssid
  exit
  ssid-profile default-ssid
    ssid "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
  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, который также можно использовать в настройках, отредактировать или удалить.

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

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


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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

Перейти в раздел Наборы политик и добавить политику:

Настроить:

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

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

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


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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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


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