Меню Рубрики

Установка и настройка captive portal

Настройка Captive Portal для авторизации пользователей

Captive Portal – сетевой сервис авторизации и идентификации пользователей. Наиболее часто используемый при построении общественных Wi-Fi сетей, где необходимо ограничивать права доступа в сеть Интернет или взымать дополнительную плату за её использование. По сути своей представляет веб-портал где пользователю предлагается указать учетные данные для дальнейшей идентификации в сети.

С точки зрения информационной безопасности, Captive Portal необходимая мера при использовании корпоративной Wi-Fi сети. И с реализацией его прекрасно справляются межсетевые экраны нового поколения (NGFW) Palo Alto Networks.

Далее мы рассмотрим подробную инструкцию по установке и настройке Captive Portal для использования в корпоративной Wi-Fi сети. А так же наиболее часто возникающие проблемы, с которыми приходится сталкиваться системному администратору.

Настройка шаг за шагом.

Шаг 1. Необходимо определить по какому из интерфейсов будут инициироваться запросы от пользователей на авторизацию и дать ему права на данную процедуру.
В нашем случае это ethernet1/5. Для того чтобы разрешить данному интерфейсу авторизацию Captive Portal, необходимо в Network – Network Profiles – Interface Mgmt создать или использовать уже имеющийся профиль, в котором разрешить сервисы Response Pages и User-ID.

Далее на вкладке Network – Interfaces выбрать нужный нам интерфейс и в Advanced – Other Info указать ранее созданный профиль:

Шаг 2. Необходимо сгенерировать или использовать сертификат, подписанный третьей стороной, для идентификации самого Captive Portal и дальнейшего безопасного с ним соединения. В этой статье мы будем рассматривать первый вариант. На вкладке Device – Certificate Management – Certificates нажимаем кнопку Generate. В появившемся окне нам необходимо внести данные для генерации корневого сертификата.

Certificate Name – произвольное имя сертификата
Common Name – IP или FQDN адрес интерфейса, который будет использоваться для Captive Portal
Certificate Authority – установить галку, для того чтобы сертификат был корневым

Теперь нам нужно сгенерировать сертификат непосредственно самого портала, подписанного корневым. Для этого еще раз нажимаем кнопку Generate и вводим следующие данные:

Certificate Name – произвольное имя сертификата
Common Name – IP или FQDN адрес Captive Portal
Signed By – указываем ранее созданный корневой сертификат
IP – добавляем IP атрибут Captive Portal
Host Name – в случае если у Captive Portal имеется FQDN адрес, то указываем и его

После нажатия на кнопку Generate в списке сертификатов у нас должен появится наш новый, подписанный корневым.

Шаг 3. Создаем SSL/TLS профиль, который будет использоваться для авторизации пользователей.
Переходим на вкладку Device – Certificate Management – SSL/TLS Service Profile и нажимаем Add.

Name – произвольное имя профиля
Certificate – выбираем ранее созданный сертификат (подписанный корневым)
Min Version – рекомендуется использовать наиболее защищенный TLSv1.2

Шаг 4. Переходим к настройкам непосредственно самого CaptivePortal.

Enable Captive Portal – включаем портал
Idle Timer (min) – таймер бездействия пользователя, по окончанию которого портал потребует повторного введения учетных данных
Timer (min) – общий таймер, по окончанию которого пользователю будет предложено заново ввести учетные данные
Mode – во избежание ошибки сертификата в браузере пользователей, рекомендуется использовать режим Redirect, таким образом будет происходить перенаправление на страницу Captive Portal. В случае же с Transparent, шлюз будет подменять запрашиваемый сайт пользователем на страницу Captive Portal, что может быть расценено браузером как попытка кражи конфиденциальных информации
SSL/TLS Service Profile – выбираем ранее созданный нами профиль шифрования
Authentication Profile – выбираем профиль, который указывает на список пользователей, для которых разрешена авторизация с помощью Captive Portal
Session Cookie (опционально) использовать куки вместо повторного ввода учетных данных
Redirect Host – IP или FQDN интерфейса шлюза Palo Alto, на который будет производиться перенаправление пользователей

