Wi fi авторизация по sms или звонку hotspot captive portal на openwrt coovachilli wifidog
Originally the common opensource captive hotspot was ChilliSpot, but it has long since fallen into disrepair. So much that the CoovaChilli fork has completely taken over its role. So much in fact that if you see any reference to 'chilli' on the internet, as in 'we support or require chilli' you can safely assume they mean 'coovachilli'. And in fact, CoovaChilli's main executable binary is 'chilli' and its configuration is in '/etc/chilli'. So it is pretty much a drop-in replacement of ChilliSpot.
CoovaChilli has been available as package on OpenWrt for several years now and if you manually created a init.d startup script and edited the defaults configuration file it worked quite well since at least Backfire 10.03
But since 15.05 Chaos Calmer it has been better integrated. Not only is there now a startup script, said startup script parses OpenWrt style configuration in the /etc/config/chilli file. So it is integrated much tighter into OpenWrt. Many thanks to the anonymous (to me) developer. But without documentation it took me quite a while to figure out the new configuration options, so I am writing this document to help others.
You see, the new style script & configuration is not compatible with the old one. The old 'manual' method uses chilli_opt to parse /etc/chilli/default file into options, the new method parses /etc/config/chilli file into options. And the options in those are quite different. Also the new method seems to map 1:1 to actual binary options, but there are a two tricky differences.
If you want to use coova using the old style, simply delete and replace the Chaos Calmer delivered /etc/init.d/chilli script, and edit /etc/chilli/default like before.
If you want to use coova using the new integrated style, ignore /etc/chilli/default , do not modify or replace Chaos Calmer delivered /etc/init.d/chilli script, and only edit /etc/config/chilli
Админ тоже виноват, плохой сервис выбрал. Надо исправлять ситуацию
К счастью, руководство выручило. В поисках интернет-провайдера в поисковике случайно нашло сервис авторизации у интернет-провайдера КубТел. Судя по их карте, провайдер не крупный, присутствует только в больших городах Краснодарского края. Помимо интернета, много других услуг предоставляют, но нас интересовал только интернет и сервис авторизации.
После переговоров они согласились настроить свой сервис для нашего шлюза Zyxel UAG5100 с последующим тестированием. К нашему удивлению, они блестяще справились с задачей без нытья. CNA наконец-то выскакивал на всех Apple, процесс прохождения авторизации в CNA отрабатывался отлично на всех устройствах (кроме Xiaomi по звонку). Дизайн страницы авторизации грамотно составлен и кнопки не уезжали на маленьких телефонах диагональю до 4 дюймов с увеличённым масштабом для слабовидящих. Личный кабинет оформлен приятно, информативно и красиво.
Гости очень довольны, претензии по авторизации прекратились (кроме Xiaomi), но таких гостей просим на смс перейти.
Configure CoovaChilli
For safety, we first stop and disable chilli. This so that if you lock yourself out by a faulty config, you can always stop the captive portal by rebooting:
Next, using your favorite editor (vi, joe, nano), edit /etc/config/chilli file:
Check if the chilli process is running
Check if the tun0 device is up with ifconfig .
Check if the options were correctly processed;
If all is well, you should be able to connect to your hotspot. If WISPr works correctly, your PC should automatically start browser and go to login page, without actually intercepting a customer request.
Once it all works, set chilli to autostart
Шаг 2: Запуск ПО WinBox
Шаг 2.1
Запускаем WinBox и подключаем роутер
ВНИМАНИЕ! Удалять конфигурацию рекомендуется тем, кто не знает тонких настроек и у кого инфраструктура состоит только из одного роутера. Для тех, кто хочет только настроить работу hotspot, нужно выбрать конфигурацию для настроенного устройства в шаге 3.10. Все подробно описано в расширенной инструкции. Если вы сомневаетесь, обратитесь в службу технической поддержки в чате или по телефону.
Шаг 2.2
Удаляем старую конфигурацию во вкладке System > Reset configuration
Шаг 2.2.1
Удаление старой конфигурации
Шаг 3 — Установка RaspAP
Теперь приступаем к установке RaspAP.
Обновление системы:
Установка зависимостей для не RPi OS:
Настройка контролирующих скриптов:
Установка стартовых настроек, настройки в каталоге ~/temp, при необходимости заменить на свои:
При конфигурирование через Web-интерфейс столкнулся с багом, который при изменение настроек DHCP сервера на интерфейсе wlan1 удаляет файл конфигурации 090_wlan1.conf и не создает его заново. В результате DHCP сервер не выдает IP-конфигурацию новым клиентам. Временное решение этой проблемы заключается в блокировке файла на удаление, необходимо выполнить следующую команду (по блокировке файлов почитать по ссылке):
После установки необходимо перезагрузить систему:
Создание сети для Docker контейнеров
Для подсети в которой будет контейнер с SoftEther VPN Server определим следующие параметры:
- Название сети: vpnnetwork;
- Subnet: 172.22.0.0/24;
- Driver: bridge;
- Range: 172.22.0.0/25;
- gateway: 172.22.0.127;
- HostMin: 172.22.0.1;
- HostMax: 172.22.0.126;
- Hosts/Net: 126.
Для проверки доступности сети выполнить команду: ping 172.22.0.127.
WISPr goes to MSN
You need to disable EnableActiveProbing if you want to prevent this, but you would have to change that on your all of customers PC's, so it is not really an option. For now we will just have to accept the situation.
Шаг 5: Настройка времени сессии
Перейдите в раздел «Стартовая страница» подраздел «Профили» и выберите ваш профиль
По умолчанию установлено время активности и не активности, равные 1 часу, время активности в сутки 24 часа и безлимит по скорости. Это значит, что активное пользование интернетом длится 1 час и по окончании этого времени клиент должен будет посмотреть рекламу (если у вас она включена) и нажать кнопку «Перейти в интернет». После чего сессия начнется заново и опять будет отсчитываться 1 час времени. Это время можно увеличить, если вы не хотите напрягать людей ежечасным нажиманием кнопки «Перейти в интернет». Или включить MAC cookie, чтобы совсем избавиться от нажимания кнопки «Перейти в интернет».
Время неактивности — это ожидание подключения устройства к сети. После отключения устройства от сети (например, заблокировать телефон и положить в карман) система ждет еще час и только через час удаляет сессию. Потом нужно опять подключиться к сети и нажать кнопку «Перейти в интернет». Увеличение времени неактивности может оттянуть этот момент. Если разблокировать телефон через 59 минут, то он снова будет подключен к интернету. Т.к. пока еще время неактивности не прошло, то продолжится учет его времени активности. Это время можно увеличить, если вы не хотите напрягать людей ежечасным нажиманием кнопки «Перейти в интернет». Или включить MAC cookie, чтобы совсем избавиться от нажимания кнопки «Перейти в интернет». Для включения MAC cookie обратитесь в нашу техподдержку. При изменении времени неактивности учитывайте размер DHCP пула.
Эти настройки рекомендуется менять по вашему усмотрению. Особенно для гостиниц и отелей.
Для гостиниц, баз отдыха, хостелов, санаториев и т.п. заведений мы настоятельно рекомендуем увеличить время активности и неактивности. Оптимальными значениями было бы 24 часа. При увеличении времени неактивности время жизни DHCP должно быть больше времени неактивности в 1,5 раза или как минимум на пару часов.
Запустите Winbox и нажмите кнопку New terminal. В открывшемся окне выполните эти команды:
1) Создать шаблон сертификата
2) Создать сертификат для hotspot
3) Подписать сертификат
set [find name=Hotspot] trusted=yes
Если пользователь нажмет кнопку «Продолжить», то у него откроется страница авторизации.
OpenVPN
Сетевой трафик можно туннелировать используя клиент OpenVPN. В Insiders Edition доступна возможность хранения нескольких профилей OpenVPN с функцией быстрого переключения между ними.
Вы энтузиаст и любите самостоятельно настраивать?
Давайте рассмотрим на шлюзе Zyxel VPN300 самостоятельную настройку сервиса авторизации оператора КубТел по смс, звонку и паспорту (ваучеру) для иностранцев.
Обратимся к КубТел за получением (или покупкой) сервиса. В принципе, они могут сами всё настроить, но нам тоже можно.
два IP-адреса №1 и №2 (для пункта 1 и 4);
ключ (для пункта 1);
идентификатор NAS (для пункта 1);
URL авторизации (для пункта 6).
Пример настройки сервиса производился на Zyxel VPN300 с версией прошивки V5.02(ABFC.0). Рекомендуется, чтобы шлюз был готов к подключению к интернету.
КОНФИГУРАЦИЯ -> Объект -> Сервер аутентификации -> вкладка «RADIUS».
Добавляете профиль и заполняете все поля (рис.1):
КОНФИГУРАЦИЯ -> Объект -> Метод аутентификации -> вкладка «Метод аутентификации».
Добавляете метод аутентификации (рис.2). Заполняете имя и удаляете дефолтный профиль «local / ZyWALL» ИЛИ если пользуетесь функционалом «Биллинг» (КОНФИГУРАЦИЯ -> Хотспот -> Биллинг), профиль «local / ZyWALL» НЕ удаляем. Сразу переходим к следующему скриншоту (рис.3).
Рис 2. Добавление метода аутентификации.
Добавляете (рис.3) и выбираете профиль (созданный в п.1, рис.1)«KubTel_radius / RADIUS».
Рис 3. Добавление профиля сервера.
ПРИМЕЧАНИЕ: Если точно и действительно пользуетесь биллингом (встроенный сервис авторизации) и планируете добавить внешний сервис авторизации, тогда в методе аутентификации «Kubtel_metod» добавляете два профиля: «local / ZyWALL» и «KubTel_radius». Это даст возможность авторизовать различные группы гостей сервисом КубТел и встроенным биллингом.
В методе аутентификации (рис.4) выбираете профиль (созданный в п.2, рис.2-3) «KubTel_metod».
КОНФИГУРАЦИЯ -> Объект -> Адреса/Гео-IP. Вкладка «IP-адрес».
Добавляете, заполняете имя профиля и вносите IP-адрес №1 (рис.5).
Рис.5. Добавление адреса №1.
Ещё раз добавляете, заполняете второе имя и вносите IP-адрес №2 (рис.6).
КОНФИГУРАЦИЯ -> Объект -> Адреса/Гео-IP. Вкладка «Группа адресов».
Объединяете ранее созданные профили с IP-адресами (созданные в п.4) в одну группу «KubTel_avtor» (рис.7).
КОНФИГУРАЦИЯ -> Веб-аутентификация. Вкладка «Аутентификация».
Добавляете новый тип аутентификации, заполняете имя профиля и полученный URL авторизации вносите в поле «URL авторизации» (рис.8).
В URL приветствия вводите желаемую страницу приветствия вашего заведения.
КОНФИГУРАЦИЯ -> Веб-аутентификация. Вкладка «Основная информация».
Добавляете новую политику, заполняете имя профиля и выставляете указанные стрелкой параметры, если гостевая сеть подключена к входящему интерфейсу ge4 (рис.9). Этой политикой шлюз требует авторизацию у всех, кто подключён к ge4, по профилю KubTel (созданный в п.6, рис.8).
КОНФИГУРАЦИЯ -> Веб-аутентификация. Вкладка «Основная информация».
Добавляете повторно новую политику, заполняете имя профиля и выставляете указанные стрелкой параметры, если гостевая сеть подключена к входящему интерфейсу ge4 (рис.10). Этой политикой шлюз НЕ требует авторизацию для гостей, подключающихся к серверам авторизации. IP серверов авторизации ранее вносили в группу адресов в п.5, рис.7.
КОНФИГУРАЦИЯ -> Веб-аутентификация. Вкладка «Основная информация».
Проверяете наличие галочки в глобальной настройке и расположение профилей (рис.11).
Насчёт галочки «Включить страницу сеанса», по ней гость может узнать оставшееся время работы в интернете, продлить время аренды или самостоятельно завершить авторизацию (рис.14).
КОНФИГУРАЦИЯ -> Хотспот -> Ресурсы без аутентификации. Вкладка «База URL».
КОНФИГУРАЦИЯ -> Объект -> Пользователи/группы. Вкладка «Пользователь».
Устанавливаете желаемое время аренды и период повторной аутентификации (рис.13).
Рис 13. Редактирование времени и периода.
ПРИМЕЧАНИЕ: На момент написания статьи время аренды автоматически не продлевается при активном сёрфинге гостя из группы External RADIUS Users. Возможно только ручное продление аренды (гостю необходимо зайти на http://6.6.6.6, переключить браузер смартфона в режим "Версия для компьютера" и нажать “Renew” (рис.14)).
ПРИМЕЧАНИЕ: Создал 2 заявки в техподдержку, ответили:
Первую заявку приняли, зафиксировали отсутствие кнопки в мобильной версии. Кнопку RENEW для мобильной версии добавят в 2022 году.
Вторую заявку приняли, проблема зафиксирована, разбираются с устранением проблемы, просят подождать.
Работаю 10 лет с продукцией Zyxel и заявки такого типа успешно выполняли. Молодцы. Ценю.
Если всё правильно настроили, на гостевом устройстве выскочит страница авторизации КубТела, на которой будет предложено пройти авторизацию (рис.15 и 16).
Тут и тут альтернативный сервис авторизации. Личный кабинет не проверял, процесс авторизации у Zyxel UAG5100 на всех устройствах хорошо работал, но в логах шлюза пишет об ошибках паролей. Нужно обратиться к их разработчику и оставить тикет на устранение ошибок в логах шлюза.
Не стал повторно создавать заявку, тк их сервис не закупали, не хотелось бесплатно лишний раз дёргать разработчика .
И дизайн страницы авторизации не всем гостям нравится, но в целом, тоже хороший сервис.
Контентную фильтрацию включить не забудьте!
Федеральный закон от 29.12.2010 г. № 436-ФЗ "О защите детей от информации, причиняющей вред их здоровью и развитию".
Для настройки авторизации пользователей гостевой сети Wi-Fi с помощью сервиса Global Hotspot следуйте данной инструкции. Сервис предназначен для идентификации и хранения идентификационных данных пользователей.
Для настройки идентификации на MikroTik надо запустить мастер конфигурации, скопировать и вставить список полученных команд в терминал роутера. Последовательность действий одинакова и подходит для всех моделей роутеров MikroTik (RouterOS). Роутер обязательно должен быть подключен к интернету до начала настройки!
Для начала зарегистрируйте личный кабинет и войдите в него. Данные для входа будут отправлены на e-mail после регистрации.
Данная инструкция применима для MikroTik с конфигурацией по умолчанию (т.е. вы только достали его из коробки). Удалять конфигурацию рекомендуется тем, кто не знает тонких настроек и у кого инфраструктура состоит только из одного роутера. Для тех, кто хочет только настроить работу hotspot, нужно выбрать конфигурацию для настроенного устройства в шаге 3.10. Если ваш роутер MikroTik уже настроен или вы используете CAPsMAN, то рекомендуем использовать расширенную инструкцию.
WireGuard (Insiders Edition)
WireGuard — быстрый и современный VPN, в котором используется самая современная криптография, самое простое VPN решение для дистрибутивов Linux. Благодаря низкому overhead, производительность WireGuard выше, чем OpenVPN.
Шаг 4: Загрузка конфигурации в MikroTik
Шаг 4.1
Вставляем скопированные настройки конфигурации в терминал роутера
Подключитесь к Wi–Fi и проверьте результат. Если вы сделали все правильно, то при подключении к Wi–Fi вы попадете на созданную страницу авторизации.
Если у вас возникли трудности, обратитесь в службу техподдержки (чат в личном кабинете или позвоните нам).
Не забудьте установить «детский доступ» в гостевой сети с помощью днс яндекс. Как это сделать читайте в Вопросы и ответы.
Как добавить устройства в исключения для MikroTik (доступ к интернету без авторизации)
Иногда нужно, чтобы некоторые устройства имели доступ в интернет по Wi-Fi без авторизации. Такие устройства как телевизоры, кассы, терминалы, рабочие телефоны, компьютеры и ноутбуки можно добавить в лист для доступа к интернету без запроса авторизации.
Запустите Winbox и зайдите во вкладку IP/Hotspot. Далее есть 2 варианта действий:
- Устройство уже подключено к гостевой сети Wi-Fi и он есть в списке Hosts.
- Добавить mac-адрес устройства в исключения вручную.
Вариант 1
Устройство уже подключено к гостевой сети Wi-Fi и он есть в списке IP/Hotspot/Hosts. Выбираем его в списке и нажимаем правой кнопкой мыши. В открывшемся окне нажимаем «Make Binding».
Выбираем Type — bypassed и нажимаем Ok.
Готово, mac-адрес в списке исключений.
Вариант 2
Добавить mac-адрес устройства в исключения вручную. Создадим новую запись во вкладке IP/Hotspot/IP Bindings.
Вручную вбиваем mac-адрес (и если нужен определенный IP — adress), выбираем Type — bypassed и нажимаем Ok.
Встречают по одёжке, провожают по уму
Сервис авторизации - самый заметный момент в гостевом Wi-Fi, фактически лицо всего Wi-Fi или заведения, куда гость пришёл. С него начинается первый выход в интернет, если что-то не так пойдёт, в зависимости от ситуации и настроения гостя, претензии польются на царя/админа/заведение или вендора. Вендор то при чём? Captive Portal отработал, ожидает действий гостя, а он по вине оператора сервиса никак не может попасть на CNA или не те кнопки нажал. До начала конференции остаётся пара минут, гости нервничают, плохо разбираясь в ИТ, сразу винят установленное оборудование и то, на чём крутится сервис, но только не свой телефон и себя. Дома же всё отлично работает на запароленном Wi-Fi.
Гостей можно понять, они с гаджетами на ВЫ, их любые мелочи пугают, нервничают и не могут пройти авторизацию.
Предупреждение на iPhone
Примером была одна и та же картина у устройств Apple. После подключения к Wi-Fi не выскочил CNA, далее гость идёт в браузер, нажимает на любую страницу в «Избранное», получает предупреждение и не редиректит на страницу авторизации.
Следовательно, гости с Apple постоянно были в такой ситуации и VIP-персоны тоже, а жёстко критиковать они умеют.
Гости Wi-Fi при отсутствии CNA
Поэтому было критично, чтобы CNA корректно на всех устройствах выскакивал, там предупреждений нет.
Шаг 1 — Подключение адаптера USB WiFi RTL8188
Подключаем адаптер в любой доступный USB порт. В Armbian драйвера уже есть, поэтому проверим подключение командой lsusb:
В списке присутствует Realtek Semiconductor Corp., значит адаптер успешно распознался. Если вывести название интерфейса для подключенного адаптера, то его имя будет — wlxe81e0584796d, что несколько далеко от привычного именования вида wlanX. Для задания названия для адаптера — wlan1, необходимо выполнить следующие действия (более подробнее почитать про именование сетевых интерфейсов по ссылке1,ссылке2):
После перезагрузки в системе будет два беспроводных адаптера: wlan0 и wlan1.
Как будет выглядеть Web-интерфейс RaspAP и подключение к Hotspot
Подключение к AP — SSID: raspi-webgui
Подключение к AP — raspi-webgui
Для установки RaspAP есть Quick installer, но он выполняется без задания параметров и wlan0 — настроен как Hotspot, что нам не подходит. Поэтому воспользуемся Manual installation, с некоторыми изменениями т.к. руководство содержит некоторые ошибки и сам RaspAP работает с некоторыми некритичными багами, из-за этого пришлось немного больше потратить время на установку. О багах будет в ходе установки.
До установки рассмотрим конфигурационные файлы, которые можно использовать как опорные для своей адаптации.
Список конфигурационных файлов (GitHub):
- hostapd.conf — служба hostapd
- default_hostapd — служба hostapd
- 090_raspap.conf — служба dnsmasq.d
- 090_wlan1.conf — служба dnsmasq.d
- defaults.json — служба raspap
- dhcpcd.conf — служба raspap
- config.php — портал конфигурации RaspAP
Содержит настройки AP по умолчанию такие как: ssid, channel, password и т.д.
default_hostapd — служба hostapd
Настройка службы hostapd, параметр DAEMON_CONF определяет путь к настройкам.
090_raspap.conf — служба dnsmasq.d
Настройка службы dnsmasq, параметр conf-dir определяет путь к настройкам.
090_wlan1.conf — служба dnsmasq.d
Настройка dnsmasq для сетевого интерфейса wlan1. Содержит диапазон выдаваемых IP-адресов, и другие сетевые настройки. Необходимо обратить внимание на название файла по маске — 090_[ИДЕНТИФИКАТОР_ИНТЕРФЕЙСА_HOTSPOT].conf. Если у вас сетевой интерфейс для hostspot будет назваться например wlan2, то следует задать название файла 090_wlan2.conf.
defaults.json — служба raspap
Настройка DHCP серверов для интерфейсов wlan0 и wlan1.
dhcpcd.conf — служба raspap
Настройка для сетевого интерфейса wlan0, который выходит в сеть Интернет.
config.php — портал конфигурации RaspAP
Файл настроек графического Web-интерфейса. Содержит переменные влияющие на отображение настроек. Самый главный параметр define('RASPI_WIFI_AP_INTERFACE', 'wlan1');. В качестве значения указать сетевой интерфейс hotspot — wlan1.
Руководство установки доступно в разделе Manual installation.
Настройка SoftEther VPN Server
Для настройки SoftEther VPN Server лучше использовать графическую утилиту для ОС Windows. Для загрузки необходимо перейти на страницу SoftEther Download Center. В списке Select Component, выбрать SoftEther VPN Server Manager for Windows, далее Select Platform windows. Можно выбрать пакет .zip без необходимости установки. Пакет softether-vpn_admin_tools-v4.34-9745-rtm-2020.04.05-win32.zip распаковать и запустить vpnsmgr.exe.
Создаем новый профиль кнопка New Setting, указываем следующие настройка:
При первом подключение появится вопрос об включение поддержки протокола IPSec. Если в дальнейшем планируете подключать мобильные устройства без использования программных клиентов, то выбрать Да. В данном случае поддержка IPSec не требуется, отвеваем Нет.
Для настройки алгоритма шифрования нажать на кнопку Encryption and Network. По умолчанию включен алгоритм — DHE-RSA-AES256-SHA. Из списка выбрать другие более стойкие комбинации шифрования, но нужно помнить чем «сильнее» алгоритм, тем больше нагрузка на CPU сервера и на конечное маршрутизирующее устройство.
По умолчанию будет доступен хаб — DEFAULT, удаляем его.
Создаем новый хаб — кнопка Create a Virtual Hub. Укажем Virtual Hub Name: VPNROOT. Открываем настройки хаба кнопка — Manage Virtual Hub.
Создадим пользователя подключения, кнопка Manage Users, затем кнопка New. Аутентификация будет по паре логин/пароль, укажем имя: officeuser1.
Для отделение подсети клиентов VPN сервера и подсети Docker контейнеров включим NAT, кнопка Virtual NAT and Virtual DHCP Server (SecureNAT), далее кнопка Enable SecureNAT. Изменим подсеть VPN клиентов на: 192.168.30.x, закроем окно, кнопка Exit.
На этом настройка сервера закончена.
Последовательность действий по настройке SoftEther VPN Server
Шаг 3: Создание конфигурации с помощью мастера настройки
После регистрации в личном кабинете Вам нужно выполнить несколько простых шагов, чтобы сервис заработал на Вашем устройстве:
- Создать тему на базе шаблона.
- Создать профиль и привязать к нему тему.
- Создать место и привязать к нему профиль.
- Создать конфигурацию для своего типа оборудования.
- Настроить свое оборудования по инструкции в мастере конфигураций.
- Подключиться к сети Wi–Fi и проверить.
Шаг 3.1
Выберите шаблон
Шаг 3.2
Создайте тему на базе шаблона
Шаг 3.3
Назовите тему
Шаг 3.4
Создайте профиль
Шаг 3.5
Назовите профиль
Шаг 3.6
В оформлении профиля выбираем созданную тему
Шаг 3.7
Создаем место и выбираем созданный профиль
Шаг 3.8
Создание конфигурации с помощью мастера настройки
Шаг 3.9
Выбор типа устройства
Шаг 3.10
Выберите тип роутера: новый или уже настроенный
Шаг 3.10
Выбор версии конфигурации
Шаг 3.11
Полный файл настроек для Mikrotik. Для нового и настроенного роутеров файлы отличаются
Шаг 3.12
Копируем настройки в буфер обмена
Поддержка различных сетевых устройств в качестве WAN-интерфейса (Insiders Edition)
В качестве доступа к сети Интернет, RaspAP поддерживает несколько различных типов сетевых устройств, такие как:
- Ethernet interface (eth);
- Wireless adapter (wlan);
- Mobile data modem (ppp);
- Mobile data adapter with built-in router;
- USB connected smartphone (USB tethering);
Доступ к Web-интересу настроек через SSL
Для защиты сетевого трафика от перехвата, доступно шифрование по SSL в пределах локальной сети. Проект mkcert позволяет в несколько простых шагов развернуть корневой центр сертификации и генерировать сертификаты, подписанные вашим собственным частным ЦС.
Установка RaspAP будет произведена из публичного репозитория, на Cubietruck установлена последняя версия Armbian (на основе Debian): Armbian 21.02.3 Buster, Linux 5.10.21-sunxi. На борту имеется встроенный адаптер wlan0, будет выступать в качестве клиентского доступа к сети Интернет (WAN-интерфейс). Для Hotspot подключим RTL8188 USB WiFi dongle — wlan1.
- IP конфигурация для wlan0: address 192.168.43.12 netmask 255.255.255.0 gateway 192.168.43.1.
- IP конфигурация для wlan1: address 10.3.141.1 netmask 255.255.255.0 gateway 10.3.141.1.
- Диапазон выдаваемых IP-адресов — 10.3.141.50 — 10.3.141.254;
- Шлюз/DNS-сервер: 10.3.141.1.
Развертывание сервера выполняется просто и очень быстро, по результату необходимо отметить автоматическую выдачу DNS имени, можно не покупать доменное имя.
Итоговая схема сети
Получение файлов конфигурации *.ovpn
Последовательность действий по получению файлов конфигурации *.ovpn
Создание маршрутов
Теперь переходим в консоль Cubietruck и добавляем маршруты:
Делаем копию существующих маршрутов и сохраняем новые
Настройка профиля OpenVPN
Переходим на портал по адресу 192.168.43.12/openvpn_conf и указываем данные для подключения:
- Username: officeuser1
- Password: указанный для officeuser1 в SoftEther VPN Server
- Для конфигурационного файла выбираем файл f1167ecd086e_openvpn_remote_access_l3.ovpn.
Установка Captive portal в руководстве Captive portal setup.
Для установки выполним следующие действия:
Далее необходимо внести изменения в конфигурационный файл /etc/nodogsplash/nodogsplash.conf. Указать следующие параметры:
Первым делом необходимо проверить IP-конфигурацию сетевых интерфейсов, командами: ifconfig или ip a.
Проверить занятость портов, командами:
Если установка RaspAP выполняется на Ubuntu, то вы можете столкнуться с конфликтом использования 53 порта, который занят службой systemd-resolved. Для отключения данной службы, воспользоваться материалом How to disable systemd-resolved in Ubuntu.
Проверить статусы используемых служб, выполнить следующие команды:
Для проверки совместимости необходимо RaspAP развернуть на Banana Pi BPI-M64 (Armbian 21.02.1 на основе Ubuntu 18.04.5 LTS). Далее, развернуть на x86 с другим более новым адаптером, например USB Realtek 8811CU Wireless LAN 802.11ac. На GitHub размещен репозиторий raspap-docker, который оборачивает RaspAP в контейнер, но по факту запускает скрипт автоматической установки, что несколько неудобно и неправильно. Поэтому для более широкого распространения RaspAP необходимо его правильно обернуть в Docker контейнер для ARM и x86 архитектур.
Проект RaspAP безусловно заслуживает внимания, основные функции работают отлично. Это единственный проект связанный с Wi-Fi сетями, работающий поверх существующей ОС, у которого работает Web-интерфейс (пока есть небольшие баги). Для личного использования, теста, стоит попробовать. Но для продакшен в бизнесе пока лучше не использовать, необходимо более детально просмотреть исходный код и конфигурацию на предмет безопасности. В любом случае, проект добавил себе в закладки, надеюсь баги исправят в скором времени.
На правах рекламы
VDSina предлагает виртуальные серверы на Linux и Windows — выбирайте одну из предустановленных ОС, либо устанавливайте из своего образа.
Первое: необходимость соблюдения для публичных (гостевых) Wi-Fi сетей постановления Правительства РФ №758 от 31 июля 2014 года и №801 от 12 августа 2014 года (размеры штрафов за несоблюдение постановлений).
Второе: комплекс эмоций, которые испытаны, в процессе реализации всего этого. С этими постановлениями всё понятно, нужно соблюдать, но была другая неприятная проблема, вылезшая в процессе эксплуатации сервисов авторизации.
Если нет времени или желания читать как и почему выбирался сервис, тогда переходим к настройкам тут.
Кто я? Меня зовут Александр. 16 лет профессионально занимаюсь СКС и сетевым оборудованием. Больше времени провожу с СКС (монтаж), чем с настройкой сетевого оборудования, поэтому на настройки времени особо нет, но получил много опыта работы с сетевым оборудованием различных вендоров. Приветствую простоту и дружелюбность конфигурирования/мониторинга сетевого оборудования, ответственность вендора за качество выпускаемой продукции и готовность исправлять недостатки, чтобы не тормозили сдачу новых проектов в назначенные сроки. Меня можно встретить и лично пообщаться в телеграме - @NSanchez13, так что, если будут вопросы, комментарии, мнения – милости прошу.
Начну с того, что 3 года работали с разными сервисами (4 шт.), ни один не устраивал. Проблемы такие:
CNA (минибраузер) не выскакивает у устройств Apple или с ошибками работал;
Apple с устаревшими прошивками отключаются от Wi-Fi при блокировке экрана и подключаются к Wi-Fi при разблокировке экрана;
дизайн страницы авторизации не продуман, часть кнопок не помещалась на маленьком экране;
мало сервисов с безлимитными SMS. Актуально для Xiaomi, у которых CNA исчезает после звонка.
Самое страшное, что на созданные мною тикеты в техподдержке никто ничего не хотел исправлять, одни обещания или игнор.
Про Xiaomi и Apple
ПРИМЕЧАНИЕ: Xiaomi закрывают CNA при переключении на другое приложение, например, приложение набора номера. Поэтому после набора номера не получается обратно вернуться в CNA. Он исчезает и в диспетчере задач его нет!
Apple в сетях с Captive Portal корректно работают только с последними версиями iOS!
Проблемы известные, проявляются абсолютно одинаково на всех сервисах авторизаций и на оборудовании разных вендоров. Поэтому гостям на Xiaomi настоятельно рекомендуется проходить авторизацию по смс или ваучерам, а Apple обновлять до последних версий.
Шаг 0: Подключение MikroTik к компьютеру
Подключите MikroTik к компьютеру. Как правило, 1 порт используется для подключения к провайдеру, а все остальные порты — для подключения компьютеров в локальной сети. Вам нужен один из них.
Схема подключения MikroTik
Security Warning
This is no bug, it all works as it was designed. After all chilli does not know which portions of the WAN should be off limits.
| iptables -A FORWARD -s 192.168.180.0/22 -d 192.168.1.0/24 -j DROP |
TODO: a better/cleaner command. ideally, we should use environment variables for this rather than hardcode anything
Шаг 1: Загрузка ПО WinBox
ПО WinBox — это программа для настройки оборудования, работающего под под управлением RouterOS.
Шаг 1.1
Загрузите WinBox с официального сайта MikroTik
Шаг 1.1.1
Загрузите WinBox из роутера, если нет доступа к Интернет
Блокировщик рекламы (Ad blocking)
Блокирует рекламу, трекеры и узлы из черного списка. В качестве источника черного списка выступает проект notracking, список обновляется автоматически. Блокируются следующие типы узлов: трекеры, поставщики рекламы, сбор аналитики, фишинговые и мошенические сайты, содержащие вредоносные программы, веб-майнеры.
Шаг 2 — Настройка сетевых интерфейсов
Настроим сетевые интерфейсы в конфигурационном файле: /etc/network/interfaces.
Known issues / bugs
Install CoovaChilli
Get OpenWrt
Use at least version 15.05 Chaos Calmer or newer, as this is where the new elements init.d script was introduced. The web resources of OpenWrt will help you figuring out what firmware you will need for your device and how to flash it. Ensure your device is properly working as a router before you continue setting op CoovaChilli
Поддержка дисплея для вывода состояния работы
Статистическую работу можно выводить на TFT-экран Adafruit Mini PiTFT контроллер ST7789. Скрипт вывода информации написан на Python, поэтому программный код можно легко адаптировать и для другого дисплея, например для ILI9341.
Вывод информации о работе AP
CoovaChilli is *not* a full Hotspot solution
Chilli is only the working network portion of a full HotSpot. It is the captive portal portion of it. It deals with intercepting new clients, provisioning IP addresses (DHCP ), providing WISPr, enforcing bandwidth and usage limits. But it does not deal with authentication or payments.
For the latter, you typically also need a Radius server and some database, as well as some commercial application and presentation layer to offer vouchers and pricing and payment, or just free access with a 'accept conditions' button.
When you opt for a OpenWrt based solution, we assume you will run this authentication backend on a different server, and the OpenWrt device is only handling the network portion. If so, Chilli needs to be configured to connect to the backend server, a self-build one, or a professional 3rd party service provider.
There may be a 'mac-address-only' authentication with CoovaChilli, so it may be possible to forgo Radius and have a splash page only solution, but this wikipage does not discuss that option, if the option is indeed possible.
I use HotSpotSystem myself, so some of below examples hold their server names and the examples may be biased toward their needs. Another such provider is Sputnik; WifiDog; WorldSpot but there may be many more.
For a simple, non-commercial, single device solution with a welcome splash page, consider Nodogsplash or OpenNDS instead.
WifiDog also seems to have a direct OpenWrt package, but I am not sure if that needs a backend server.
init restart does not work
The OpenWrt integration does seem to have the issue that /etc/init.d/chilli restart does not work. It probably tries to restart too soon. If you manually stop and start again it also does not work. If you wait a second or 2, and start again it works.
EDIT: I also came across this bug so I've opened a bug report for this and posted the fix there too. Link You just need to replace the stop function in /etc/init.d/chilli with
Есть у меня хороший знакомый, владелец весьма уютного и популярного кафе в Суздале, которое недавно пережило реновацию и расширение. Денег в интерьеры вложено было много, дело наконец дошло и до Wi-Fi. На фоне вентилирования этого дела, мой знакомый пошел все разузнавать у всех по кругу и схлестнулся в дискуссии со своим родственником (юристом по профессии), на тему волен ли он делать, что захочет в своем «кафе с претензией на ресторан», если это не вредит гостям – конкретно, речь пошла о едином Wi-Fi доступе гостям во всех залах и на веранде ресторана к будущему лету.
На примере недавно обвайфаенного офиса в московской компании, я собирался ему рекомендовать Edimax PRO, так как по сей день проблем с этим оборудованием не возникло, а ценник приемлемый. После дискуссии с родственником юристом, мой знакомый вернулся ко мне с репликой, что мол будет без вариантов заказывать более широкий канал вместе с оборудованием у местного телекома, который и прикроет его от всех потенциальных претензий надзирающих органов «если что». Ему родственник якобы подробно объяснил, что теперь обязана быть какая-то хитрая авторизация и учет подключившихся гостей, что может дать только телеком с его собственным оборудованием.
В результате я сказал, своему мегаресторатору «обожди, ничего не делай пару дней» и занялся изучением этого вопроса с двух сторон: с точки зрения чтения законодательной базы и того, что мы можем «сварить» из имеющегося Эдимакса, не подключая дорогие «магнетические сферы» в лице местного ОПСа.
Делюсь результатами моей работы, которая вылилась в простом, на мой взгляд, способе авторизации WiFi пользователей по СМС.
Максимум на что я был внутренне готов – это скулибинствовать что-то вокруг GSM-шлюза на raspberry и скрипте, но по факту «все придумали до нас».
По итогам изучения законо-талмудов, выяснилось, что действительно, публичный доступ в WiFi сеть теперь регламентирован и уже достаточно давно, с июля 2014 года, когда вышло постановление правительства №758, суть которого сводится к тому, что анонимным пользователям заходить в открытую WiFi сеть теперь нельзя. Всех пользователей нужно авторизовывать, да еще полгода хранить данные о них самих, времени и объеме оказания услуг. Для владельцев кафе, ресторанов, таких как мой знакомый, а также и мелких магазинов, отелей, клиник, турагентств и прочего бизнеса из сферы обслуживания, что хотят завлечь клиентов бесплатным вай-фаем – это получается, говоря простым языком, геморрой, непрофильная затрата денег и времени на сопутствующую отнюдь не главную тему, причем с привязкой к конкретному оператору связи надолго. Любое перепрыгивание на другой телеком будет рождать целую цепочку проблем, которую надо будет заново решать.
Но закон есть закон и строго говоря, даже то, что у моего cуздальца раньше в старом здании кафе стоял простой роутер на окне в зале – это получается уже было нарушение. И если идти в лоб, то выбор тут простой: либо идти на поклон крупным операторам связи (не каждый местный кстати оказывает такую услугу), отдавая им часть прибыли за предоставление телематических услуг, либо выдергивать кабель из порта RJ45 точки доступа своего любимого заведения.
Но есть и третий способ, которым и хочу поделиться.
Десятки раз видел в EDIMAX’е, эту настройку на их контроллере и никогда не думал о том, что она мне пригодится. Пригодилась! Собственно, проблема знакомого решилась всего за 3 минуты эксперимента, что и описываю далее.
Подробнее о способе. О хорош тем, что:
А) закон не нарушаем и авторизуем пользователей строго по закону, то есть по СМС, со всеми необходимыми данными идентификации личности.
Б) деньги операторам не платим, пусть довольствуются тем, что мы у них покупаем канал.
Единственный минус – нужно купить девайс, а именно контроллер Edimax PRO APC500 и потратить время на его настройку. Но деньги платятся один раз, возможностей получаем кучу. В опытных руках настройка занимает действительно три минуты и даже меньше – ровно столько и длится ролик:
Собственно, этой настройке и посвящена короткая статья. Теперь по порядку:
1. Включаем контроллер Edimax APC500 в сеть. Наличие точек или готовых развернутых сетей Wi-Fi не обязательно. Замечу, что у контроллера есть 8 Гб для хранения данных подключения. Captive portal можно включать и выключать в любой момент. Или переключаться между пресетами.
2. Если в сети присутствует DHCP сервер – нужно найти какой IP получил контроллер. Если DHCP сервера нет – IP по умолчанию 192.168.2.1 и видим страницу настроек NMS (здесь и далее скриншоты с приведенного выше видео):
>NMS Settings>System Accounts
В контроллере АРС500 сервис отправки СМС уже встроен и работает на базе двух предустановленных операторов связи. Они используют заведомо лучшее ПО и аппаратную часть, нежели оборудование, которое может использовать отдельная частная компания, например, GSM-шлюз. (Понятно, что кафе или кофейня даже и думать не могут о таком шлюзе, да он им и не нужен). Сервис же оператора, крайне дешев и, насколько я знаю, может осуществлять рассылки до миллиона СМС и не требует наличия повышенного внимания и для поддержки.
В России, такой сервис предоставляет провайдер Stream Telecom (Стрим Телеком). Допускаю, что много кто еще, но прямо в контроллере Эдимакса он уже прошит заранее как родной. Поэтому для начала необходимо выполнить подготовительную работу – зарегистрироваться на сайте оператора и завести свой аккаунт. Вы получите логин и пароль, которые нужно будет ввести в меню контроллера.
На этом настройки авторизации по СМС завершена.
4. Теперь нужно установить, кто из Wi-Fi пользователей будет авторизовываться посредством СМС. Для этого необходимо создать две группы пользователей: Frontdesk и Guest group. Далее мы должны установить, что пользователи будут динамические и по необходимости выбрать веб-сайт для переадресации.
6. Так же можно настроить саму страницу Captive Portal, куда вывести свои лого, шаблоны графики, полностью или частично изменить лицензионное соглашение. Как видно, ничего заумного в настройке нет, ее может освоить любой человек, хоть немного знакомый с администрированием.
Ну собственно, вот и все, владелец теперь может не опасаться штрафов за незаконную раздачу трафика, а с учетом того, что он вот-вот собирается открывать флигель с мини-гостиницей, ему придется докупать еще десяток точек и управлять с ими все равно будет удобнее с контроллером, чем без него. Соответственно, вложение единоразовое и надолго, а, следовательно, стратегически осмысленное.
Как говорится, приятного аппетита.
P.S. Русский интерфейс в контроллере имеется, переведено все. Но автору просто удобнее производить настройки на английском.
Для построения Wi-Fi сети обычно используют готовые маршрутизаторы, функциональность которых всегда ограничен прошивкой. А если необходимо добавить блокировщик рекламы, VPN шлюз и красивый Captive portal, покупать новую железку? Стоимость устройства с такими возможностями будет уже весьма высока. Можно взять Linux с Hostapd и сделать точку доступа с Wi-Fi, но в отличие от готовых маршрутизаторов не будет наглядного Web-интерфейса. И для решения этой задачи был создан проект RaspAP, который на базе устройств с ОС Debian создает Wi-Fi Hotspot с Captive portal, VPN-шлюзом, Ad block. Для RaspAP в отличие от OpenWrt не требуется непосредственная поддержка устройства, достаточно поддержки последней версии Debian. RaspAP работает поверх уже установленных ОС: Raspberry Pi OS, Armbian, Debian, Ubuntu. Как сделать Wi-Fi Hotspot на RaspAP прошу под кат.
RaspAP — open-source проект создания беспроводного маршрутизатора из многих популярных устройств работающих на ОС Debian, включая Raspberry Pi. Содержит удобный Web-интерфейс для настройки, блокировщик рекламы, осуществляет маршрутизацию сетевого трафика через OpenVPN или WireGuard.
Используя RaspAP можно быстро развернуть Hotspot с доступом в сеть Интернет, где угодно: в магазине или торговом центре, заправке, кафе и ресторане, библиотеке, больнице, аэропорте и вокзале, а также в совершенно непривычных, уединенных местах, например на вершине горы. Благодаря наличию Captive portal, посетители подключаясь к Сети, обязательно увидят информацию, которую владелец Wi-Fi желает довести до пользователей. Это может быть информация о соглашении использования публичного hotspot, и т.д.
Для устройств на ARM-архитектуре заявлена официальная поддержка, устройства на x86 процессорах в настоящее время находится в стадии Beta.
Поддерживаемые ОС и архитектуры RaspAP
Базовой платформой работы RaspAP является устройство Raspberry Pi. Но благодаря проекту Armbian, на устаревших и многих современных одноплатных компьютеров возможен запуск последней версии Debian, поэтому список поддерживаемых устройств не ограничивается только Raspberry Pi.
Wi-Fi Hotspot на RaspAP будет развернут на одноплатном компьютере Cubietruck, процессор AllWinner A20 (ARM32), с ОС Armbian (на базе Debian). Для задач маршрутизации сетевого трафика для нескольких клиентов процессора AllWinner A20 с двумя ядрами Cortex-A7 будет недостаточно, но вы можете взять гораздо более мощное устройства из каталога поддерживаемых проектом Armbian.
Возможности RaspAP:
- Графический интерфейс для настройки и отображения графиков активности клиентских устройств;
- Поддержка сертификатов SSL;
- Интеграция с Captive portal;
- Управление DHCP-сервером;
- Поддержка адаптеров 802.11ac 5 ГГц;
- Автоопределение внешних беспроводных адаптеров.
Создание контейнера с SoftEther VPN Server
Для создание контейнера будем использовать образ siomiz/softethervpn. До запуска основного контейнера необходимо создать конфигурацию, в которой указать пароль для управления сервером — параметр SPW и пароль для управления хабом — параметр HPW. Файл конфигурации будет располагаться по пути /usr/vpnserver/vpn_server.config. Выполнить следующие команды:
Для уменьшения размера контейнера возьмем образ на основе Alpine, все журналы log в null. Выполнить следующие команды для создание контейнера:
Если контейнер запустился, то переходим к следующему шагу.
Captive portal
Из коробки интегрирован nodogsplash. nodogsplash — легкое и простое решения создания кастомизируемых порталов. Поддерживает различные политики работы клиентов.
Configuration
Configurable options
As a rule, all options usable on chilli binary (man chilli.conf(5)) can be used in the /etc/config/chilli file. Any option will have to be preceded by the 'option' keyword. So for example:
command line | chilli -c | /etc/config/chilli | old-style /etc/chilli/defaults |
---|---|---|---|
-radiusnasid | radiusnasid= | option radiusnasid “value” | HS_NASID=“value” |
-radiussecret | radiussecret= | option radiussecret “value” | HS_RADSECRET=“value” |
-uamsecret | uamsecret= | option uamsecret “value” | HS_UAMSECRET=“value” |
The exception is when there are no-value or boolean options. For example swapoctets. Merely putting in this option without value means OpenWrt does not process it. So for these options you need to assign 1.
command line | chilli -c | /etc/config/chilli |
---|---|---|
-swapoctets | swapoctets | option swapoctets 1 |
-uamanydns | uamanydns | option uamanydns 1 |
Another exception is the -uamallowed option (and possibly the uamdomain one). The chilli binary accepts multiple occurrences of this keyword, so you can add many host addresses gracefully. However the OpenWrt config file only accepts the keyword once. So you have to cram all hosts onto a single line, possibly extended with the “\” line continuation symbol.
chilli -c multiline | becomes 'single' line |
---|---|
uamallowed=“hosta,hostb” | option uamallowed “hosta,hostb,\ |
uamallowed=“hostc,hostd” | hostc,hostd” |
Точка доступа
По умолчанию создается точка доступа со следующими параметрами:
- Interface: wlan0
- SSID: raspi-webgui
- Wireless Mode: 802.11n — 2.4GHz
- Channel: 1
- Security Type: WPA2
- Encryption Type: CCMP
- Passphrase: ChangeMe
Для Raspberry Pi Zero W доступен режим виртуализации беспроводного устройства. Единственное на борту Wi-Fi устройство будет работать в режиме клиента и точки доступа. Режим виртуализации сетевых интерфейсов работает и на других адаптерах USB Wi-Fi таких как RTL8188.
Читайте также: