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

В общем случае клиент проходит следующие шаги в ходе выполнения портальной авторизации:
Далее приведен приведен пример настройки 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 реализованы дефолтные сущности для настройки портала , которые можно использовать, редактировать, или использовать свои. Разберем настройку на примере Eltex WLC.
Для взаимодействия с WLC в систему добавлен профиль устройства по умолчанию |
Перейти в раздел Администрирование → Сетевые ресурсы → Профили устройств. Создать профиль устройства:

На вкладке Аутентификация/Авторизация настроить:
В блоке Условия определения типа подключения включить Wireless 802.1x и Wireless MAB. Использовать предложенные автозаполнением атрибуты.
В блоке MAB включить:
Настроить MAB - включить для возможности выполнения MAB-аутентификации.PAP - включить возможность аутентификации по протоколу PAP.Проверять совпадение Calling-Station-Id и MAC-адреса - включить проверку совпадение MAC-адреса в атрибуте User-Name и Calling-station-Id.Условие пароля - INTERNAL_RADIUS:Cleartext-Password = RADIUS:User-Name.Далее перейти на вкладку Настройки RADIUS CoA.

Включить:
Cisco:Cisco-AVPair = subscriber:command=reauthenticate .Далее перейти на вкладку Настройки перенаправления на портал.

Включить:
Cisco:Cisco-AVPair = url-redirect=${URL}Cisco:Cisco-AVPair = url-redirect-acl=${ACL}Нажать кнопку Добавить.
Перейти в раздел Администрирование → Сетевые ресурсы → Устройства. Добавить сетевое устройство:

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

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

В цепочке обязательно необходимо добавить следующий источник идентификации:
Можно так же использовать источник идентификаций |
Нажать кнопку Добавить.
По умолчанию в NAICE добавлен один портал |
Для того чтобы в дальнейшем использовать портал в настройках профиля авторизации его необходимо создать.
Перейти в раздел Управление порталами → Конструктор порталов и добавить новый портал (или отредактировать существующий):

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

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

Данная страница не содержит обязательных полей и может использоваться со значениями по умолчанию.
Нажать Добавить.
По умолчанию в NAICE добавлен профиль авторизации |
Для корректной работы портала так же необходимо дополнительно настроить профиль авторизации для клиентов, которые попадут на портал.
Перейти в раздел Политики → Элементы → Профили авторизации и добавить новый профиль, или отредактировать существующий:

Необходимо заполнить следующие поля:
ACL с аналогичным именем должна быть настроена на WLC и ТД, и разрешать получение IP-адреса, разрешение DNS запросов и доступ к порталу! В случае ошибок в настройке или имени ACL редирект на портал будет невозможен! |
Нажать Добавить.
Учитывая гибкие возможности по настройке политик в NAICE, процесс аутентификации с помощью Captive Portal может быть настроен с использованием различных условий. В данном примере приведена простейшая настройка.
Перейти в раздел Наборы политик и добавить политику:

Настроить:
MAB.Нажать кнопку Сохранить.
После этого новая политика будет добавлена в список.
После сохранения новой политики, в колонке Настройка справа станет доступна кнопка
, по нажатию на которой будет выполнен переход в режим редактирования политики.
После перехода в режим редактирования ранее созданной политики 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 → Пользовательские сессии можно увидеть запросы авторизации пользователя:

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