Шаг 5. Далее настроим правило авторизации, которое бы перенаправляло все HTTP запросы от неизвестных пользователей на портал авторизации.
Для этого переходим на вкладку Policies – Authentication и нажимаем Add для добавления нового правила. Выбираем зону нашей Wi-Fi сети в качестве источника и зону INTERNET (Untrust) в качестве назначения. Т.к. пользователь нам еще неизвестен, то в качестве User выбираем Any. И наконец на вкладке Actions нужно указать действие default-web-form, в нашем случае это отправлять пользователей на Captive Portal.
В итоге должно получиться так:

Шаг 6. Завершающим шагом нам необходимо создать правило, которое бы разрешало всем авторизированным пользователям доступ в интернет. Следуя рекомендациям по безопасности мы выбираем web-browsing и ssl в качестве приложений для доступа в интернет, а также назначаем используемые по умолчанию порты (80 и 443).
Разрешающее правило создаем в Policies – Security и в итоге оно должно выглядеть следующим образом:

На данном этапе вы можете создавать сколь угодно различные правила доступа для пользователей, так как после авторизации сетевой шлюз уже знает от кого конкретно исходит тот или иной трафик. Вы можете разрешить или запретить доступ к определенным сайтам, или же ограничить использование таких приложений как WhatsApp, Viber, Telegram для одних пользователей и дать разрешение другим. Все зависит лишь от ваших потребностей.
Главное придерживаться концепции, что чем более детально мы описываем условия правил, тем меньше возможностей для атак злоумышленников мы оставляем.

На этом настройку Captive Portal можно считать оконченной!

Как быть с HTTPS?

После настройки Captive Portal вы возможно столкнетесь с проблемой, что в отличи от HTTP запросов, HTTPS не обрабатываются для перенаправления на страницу авторизации. И даже если явно указать в правиле авторизации на обработку таких запросов, то это все равно не решит проблему.

Читайте также:  Установка виджета для wordpress

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

Но межсетевые экраны (NGFW) Palo Alto Networks способны решить и эту проблему. Благодаря аппаратной функции дешифровки, шлюз способен проникать в зашифрованные пакеты и читать их содержимое. Данная возможность будет также полезна для мониторинга и отслеживания передачи конфиденциальной информации третьей стороне.

Для включения дешифрации нам необходимо на вкладке Policies – Decryption создать два правила. Первое включает эту функцию для всех неизвестных пользователей, которые еще не авторизовались на портале. Второе отключает дешифрацию, если авторизация пройдена.
В качестве Decryption Profile используем профиль встроенные по умолчанию:

В итоге должно получиться так:

Незабываем указать HTTPS трафик для авторизации в ранее созданном нами правиле на вкладке Policies – Authentication:

После всех описанных выше действий попытка зайти на любой сайт будет переадресована шлюзом на страницу авторизации Captive Portal.

источник

Настройка Captive Portal (для версий NDMS 2.11 и более ранних)

NOTE: В данной статье показана настройка версий ОС NDMS 2.11 и более ранних. Настройка актуальной версии ПО представлена в статье «Captive Portal».

Приложение Captive Portal предназначено для организации хотспота — публичной (открытой, гостевой) зоны Wi-Fi с обязательной авторизацией пользователей.

Важно! Предоставление публичного доступа к Интернету в хотспотах регулируется законодательно. Согласно постановлениям правительства РФ: № 758 от 31 июля 2014 г. и № 801 от 12 августа 2014 г. все юридические лица и индивидуальные предприниматели (к примеру владельцы кафе или гостиниц) обязаны предоставить отчеты об использовании оборудования для публичного доступа в сеть Интернет. Это значит, что клиентам, подключенным по Wi-Fi и сетевому кабелю к хотспоту, нужно пройти обязательную аутентификацию.
Для решения этой задачи в интернет-центрах серии Keenetic, начиная с версии ОС NDMS 2.10, был добавлен компонент Captive Portal.

Captive Portal — это веб-сайт авторизации, на который принудительно перенаправляются пользователи, подключившиеся к публичной сети, перед тем как они получат доступ в Интернет.

