2 заметки с тегом

ChoovaChilli

OrangePi, CoovaChilli and Freeradius for a Wifi Hotspot with captive portal

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

Скрипт для автоматической установки ChoovaChilli , RADIUS, LAMP и  точки доступа WIFI

wget https://raw.githubusercontent.com/ua3nbw/opihotspot/master/opihotspot_debian.sh
chmod +x opihotspot_debian.sh
./opihotspot_debian.sh

Тестировал на Armbian_5.25_Orangepipc_Debian_jessie_default_3.4.113 и на Armbian_5.33_Orangepipc_Debian_jessie_next_4.13.4
скрипт в процессе установки может потребовать перезагрузить систему, лог можно наблюдать открыв в другом терминале :

sudo tail -f /var/log/opihotspot.log

phpmyadmin поднимется по адресу : http://Ваш_ip_адрес//phpmyadmin
логин: root
пароль: orangepi
веб интерфейс для FreeRadius поднимется по адресу : http://Ваш_ip_адрес/daloradius
логин: administrator
пароль: radius
для тестов заведён пользователь: test

после подключения к точке доступа: SSID=OPIhotspot
Username: test Password: test

2017   Apache   armbian   ChoovaChilli   MySQL   OrangePI PC   PHP   Radius

ChoovaChilli

ChoovaChilli — это контроллер доступа. Его задача в максимально общей формулировке — пускать пользователей из одного сегмента сети в другой.
ChoovaChilli чаще всего используется для создания хотспота, взаимодействует с  RADIUS
должен быть установлен LAMP и поднята точка доступа WIFI

Install Haserl
необходим для встроенного минипортала ChoovaChilli

cd /tmp
wget -c http://superb-dca2.dl.sourceforge.net/project/haserl/haserl-devel/haserl-0.9.35.tar.gz

Upack the tarball:

tar zxvf haserl-0.9.35.tar.gz -C /usr/src/
cd /usr/src/haserl-0.9.35/
./configure --prefix=/usr 
make
make install
cd

Собираем ChoovaChilli

apt-get install libtool gengetopt libcurl3-dev -y
git clone https://github.com/coova/coova-chilli.git
cd coova-chilli
./bootstrap
./configure --prefix=/usr --libdir=/usr/lib --localstatedir=/var --sysconfdir=/etc --enable-miniportal --with-openssl --enable-libjson --enable-useragent --enable-sessionstate --enable-sessionid --enable-chilliredir --enable-binstatusfile --enable-statusfile --disable-static --enable-shared --enable-largelimits --enable-proxyvsa --enable-chilliproxy --enable-chilliradsec --with-poll  --enable-dhcpopt --enable-sessgarden --enable-ipwhitelist --enable-redirdnsreq --enable-miniconfig --enable-layer3 --enable-chilliscript --enable-eapol --enable-uamdomainfile --enable-modules --enable-multiroute

make -j 4
make install

Правим файл /etc/chilli/defaults
У меня настройки сети такие:

###
#   Local Network Configurations
# 

HS_WANIF=eth0            # WAN Interface toward the Internet
HS_LANIF=wlan0		   # Subscriber Interface for client devices
HS_NETWORK=192.168.12.0	   # HotSpot Network (must include HS_UAMLISTEN)
HS_NETMASK=255.255.255.0   # HotSpot Network Netmask
HS_UAMLISTEN=192.168.12.1	   # HotSpot IP Address (on subscriber network)
HS_UAMPORT=3990            # HotSpot UAM Port (on subscriber network)
HS_UAMUIPORT=4990          # HotSpot UAM "UI" Port (on subscriber network, for embedded portal)

создаем файл:

nano /etc/default/chilli

START_CHILLI=1
CONFFILE="/etc/chilli.conf"
HS_USER="chilli"

заменяем /etc/init.d/chilli на содержимое этого файла: chilli
далее:

sudo chmod +x /etc/init.d/chilli
sudo update-rc.d chilli defaults
systemctl enable chilli
systemctl start chilli
reboot

Ну вот, теперь при подключении к точке доступа, нас встретит страница авторизации:
Для управления аутентификацией и авторизацией ставим Freeradius

2017   armbian   ChoovaChilli   OrangePI PC