Начиная с версии 1.3.886 система WNAM поддерживает прямое взаимодействие с порталом перехвата, организованном при помощи ПО CoovaChilli (https://coova.github.io/), которое является наследником Chillispot (http://www.chillispot.org/). ПО CoovaChilli широко применяется в качестве портала перехвата (хотспота) на прошивках Lede Project (https://lede-project.org/), OpenWrt (https://openwrt.org/) и dd-wrt (http://www.dd-wrt.com/). Эти прошивки устанавливаются взамен заводских на сотнях типов различных устройств (точек доступа). Таким образом, практически любую "бытовую" точку доступа можно превратить в хотспот, полностью взаимодействующий с системой управления Wi-Fi посредством доступа WNAM.
Для полноценной настройки системы WNAM для взаимодействия с хотспотом на OpenWrt/dd-wrt необходимо выполнить ряд действий, представленных ниже.
1. Проверка совместимости и выбор прошивки
Следует проверить список поддерживаемого оборудования (точек доступа) на сайтах:
- https://wiki.openwrt.org/toh/start (более предпочтительный тип прошивки);
- http://www.dd-wrt.com/site/support/router-database , http://www.dd-wrt.com/site/support/other-downloads.
Самостоятельно перепрошивая роутер открытой и бесплатной прошивкой, вы лишаетесь оригинальной гарантии производителя устройства.
Компания ООО "Нетамс" не оказывает бесплатных консультаций по выбору прошивки, перепрошивке устройств, восстановлению прошитых устройств после сбоев и так далее.
2. Выбор прошивки и установка её на устройство
Для установки прошивки следует воспользоваться инструкциями на сайте, откуда скачали прошивку, форумами и поисковыми системами. После установки прошивки необходимо произвести её первоначальную настройку: пароль, IP-адреса внутреннего и внешнего интерфейсов, трансляция адресов, настройка системы WLAN и так далее. Дальнейшие инструкции будут приведены в расчете на установленную прошивку OpenWrt Chaos Calmer 15.05 на точку доступа Ubiquiti UniFi. В этой точке доступа нет LAN интерфейса, встроенный единственный порт используется как WAN.
3. Установка пакетов на точку доступа
Необходимо установить следующие пакеты:
- coova-chilli;
- dnsmasq;
- dropbear;
- kmod-ipt-conntrack;
- kmod-mac80211;
- kmod-tun;
- softflowd.
OpenWrt не имеет графических средств настройки пакетов, поэтому их настройка представлена позже.
4. Базовая настройка роутера
Необходимо настроить беспроводной интерфейс роутера: создать SSID и назначить IP-адресацию на интерфейсе br-lan.
Скриншоты основных окон настройки OpenWrt приведены ниже.
В данном примере используются:
- адрес WAN интерфейса: 172.16.130.3/24;
- адрес LAN интерфейса: 10.130.4.1/24;
- SSID (имя сети): OpenWrt, не скрытая, без пароля.
5. Настройка CoovaChilli
Портал перехвата CoovaChilli использует туннельные интерфейсы и сложную схему с генерацией конфигурационных файлов из файла-описания. Подробнее про это можно почитать по ссылке: https://wiki.openwrt.org/doc/howto/wireless.hotspot.coova-chilli.
Для настройки необходимо отредактировать единственный конфигурационный файл /etc/config/chilli, пример которого (с комментариями) приведен ниже:
config chilli
# option disabled 1# Your HotSpotSystem account details
option radiusnasid "openwrt"
option radiussecret "secret" # это "секретный" ключ взаимодействия роутера и FreeRADIUS-сервера
option uamsecret "" # это поле надо оставить пустым# WISPr settings
# It is possible your provider has specific demands on these values. But for WISPr the values are
# as shown below. (cc=2-digit ISO country; idd=phone-country;ac=phone-area-code)
# example: "isocc=se,cc=46,ac=584,network=CampingTiveden"
# the <SSID> does not actually need to be the SSID, but WISPr RFC calls it SSID
# the <sub-id> is just so you know which device on your network gave the problem. Can be Alfanumeric.option locationname "K18-VM" # необязательное имя площадки, не используется
option radiuslocationname "<SSID>,<sub-ID>"
option radiuslocationid "isocc=<cc>,cc=<idd>,ac=<ac>,network=<SSID>"# Radius parameters (change to the one for your provider)
option radiusserver1 172.16.130.5 # IP адрес вашего RADIUS сервера, обычно это адрес сервера WNAM
option radiusserver2 172.16.130.5 # IP адрес вашего второго RADIUS сервера, обычно это адрес резервного сервера WNAM, или то же адрес что и у первого сервера# Your device's LAN interface on which to put the hotspot
option dhcpif br-lan # Имя интерфейса, на котором будет работать хотспот# set DNS to whatever is fastest. On slow saturated lines, best use your local router for caching.
# on fast & wide lines, use or Google or your ISP's dns, whichever is fastest
option dns1 8.8.8.8 # адрес первого сервера DNS, можете использовать адреса серверов провайдера
option dns2 8.8.4.4 # адрес второго сервера DNS, можете использовать адреса серверов провайдера# Tunnel and Subnet
option tundev 'tun0'
option net 192.168.180.0/22 # ВНИМАНИЕ: это будут IP адреса устройств ваших клиентов. Необходимо, чтобы эта сеть соответствовала той, что вы укажете в настройках площадки
option radiuslisten 192.168.182.1 # ВНИМАНИЕ: это виртуальный адрес хотспота. Необходимо, чтобы он соответствовал адресу, указанному в "сервере доступа" WNAM
option lease 86400 # 1 day
option leaseplus 600 # plus 10 minutes# Universal access method (UAM) parameters
option uamserver "http://172.16.130.5:8080/cp/coovachilli" # ссылка на интерфейс авторизации пользователей, сервер WNAM
option uamuiport 4990 # HotSpot UAM "UI" Port (on subscriber network)
option uamanydns 1
#option uamaliasip 1.0.0.1 # default: http://1.0.0.1 will goto login page
option uamaliasname login # http://login will goto login page
#option uamlogoutip 1.0.0.0 # default: http://1.0.0.0 will logout
# # default: http://logout will logout
option nouamsuccess 1 # no success page, to original requested URL# Hosts; services; network segments the client can access without first authenticating (walled garden)
# Hosts are evaluated every 'interval', but this does not work well on multi-homed (multi-IP'ed) hosts, use IP instead.
option uamallowed "172.16.130.5" # необходимо указать IP адрес сервера WNAM# Domain suffixes the client can access without first authenticating (walled garden)
# Host on the domain are checked by spying on DNS requests, so this does work for multi-homed hosts too.
#option uamdomain ".paypal.com,.paypalobjects.com,.worldpay.com,.rbsworldpay.com,.adyen.com,.hotspotsystem.com"# Various debug and optimization values
option swapoctets 1 # swap input and output octets
option interval 3600 # config file and host lookup refresh# Add the chilli firewall rules
option ipup '/etc/chilli/up.sh'
option ipdown '/etc/chilli/down.sh'
Согласно приведенной выше конфигурации особо важными параметрами надо считать следующие:
- option radiussecret - пароль взаимодействия с сервером WNAM по протоколу RADIUS;
- option radiusserver1 - адрес сервера, на котором работает FreeRADIUS (обычно совпадает с адресом сервера WNAM);
- option net - подсеть с IP-адресами клиентов (площадка);
- option radiuslisten - виртуальный адрес сервера доступа;
- option uamserver - ссылка на внешний портал авторизации - сервер WNAM;
- option uamallowed - разрешенный адрес - сервер WNAM.
В некоторых случаях, в firewall необходимо дополнительно разрешить маршрутизацию между интерфейсом авторизации (br-lan в нашем случае) и интерфейсом? на котором находится сервер WNAM. Поскольку обычно используется частная адресация на сетевых интерфейсах, к которым подключены абоненты, необходимо для всех своих площадок и серверов доступа выбирать уникальные IP-адреса и подсети.
Затем необходимо запустить CoovaChilli, выполнив:
/etc/init.d/chilli start
Если все в порядке, то в выводе команды ps можно обнаружить следующее:
chilli -c /var/run/chilli_cfg021cfa.conf --pidfile /var/run/chilli_cfg021cfa.pid --cmdsocket /var/run/chilli_cfg021cfa.sock --unixipc /var/run/chilli_cfg021cfa.ipc
6. Настройка softflowd
Для отслеживания посещенных абонентами ресурсов необходимо установить пакет softflowd, который является коллектором NetFlow данных. После установки необходимо отредактировать его конфигурационный файл /etc/config/softflowd следующим обзазом:
config softflowd
option enabled '1'
option interface 'tun0'
option pcap_file ''
option timeout ''
option max_flows '8192'
option host_port '172.16.130.5:20002'
option pid_file '/var/run/softflowd.pid'
option control_socket '/var/run/softflowd.ctl'
option export_version '5'
option hoplimit ''
option tracking_level 'full'
option track_ipv6 '0'
option sampling_rate '1'
Важных параметров три:
- имя интерфейса, на котором проводить сбор данных (tun0);
- частота сэмплинга (sampling_rate=1);
- адрес и порт коллектора (это внешний адрес сервера WNAM и порт 20002 (172.16.130.5:20002)).
Запустите softflowd, выполнив:
/etc/init.d/softflowd restart
7. Настройка системы WNAM
client 172.16.130.0/24 {
secret=secret
}
Затем необходимо создать запись о площадке как показано на рисунке (раздел "Конфигурация" → "Площадки").
- по объему трафика;
- по длительности сессии доступа;
- по скорости передачи данных.
При этом все остальные ограничения системы WNAM (например, число авторизационных СМС, рабочие часы), а также параметры авторизации, перенаправления, социальные сети и т.п. так же полностью поддерживаются независимо от типа устройства доступа. В настоящий момент не реализован принудительный сброс сессии абонента/всех сессий абонента.
8. Проверка
- res=notyet;
- uamip=192.168.182.1;
- uamport=3990;
- challenge=161c53097a163d8263c94d720676f431;
- called=DC-9F-DB-89-80-C9;
- mac=4C-57-CA-XX-XX-XX;
- ip=192.168.180.5;
- nasid=openwrt;
- sessionid=5807bc5900000002;
- userurl=http%3a%2f%2fbash.im%2f;
- md=8E71CEACE13C1906A5D1D1F9C2EC19E6.
rad_recv: Access-Request packet from host 172.16.130.3 port 47961, id=81, length=310
ChilliSpot-Version = "1.3.1-svn"
User-Name = "4C:57:CA:XX:XX:XX"
User-Password = "password"
Service-Type = Login-User
Acct-Session-Id = "5814ac5400000003"
Framed-IP-Address = 192.168.180.5
NAS-Port-Type = Wireless-802.11
NAS-Port = 3
NAS-Port-Id = "00000003"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "DC-9F-DB-89-80-C9"
NAS-IP-Address = 192.168.182.1
NAS-Identifier = "openwrt"
WISPr-Location-ID = "isocc=<cc>,cc=<idd>,ac=<ac>,network=<SSID>"
WISPr-Location-Name = "<SSID>,<sub-ID>"
WISPr-Logoff-URL = "http://192.168.182.1:3990/logoff"
Message-Authenticator = 0x0d4bdbdbd05dc45b3d3d2fe9eb2340efrad_recv: Accounting-Request packet from host 172.16.130.3 port 35749, id=14, length=252
ChilliSpot-Version = "1.3.1-svn"
ChilliSpot-Attr-10 = 0x00000001
Event-Timestamp = "окт 29 2016 17:08:14 MSK"
User-Name = "4C:57:CA:XX:XX:XX"
Acct-Status-Type = Start
Acct-Session-Id = "5814ac5400000003"
Framed-IP-Address = 192.168.180.5
NAS-Port-Type = Wireless-802.11
NAS-Port = 3
NAS-Port-Id = "00000003"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "DC-9F-DB-89-80-C9"
NAS-IP-Address = 192.168.182.1
NAS-Identifier = "openwrt"
WISPr-Location-ID = "isocc=<cc>,cc=<idd>,ac=<ac>,network=<SSID>"
WISPr-Location-Name = "<SSID>,<sub-ID>"
Одновременно в интерфейсе администратора системы WNAM появится запись о сессии как показано на рисунке.
Она может также сопровождаться детализацией трафика по потокам, если softflowd настроен верно.
На этом настройка OpenWrt/CoovaChilli/WNAM завершена.