Принцип работы Captive Portal

Принцип работы всех подобных систем — перехват HTTP/HTTPS-сессии подключившегося к публичной сети пользователя, и перенаправление их на внешний веб-сервер авторизации.
Далее пользователь может пройти авторизацию через СМС или обратный звонок на сотовый номер телефона. Пройдя авторизацию, пользователь получает доступ в Интернет. По завершении сессии пользователь, если ещё не отключился и активен, снова будет перенаправлен на страницу авторизации.

Captive Portal выполняет обращение к RADIUS-серверу (располагается на стороне поставщика услуг Captive Portal), который используется для выделения ресурсов (Provisioning), — лимит времени подключения (тайм-аут сессии), скорость, объем трафика, — и контроля за расходом ресурсов (Accounting).
В Captive-порталах используется Universal Access Method (UAM) — универсальный метод контроля доступа с использованием AAA (Authentication, Authorization, Accounting) и RADIUS.

Данная услуга предоставляется сторонними компаниями, а интернет-центр Keenetic является клиентом Captive Portal для работы с их услугой.

Реализация Captive Portal в интернет-центрах Keenetic базируется на Open-Source службе Coova-Chilli. С большой долей вероятности хотспот заработает на платформе поставщиков данного сервиса по умолчанию, которые в свою очередь поддерживают Coova-Chilli.

Для удобства подключения в веб-интерфейс Keenetic были добавлены профили поставщиков сервиса, которые наиболее популярны в России и со своей стороны эти компании провели тесты и подтвердили корректную работу с их реализацией Captive portal. Для настройки достаточно выбрать профиль из выпадающего списка и прописать обязательные параметры подключения из личного кабинета на сайте поставщика сервиса.

На текущий момент, компонент Captive Portal, реализованный в Keenetic, поддерживает следующих поставщиков: Мегафон, Wi-Fi System, NSG, Global Hotspot, САИ Wi-Fi, WiFly, MyWiFi, CiA Wifi, FlyGo.

Все выше обозначенные поставщики относятся к облачным сервисам. Авторизация происходит удаленно на серверах этих компаний. Есть так называемые поставщики коробочных решений, которые предлагают ПО для установки на сервера заказчиков, которые в данном случае имеют полный контроль над всей системой авторизации. К таким компаниям относится NETAMS. Описание процесса настройки Keenetic для их программного обеспечения WNAM приводится на странице: http://docs.netams.com/pages/viewpage.action?page >

В тоже время есть возможность настроить профиль вручную, если поставщик предоставляет данные для подключения. Профиль для настройки вручную представлен ниже в разделе Примечание данной статьи.

Чтобы воспользоваться Captive Portal, нужно установить соответствующий компонент ОС NDMS.

Затем настройка Captive Portal станет доступна через веб-конфигуратор интернет-центра в меню Приложения на вкладке Captive Portal.


Пример настройки Captive Portal

В качестве примера настройки возьмем облачного оператора Wi-Fi System.

Подключитесь к веб-конфигуратору интернет-центра и перейдите в меню Приложения на вкладку Captive Portal. Включите Captive Portal и в поле Профиль поставщика услуг Captive portal выберите профиль Wi-Fi SYSTEM.
Профиль настройки для него выглядит следующим образом:

Итак, все нужные поля для настройки заполнены.
Оставлены пустыми только поля, которые пользователь должен заполнить самостоятельно после авторизации в личном кабинете на сайте компании.
В данном случае это параметры UAM Secret и Radius NAS ID.

Авторизуйтесь на сайте компании http://wifisystem.ru/
Далее в разделе Wi-Fi хотспоты

На этой странице будут показаны недостающие параметры для окончательной настройки Captive Portal для Wi-Fi System.

После окончательного ввода настроек сервис будет запущен для гостевой сети Wi-Fi (по умолчанию это гостевая сеть с именем Guest). Гостевая сеть в данном случае может быть как с паролем (WPA-PSK), так и без пароля.

Читайте также:  Установка газовой стойки капота на приору

