Меню Рубрики

Установка coovachilli на openwrt

Installation Guide

How to Setup Your Own Hotspot with OPENWRT (BackFire) and CoovaChilli
(Legacy Broadcom based routers only!)

Important note: This solution requires a Hotspot Operator Account at HotSpotSystem.com. You can create an Operator Account here. If you would like to see what features you will be able to use with our solutions, click here. If you already have an Operator Account, then read on.

1. Download the appropriate firmware for your router from Openwrt.org http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/.

For a Linksys WRT54GL use the openwrt-wrt54gs-squashfs.bin file

2. Upgrade the firmware from the command line by establishing an SSH session to the router.

3. Install the necessary packages

Use the following commands
opkg update
opkg install coova-chilli

Check with opkg list to see if you have kmod-tun installed. If not then you will need to install that also.

opkg install kmod-tun

you may want to use joe editor instead of the vi editor
install joe editor (‘opkg install joe‘)

4. manually copy paste chilli. (SHIFT+Insert using joe)
joe /etc/init.d/chilli Copy our example startup file: http://hotspotsystem.com/firmware/openwrt/chilli
and save it with joe.

5. enable permissions
chmod a+x /etc/init.d/chilli

6. check your lan configuration

Issue ifconfig and note the names of the WAN and LAN interfaces as they appear

7. Edit defaults to look like the example file (it may be easier to remove the original defaults file and copy paste the new one in)
joe /etc/chilli/defaults

Copy our example «defaults» file from http://hotspotsystem.com/firmware/openwrt/defaults
and edit the lines NASIDthat should display your operatorid.

to the output of the ifconfig command from before. If the WAN and LAN interfaces appear diffferent then you will need to overwrite them.

to exit joe with saving the hit escape, then X, and type „exsave”.

8. Check to see if your wireless interface is turned on.
joe /etc/config/wireless
and make sure wireless interface is enabled (hash «option disabled 1»)
You can change the SSID under the „option SSID”

10. when it comes back you can start chilli

/etc/init.d/chilli start

you make get the following error.
md5sum: can’t open ‘/etc/chilli/main.conf’: No such file or directory

simply start chilli again

11. Test the hotspot
When you connect wireless to the router you should now get an ip address in the network Open a browser and try to surf the net. You will get the splash page.

12. if it works well then you can make chilli autostart.
cd /etc/rc.d
ln -s /etc/init.d/chilli s60chilli

remove dnsmasq autostart
rm /etc/rc.d/S60dnsmasq

joe /etc/rc.local

add this line:
chilli start

13. Add a cron to have device show up in the control center.

Your MAC address should appear as XX-XX-XX-XX-XX-XX and not as

To add a cron enter: crontab -e, and enter the following line (it should start with a number between 0-60):

00 * * * * /usr/bin/wget http://tech.hotspotsystem.com/up.php?mac=MACADDRESS\&nas /\%20/g|sed s/:/\%3A/g|sed s/,/\%2C/g` -O /tmp/up.html

Press enter and save the file.

That’s all. You can setup hotspot service even on a wired connection. In this case you have to choose an ethernet port instead of wlan or you can setup hotspot on both ports.

If you have successfully setup your router you have to see a login window when connecting via wireless. You can log in with username admin, blank password.

Should you have any more questions or problems, please read our Knowledgebase or contact Help Desk.


OpenWrt Project

User Tools

Site Tools

Table of Contents

CoovaChilli captive portal

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

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 instead.
WifiDog also seems to have a direct OpenWrt package, but I am not sure if that needs a backend server.

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 radiusnas > option radiusnasid “value” HS_NAS >
-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”

I will not repeat the full list of options here. Please refer to the Coova documentation man page instead: http://coova.github.io/CoovaChilli/chilli.conf(5).html


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

Install CoovaChilli

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

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.

Still, if you want to prevent this, first ensure chilli does not need or use some of your private servers (like DNS or RADIUS), and then add this firewall rule in OpenWrt’s custom firewall file /etc/config/firewall.user :

| iptables -A FORWARD -s -d -j DROP |

TODO: a better/cleaner command. ideally, we should use environment variables for this rather than hardcode anything

Known issues / bugs

