Описание

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 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-pool default-ip-pool
  description "default-ip-pool"
  ap-location default-location
exit

ip ssh server

ntp enable
ntp broadcast-client enable

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

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

Настройка NAICE

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


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

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

Перейти в раздел Администрирование → Сетевые ресурсы → Профили устройств. Создать или отредактировать существующий профиль устройства:

В блоке Аутентификация/Авторизация необходимо настроить условия RADIUS-атрибутов, для определения того, каким образом подключается пользователь. 

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

Далее раскрыть блоки "Настройки RADIUS CoA" и "Настройки перенаправления на портал"


В блоке "Настройки RADIUS CoA" минимально необходимо настроить:

В блоке "Настройки перенаправления на портал" необходимо заполнить:

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

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

Перейти в раздел Администрирование → Сетевые ресурсы → Устройства. Создать или отредактировать существующее сетевое устройство.

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

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

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

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


Настроить:

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

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

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

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

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

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

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


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


В поле СМС-шлюз выбрать Demo gateway. Это специально созданный шлюз, который позволяет проверить работу портала без настройки реальной интеграции.

Нажать Далее. Откроется окно кастомизации портала

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


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

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

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

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

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

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

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

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

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

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


Настроить:

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

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

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


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

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


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


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

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



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

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

Проверка подключения

С мобильного устройства подключиться к созданному SSID и дождаться редиректа на портал.

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

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

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

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