Keenetic позволяет разделить гостевую (Captive portal) и основную сеть. Те пользователи, которые подключаются к гостевой сети будут иметь доступ только после авторизации. А те пользователи или сетевые устройства, которые подключаются к основной сети будут иметь доступ в сеть без авторизации, к примеру, системные администраторы или видеокамеры. Каждый из проводных портов LAN может быть отдельно настроен на подключение к любой сети (дополнительная информация представлена в статье «Использование Сегментов для настройки дополнительных подсетей в интернет-центрах» в разделе Примечание).

Для расширения беспроводной сети, включая Captive Portal, можно подключить второй роутер Keenetic в режиме «Точка доступа» к основному Keenetic.

Пример подключения к Captive Portal

После подключения мобильного устройства к публичной (гостевой) сети, при первом обращении к какому-либо веб-сайту в Интернете, произойдет переадресация на специальную страницу авторизации. В нашем примере используется авторизация по SMS. Клиенту нужно указать номер своего телефона для получения SMS-сообщения с паролем доступа.

Получив SMS-сообщение с паролем доступа, укажите его и нажмите Войти.

При успешном подключении, вы увидите сообщение Вы уже подключены к хотспоту.

Далее пользователь получит доступ в Интернет.

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

Профиль для настройки вручную представлен ниже.

Пользователи, считающие этот материал полезным: 20 из 21

источник

Разворачиваем Wi-Fi HotSpot с использованием технологии Captive Portal

Содержание статьи

При организации гостевого подключения к интернету в конференц-залах, публичных библиотеках и кафе особое внимание следует уделить обеспечению безопасности и максимально простой аутентификации. Технология под названием Captive Portal призвана в этом помочь.

WARNING

Администраторы точек доступа обычно разрешают все DNS-запросы из внутренней сети во внешнюю. Это можно использовать для несанкционированного выхода в интернет при помощи технологии DNS tunneling, реализованной в таких решениях, как Dnscat, Ozyman, NameServer Transfer Protocol (NSTX), Dns2tcp, и других.

Как работает Captive Portal

Все пользователи, которые хотят подключиться к публичной Wi-Fi-сети и выйти в интернет, вначале проходят через шлюз, который представляет собой комп с несколькими сетевыми интерфейсами. Шлюз действует как маршрутизатор и брандмауэр, а для возможности авторизации пользователя при помощи браузера он содержит еще и веб-сервер. Для аутентификации клиентов может использоваться внутренняя база данных или внешний RADIUS-сервер. Все пакеты от «неавторизованных» пользователей помечаются на брандмауэре, и посетитель переправляется на специальную веб-страницу (Captive Portal), где он может ознакомиться с условиями подключения и ввести логин/пароль (либо код доступа). После аутентификации пользователя производится идентификация компьютера, за которым он работает, его МАС- и IP-адреса заносятся в белый список брандмауэра. В самом простом случае пользователь может вообще не проходить аутентификацию, Captive Portal автоматически получает IP- и MAC-адреса компьютера, которые сразу подставляются в правилах брандмауэра. В последующем все пакеты проходят через маршрутизатор без ограничений. Дополнительно, в зависимости от роли, могут устанавливаться ограничения по скорости, времени, трафику или посещаемым ресурсам.

В настоящее время существует несколько проектов, позволяющих быстро развернуть Captive Portal: Wifidog, PacketFence, ChilliSpot и веб-интерфейс EasyHotspot, KATTIVE, PepperSpot и jkaptive. Выбор конкретного решения зависит от необходимых функций и поддерживаемых ОС. Например, ChilliSpot официально поддерживает несколько дистрибутивов Linux, FreeBSD, OpenBSD и OpenWRT. К слову, это единственное приложение, пакет которого доступен в официальном репозитории Ubuntu, и установить его просто:

Для организации простого портала без поддержки внешних средств аутентификации хватит и решения вроде jkaptive, а вот чтобы разобраться со всеми возможностями, заложенными в PacketFence, потребуется некоторое время. Некоторые из представленных проектов уже прекратили свое развитие, но все наработки по-прежнему актуальны. Также можно найти модули для различных языков, позволяющие самостоятельно создать Captive Portal из подручных средств. Например, для Perl он так и называется — Captive::Portal, есть модуль для Python/Django tollgate.org.au.