WISPr goes to MSN

When WISPr autostarts the browser, it may actually try to go to “go.microsoft.com/fwlink/?Link >

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.

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

Written by

Page was initiated by cybermaus, comments and additions welcome.


Маршрутизатор OpenWrt/dd-wrt с порталом CoovaChilli

Начиная с версии 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. Проверка совместимости и выбор прошивки

Вы должны посетить список поддерживаемого оборудования (точек доступа) на обоих сайтах:

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

Внимание: ООО «Нетамс» не оказывает бесплатных консультаций по выбору прошивки, перепрошивке устройств, восстановлению прошитых устройств после сбоев и так далее.

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. Внимание: поскольку CoovaChilli использует туннели, пользователи гостевого портала не будут получать IP адреса из этой сети, для этого необходимо отключить dhcp сервис на этом интерфейсе. Следовательно, выбор подсети для «внутреннего» интерфейса — дело произвольное и можно указать unmanaged. Скриншоты основных окон настройки приведены ниже:

В данном примере используются:

  • Адрес WAN интерфейса:
  • Адрес LAN интерфейса:
  • SSID (имя сети): OpenWrt, не скрытая, без пароля

Внимание: ООО «Нетамс» не оказывает бесплатных консультаций по настройке OpenWrt

5. Настройка CoovaChilli

Портал перехвата CoovaChilli использует туннельные интерфейсы и сложную схему с генерацией конфигурационных файлов из файла-описания. Подробнее про это можно почитать здесь: https://wiki.openwrt.org/doc/howto/wireless.hotspot.coova-chilli

Для настройки необходимо отредактировать единственный конфигурационный файл /etc/config/chilli, пример которого (с комментариями) приведен ниже:

Согласно приведенной выше конфигурации особо важными параметрами надо считать следующие:

  • option radiussecret — пароль взаимодействия с WNAM по протоколу RADIUS
  • option radiusserver1 — адрес сервера на котором работает FreeRADIUS (обычно совпадает с адресом сервера WNAM)
  • option net — подсеть с IP адресами клиентов (площадка)
  • option radiuslisten — виртуальный адрес сервера доступа
  • option uamserver — ссылка на внешний портал авторизации — сервер WNAM
  • option uamallowed — разрешенный адрес — сервер WNAM
  1. в некоторых случаях, в фаерволе необходимо дополнительно разрешить маршрутизацию между интерфейсом авторизации (br-lan в нашем случае) и интерфейсом на котором находится сервер WNAM.
  2. поскольку вы используете частную адресацию на сетевых интерфейсах, к которым подключены абоненты, вы должны для всех своих площадок и серверов доступа выбирать уникальные IP адреса и подсети.

Запустите CoovaChilli: /etc/init.d/chilli start

Если все в порядке, то в выводе команды ps вы обнаружите:

6. Настройка softflowd

Для отслеживания посещенных абонентами ресурсов вам необходимо установить пакет softflowd, который является коллектором NetFlow данных. После установки отредактируйте его конфигурационный файл /etc/config/softflowd:

Важных параметров три: имя интерфейса, на котором проводить сбор данных (tun0), частота сэмплинга ( sampling_rate= 1), адрес и порт коллектора, это внешний адрес сервера WNAM и порт 20002 ( )

Внимание : поскольку softflowd не позволяет указывать адрес интерфейса-источника трафика NetFlow, он будет выбран автоматически, и обычно это WNAM интерфейс, что создает дополнительную задачу при настройке сервера доступа (ниже).

Запустите softflowd: /etc/init.d/softflowd restart

7. Настройка WNAM

Затем необходимо создать запись о площадке:

При этом все остальные ограничения WNAM (например, число авторизационных СМС, рабочие часы), а также параметры авторизации, перенаправления, социальные сети и т.п. так же полностью поддерживаются независимо от типа устройства доступа. В настоящий момент не реализован принудительный сброс сессии абонента/всех сессий абонента.

8. Проверка

Одновременно в административном интерфейсе WNAM появится запись о сессии:

Она может также сопровождаться детализацией трафика по потокам, если softflowd настроен верно:

На этом настройка OpenWrt/CoovaChilli/WNAM завершена.


Добавить комментарий