Кроме этого, ряд дистрибутивов-роутеров предлагает возможность быстрого создания Captive Portal буквально парой щелчков мышки: Untangle, pfSense, Zeroshell, m0n0wall, ClearOS и Zentyal. Но при желании или если невозможно изменить текущую конфигурацию сети нужные скрипты легко создать самостоятельно. Этим мы и займемся.

Настраиваем Captive Portal в Linux

Разобравшись, как работает Captive Portal, легко реализовать его штатными средствами Linux. Причем доступно несколько способов — маркировка и блокировка пакетов, пришедших от неавторизованных пользователей, использование цепочки правил или шаманство с NAT. Дополнительно на лету можно перенастраивать правила прокcи-сервера Squid или контент-фильтра DansGuardian, что позволит управлять выходом в интернет на уровне групп пользователей, да и просто кешировать и фильтровать информацию, блокируя доступ к нежелательным ресурсам. И кстати, именно такой подход применяется в специализированных дистрибутивах.

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

Не забываем разрешить специфические низкоуровневые протоколы:

То же пишем и для LENGTH, и IPv4. Теперь создаем правила для iptables:

Не забываем разрешить ICMP, DNS, DHCP и прочие необходимые протоколы. Здесь, кстати, есть один важный момент: многие админы не заморачиваются и разрешают весь DNS-трафик. Этим пользуются некоторые юзвери для получения доступа в Сеть при помощи технологии DNS tunneling. Конечно, итоговая скорость небольшая, но вполне достаточная, чтобы сидеть в аське, писать в твиттер или отдавать команды по SSH. И главное — при этом везде засветится IP твоей сети, а в логах какие-либо записи о несанкционированной деятельности будут отсутствовать, ведь не каждый админ пишет все запросы в журнал DNS-сервера. Поэтому лучше строго указать разрешенные серверы.

Настраиваем Captive Portal в Zentyal

Если под Captive Portal выделяется новый сервер и все настройки нужно произвести в короткое время, то лучше обратиться к специализированным решениям, где все необходимое делается буквально парой нажатий клавиш. Яркий пример — серверный дистрибутив Zentyal, ориентированный на малые и средние корпоративные сети. Он может выступать в любой из четырех ролей сетевого шлюза, Office Server, сервера коммуникаций и инфраструктуры. Для поддержки Captive Portal следует во время установки активировать одноименный модуль (активируется роль Gateway и все сопутствующие пакеты). Затем в мастере первичной настройки правильно указываем на LAN-интерфейс. Создаем учетные записи пользователей и группы. Далее в интерфейсе настройки Zentyal переходим в меню Captive Portal и отмечаем в поле «Captive-интерфейсы» нужный, выбираем группу, участники которой будут иметь доступ, и указываем порт, на который будут перенаправляться пользователи. Вот и все. Теперь любой, кто желает подключиться к сети, вводит свои учетные данные, если аутентификация проходит успешно, появляется всплывающее окно, которое нужно держать открытым. Чтобы отключиться, достаточно нажать кнопку «Выйти» или просто закрыть окно браузера.

Читайте также:  Установка steamcmd на centos

Если имеем шлюз, построенный на Ubuntu, то для установки связанных с Zentyal приложений проще использовать специальный репозиторий:

После чего команда sudo apt-cache search zentyal покажет более 20 модулей Zentyal.

Выбираем пакеты для установки Captive Portal в Zentyal

В принципе, на этот момент ничего особенного нет. Суть Captive Portal заключается в добавлении нужных правил на лету. Для этого понадобится скрипт, который будет получать IP/MAC и передавать их пакетному фильтру. Полностью HTML-страницу приводить здесь нет смысла, поэтому ограничимся ключевыми моментами с нужным функционалом. На странице, куда перенаправляется пользователь, должен быть следующий код, получающий IP- и MAC-адреса:

При необходимости добавляем поле для проверки логина и пароля, нужные примеры легко найти в интернете. Далее в этом же скрипте подставляем полученные данные в правила iptables и DansGuardian, после чего перезапускаем последний:

После подключения клиента запись в /etc/dansguardian/lists/authplugins/ipgroups будет выглядеть так:

Параметр filter1 указывает на группу фильтров, так мы можем устанавливать специфические настройки для всех пользователей, подключающихся посредством Captive Portal. При необходимости так же легко в DansGuardian подставляется и логин пользователя, для реализации индивидуальных правил. Не забываем разрешить фильтр IP в dansguardian.conf:

Так как используемые системные команды может выполнять только root, немного подправим sudoers, чтобы их мог запускать и веб-сервер:

Новые правила iptables, появляющиеся в Zentyal после активации Captive Portal

Вот мы и реализовали простейший Captive Portal. Если хотспот будет работать сутками, следует побеспокоиться, чтобы через некоторое время таблица очищалась. Здесь можно придумать несколько вариантов. Например, параллельно создавать задание для cron, которое будет срабатывать через определенное время, убирая правило. Другой вариант — прописывать данные сессии в отдельный файл, а затем при помощи cron или при каждом вызове PHP-скрипта анализировать время создания файла и удалять устаревшие записи. В Zentyal, например, после регистрации пользователя открывается отдельное окно, а в каталоге /var/lib/zentyal-captiveportal/sessions создается файл, содержащий все данные сессии (IP- и MAC-адрес). Как только пользователь закрывает Popup, вся информация и правила очищаются.

Интерфейс настройки Captive Portal в pfSense

Настройка Captive Portal в FreeBSD

Понимая, как работает пакетный фильтр, и владея навыками разработки на языке, используемом в веб, легко организовать Captive Portal в любой ОС. И *BSD здесь не исключение, причем реализация при помощи IPFW выглядит даже проще. Принцип остается тем же, что и ранее. Все пакеты от неавторизованных пользователей блокируем и перенаправляем на веб-страницу. После того как гость подтверждает информацию, разрешаем выход в Сеть. Для удобства всю информацию об авторизованных IP будем сохранять в базу данных (в примере текстовый файл). Заносим в системный файл вроде /etc/rc.local (а лучше в отдельный, чтобы было легче искать) необходимые переменные:

В веб-страницу добавляем следующий код. В примере пользователь в чекбоксе просто подтверждает некие условия, результат отправляется Perl-скрипту access.pl.

Мастер настройки Antamedia HotSpot

Здесь Perl выбран исключительно для разнообразия, при желании можно переработать PHP-код, показанный выше. Сам скрипт:

Создание тарифного плана в Antamedia HotSpot

При желании дополняем скрипт проверкой МАС-адреса и перестройкой правил прокси-сервера. Вызвав функцию time(), мы также можем сохранить время соединения (в секундах), которое затем использовать для сброса старых соединений.

Captive Portal на Windows

Организовать Captive Portal на Windows штатными средствами проблематично из-за особенностей работы брандмауэра (который, кстати, начал контролировать исходящие соединения только с Vista), поэтому в любом случае придется обращаться к сторонним решениям. Выбор здесь не особенно велик — DNS Redirector, FirstSpot, PacketFence, myWIFIzone, работает под WinXP/2k), Wifidog и Antamedia HotSpot. Из них бесплатны PacketFence и Wifidog. Первый требует некоторой подготовки, а используемые во втором компоненты, такие как Apache, PHP, PostgreSQL, удобнее разворачивать на *nix-системе.

Из перечисленных наиболее функционален Antamedia HotSpot, который позволяет организовать свободный и предоплаченный доступ (по трафику, времени или скорости), управлять пропускной способностью, гарантируя нужную скорость разным клиентам, блокировать нежелательные сайты, получать статистику и многое другое. Развертывание Antamedia HotSpot не представляет особой сложности, в режиме простой установки все компоненты (хотспот, интерфейс оператора и база данных) устанавливаются на один компьютер. Разобраться с первоначальными установками помогает визард, интерфейсы настраиваются автоматически, пользователь может также выбрать внешний вид страницы регистрации. Дальнейшее управление производится при помощи понятного интерфейса.

Заключение

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

источник