Меню Рубрики

Установка chillispot на debian

Wi-fi c Web-авторизацией. FreeRadius + dd-wrt + chillispot

В этой статье мы будем организовывать гостевой доступ к интернету с web-авторизацией.

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

— обычный маршрутизатор с dd-wrt на борту к примеру D-link DIR-300 как наиболее дешевый вариант либо что-то другое, это не важно. Маршрутизатор соответственно поддерживает Wi-fi и имеет доступ в интернет.

— компьютер, с установленной Unix подобной ОС. На нем мы расположим сервер авторизации. В статье описана установка на FreeBSD, но это тоже не важно, можете использовать как Debian, так и Ubuntu, как наиболее распространенные, либо что-то другое. Процесс настройки будет отличаться незначительно.

Что будем иметь по итогу:

Пользователь подключается к открытой Wi-fi сети, при попытке открыть любой сайт через браузер видит приветственное сообщение о владельце точки и о способах получения доступа, либо любую другую лабуду, которую сами придумаете.

Далее пользователь получает от вас логин и пароль, либо находит их на приветственной странице, либо просто нажимаем кнопу «Продолжить», вводит их в соответствующие поля, авторизуется и получает долгожданный доступ в интернет. У вас как владельца точки есть возможность назначить каждого пользователя определенной группе, в свою очередь вы можете регулировать скорость доступа, а также время пребывания в сети для каждой группы. После чего у пользователя опять выскочит приветственное сообщение с просьбой ввести логин и пароль.

(Подобная схема к примеру на текущий момент реализована в сети ресторанов Макдональдс)

Все это дело организовываем с помощью:

FreeRadius — сервер авторизации

chillispot — есть на маршрутизаторе с dd-wrt

Для управления поднимем простенький web-сервер, mysql, phpmyadmin.

1 этап настройка маршрутизатора с dd-wrt

Открываем через web-интерфейс наш маршрутизатор. Настраиваем от настроек по умолчанию, поэтому вводим в браузере 192.168.1.1 и попадаем в меню.

Далее будут приводиться мои настройки сети, делайте также, либо подставляйте по примеру свои значения.

1. Вкладка Administration, в поля Router username, router password и re-enter to confirm вводим свои значения.

Тем самым установив свои пароли вместо стандартных для доступа к роутеру.

2. Вкладка Setup — подвкладка Basic Setup , Настраиваем Wan Setup (доступ к интернету)

3. Там же заполняем Поля Router IP и DHCP.

В настройках DHCP уберите флажок «DHCP-Authoritative» и нажмите Apply Settings

4. Вкладка Wireless, в поле Wireless Network Name (SSID) введите имя будущей Wi-fi сети

5.Вкладка Services -> подвкладка Hotspot

Chillispot — Enable — думаю итак понятно без комментариев

Separate Wifi from the LAN Bridge — Enable — этим мы отделяем LAN порты от Wi-fi сети

Primary Radius Server IP/DNS — ip сервера с FreeRadius

Backup Radius Server IP/DNS — ставим значение из предыдущего поля

DNS IP — Внешний DNS (У меня он 192.168.0.1, так как у меня на нем и DNS)

Remote network внутренняя сеть для Wi-fi клиентов

Redirect URL — приветственная страница radius-сервера, должна располагаться на сервере с Freeradius, ее мы сделаем чуть позже

Shared Key — ключ. testing123 ключ по умолчанию, желательно придумать свой, впоследствии в настройках не забываем указывать именно свой ключ

DHCP interface — интерфейс через который подключаются Wi-fi клиенты

2 этап Настройка FreeRadius

Устанавливаем FreeRadius, не забываем поставить галочку напротив MYSQL

cd /usr/ports/net/freeradius2 make install clean

Редактируем конфигурационный файл /usr/local/etc/raddb/radiusd.conf

и проверяем что выставлено именно no

Следующий файл для редактирования /usr/local/etc/raddb/sites-available/default

И во всех раскомментируем строчку

Этим мы подготовили freeradius для связи с mysql

Далее редактируем файл /usr/local/etc/raddb/clients.conf

Ищем секцию client localhost <…

где, 192.168.0.20 ip адрес маршрутизатора с wi-fi

Не забываем прописать в /etc/rc.conf строчку

3 этап Настройка MySQL

cd /usr/ports/databases/mysql55-server make install clean

Добавляем в /etc/rc.conf

Выставляем пароль для рута

mysqladmin -u root password ВАШ_ПАРОЛЬ

Теперь заходим в консоль MySQL и вводим только что установленный пароль

Если вход прошел успешно — продолжаем, создаем базу данных для пользователей и самих пользователей

create database db_radius; grant all privileges on db_radius.* to ‘user_radius’@’localhost’ identified by ‘user_radius_password’; flush privileges; quit;

Далее либо скачиваем с официального сайта архив с freeradius(http://www.freeradius.org/download.html) и находим там файлы schema.sql nas.sql ippool.sql, либо ищем их по пути /usr/local/etc/raddb/sql/mysql. Ну и на крайний случай выкладываю тут

Из папки с этими файлами импортируем таблицы в нашу базу данных

mysql -u user_radius -p db_radius 4 этап Привязываем FreeRadius к MySQL

Редактируем файл /usr/local/etc/raddb/sql.conf

Прописываем туда реквизиты доступа к созданной базе «user_radius«, «user_radius_password«, «db_radius«.

Теперь создадим тестового юзера для проверки в базе MySQL. Для этого выполним

mysql -u user_radius -p db_radius insert into radcheck (Username, Attribute, Value) VALUES (‘testsql’, ‘Password’, ‘passwordsql’);

Не забываем перезагрузить freeradius.

Проверяем соединение командой

radtest testsql passwordsql 127.0.0.1 0 testing123

Здесь всплывут 2 подводных камня:

1. Выше мы уже настроили FreeRadius на то, что клиентом у нас является 192.168.0.20 — то есть временно на период теста меняем обратно на 127.0.0.1 и перезагружаем freeradius.

2. У меня вышла вот такая ошибка:

radclient:: Failed to find IP address for office.local
radclient: Nothing to send.

Чтобы ее исправить необходимо добавить в файл /etc/hosts запись о своем хосте

Если соединение прошло успешно то в выводе команды мы должны увидеть слова «AccessAccept»


5 этап настройка Веб-сервера с PHP, SSL и поддержкой CGI

Следующим этапом будет настройка веб-сервера с SSL (нужен для страницы авторизации) c поддержкой выполнения CGI скриптов(тоже для страницы авторизации), и с поддержкой php (это для phpmyadmin) как это все сделать можно прочитать здесь.

6 этап Настройка страницы авторизации
После того как у нас появился работающий Веб-сервер нам необходимо настроить страницу авторизации. Кстати это именно та страница, на которую ссылается роутер с dd-wrt в своих настройках.

Для этого скачиваем архив содержащий нужный нам файл hotspotlogin.cgi тут http://www.chillispot.info/download.html

Читайте также:  Установка gta 5 иероглифы

если не получилось, выкладываю тут на всякий случай

Устанавливать ничего не нужно, просто ищем в архиве файл hotspotlogin.cgi и копируем его в папку для cgi скриптов веб-сервера. Не забываем выставить права на выполнение

chmod 755 hotspotlogin.cgi

Также необходимо раскомментировать в нем строку «$uamsecret = » и вставить свое значение (у нас это testing123).

Если все выше настроено успешно, то при подключении к сети и попытке открыть любой сайт должна открываться страница формируемая hotspotlogin.cgi.

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

7 этап Настройка dialupadmin

Далее процесс настройки приводит нас к мысли что здорово было бы иметь веб-интерфейс для управления hotspot’ом, и базой данных.

Чтобы не увеличивать статью до километровых размеров опустим установку PhpMyAdmin для управления базой, благо инфы по этой теме в интернете навалом.

Опишем установку веб-интерфейса для управления hotspot’ом. Из бесплатных остановимcя на dialupadmin, который идет в комплекте с freeradius. Возможно не самое лучшее решение, но свои минимальные функции выполняет. В принципе можно обойтись и без него, и делать все вручную через базу, так как сам по себе он мне показался «не очень», но тем не менее информация о его настройке не будет лишней.

Для этого либо скачиваем архив с FreeRadius http://www.freeradius.org/download.html (Возможно ранее вы его уже скачали).

И находим там папку dialup_admin, либо ищем ее по пути где-то здесь /usr/share/freeradius-dialupadmin/htdocs /var/www/dialup. Но скорее всего ее там может не оказаться.

Создаем папку для dialupadmin в папке веб-сервера, и перепишем в нее файлы из одноименной папки в архиве.

Здесь я опускаю настройку веб-сервера для папки dialupadmin. Можете положить все в папку по умолчанию и не париться с настройками, либо настроить веб-сервер как вам удобно.

Примечание: в dialupadmin по умолчанию нет никакой встроенной аутентификации, поэтому не забудьте ее сделать средствами веб-сервера поставив пароль на папку.

Приступим к настройке dialupadmin

Сразу сделаю небольшое отступление, если в процессе настройки вы столкнетесь с подобной ошибкой (точно не помню на каком этапе она может возникнуть)

Fatal error: Call to undefined function import_request_variables() in /usr/local/www/dialupadmin/conf/config.php on line 9

Редактируем файл ..dialupadmin/conf/admin.conf

в строке ниже вместо XXXXXX выставляем свой ключ. Например у нас в примере это testing123

Здесь вместо «crypt» выставляем «clear»

Далее настройки базы, в строках ниже указываем свои значения:

sql_username: user_radius sql_password: user_radius_password sql_database: db_radius

Обратите внимание на строку

Если не хотите чтобы отображалась информация об ошибках после отладки, замените на «false»

Теперь необходимо добавить таблицы в нашу базу данных

Их можно найти по пути ..dialup_admin/sql/mysql

Но не все так просто, из-за чьей-то криворукости, не будем выяснять чьей, необходимо перед импортом таблиц их немного подправить, иначе можем натолкнуться на подобное

Error: File ‘/usr/local/www/dialup_admin/conf/naslist.conf’ does not exist or is not readable
Error: File ‘/usr/local/www/dialup_admin/conf/captions.conf’ does not exist or is not readable

Warning: file(/usr/local/www/dialup_admin/conf/username.mappings): failed to open stream: No such file or directory in /usr/local/www/dialupadmin/conf/config.php on line 88

Warning: Invalid argument supplied for foreach() in /usr/local/www/dialupadmin/conf/config.php on line 89

Итак файлы userinfo.sql и badusers.sql в 5 строке удаляем

Также стоит обратить внимание на соответствия названий таблиц в базе и файле ..dialupadmin/conf/admin.conf . С этим могут быть связаны выше описанные ошибки.

Не факт конечно, что вскоре это все не поправят, но на всякий случай привожу все возможные грабли.

Заходим в папку ..dialupadmin/sql/mysql/ и импортируем таблицы (можете это сделать через PhpMyAdmin)

mysql -u user_radius -p db_radius 8 этап Добавление данных
Заходим через браузер в веб-интерфейс dialupadmin и создаем 2 группы:

Нажимаем кнопку «New Group» и в поле «Group name» вводим название «Default«, нажимаем кнопку «Create»

Таким же образом создаем группу «Full Bandwidth«.

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

Full Bandwidth для Vipов.

Заходим через PhpMyAdmin в базу и добавляем записи в таблицу radgroupcheck

id: 1
GroupName: Default
Attribute: Auth-Type
op: ==
Value: Local

id: 2
GroupName: Full Bandwith
Attribute: Auth-Type
op: ==
Value: Local

Теперь добавляем записи в таблицу radgroupreply

id: 1
GroupName: Default
Attribute: Session-Timeout
op: =
Value: 3600

id: 2
GroupName: Default
Attribute: Idle-Timeout
op: =
Value: 600

id: 3
GroupName: Default
Attribute: Acct-Interim-Interval
op: =
Value: 60

id: 4
GroupName: Default
Attribute: WISPr-Redirection-URL
op: =
Value: http://www.google.com

id: 5
GroupName: Default
Attribute: WISPr-Bandwidth-Max-Up
op: =
Value: 128000

id: 6
GroupName: Default
Attribute: WISPr-Bandwidth-Max-Down
op: =
Value: 256000

Следующие атрибуты для группы “Full Bandwidth”:

id: 7
GroupName: Full Bandwidth
Attribute: Session-Timeout
op: =
Value: 3600

id: 8
GroupName: Full Bandwidth
Attribute: Idle-Timeout
op: =
Value: 600

id: 9
GroupName: Full Bandwidth
Attribute: Acct-Interim-Interval
op: =
Value: 60

id: 10
GroupName: Full Bandwidth
Attribute: WISPr-Redirection-URL
op: =
Value: http://www.google.com/

И краткая расшифровка:
Session-Timeout — время в секундах сессии, до разрыва, когда пользователю необходимо будет перелогиниться
WISPr-Redirection-URL — страница куда будут попадать пользователи после открытия сессии, если оставить пустым то переадресация происходить не будет
WISPr-Bandwidth-Max-Up, WISPr-Bandwidth-Max-Down — максимальная скорость интернета на upload и download.

Надеюсь у вас все получилось и в итоге мы имеем готовый хотспот.:)

источник

Ubuntu Documentation

Content Cleanup Required
This article should be cleaned-up to follow the content standards in the Wiki Guide. More info.

Page too long
This article is too long, and should be split into sub-articles. More info.

Introduction

Chillispot is software which prov >Fi) networks.

For instance, suppose you are managing a wireless network in a hotel: the access points are connected via the wired LAN to a server which works as a gateway, firewall, DNS server, etc. Now you want the same server (either because it’s desirable or because it’s required by your nation’s law) to require authentication from all clients, possibly without messing around with the configuration of the access points. And maybe you even want users to be able to browse some sites (i.e. an internal web server of copper sinks site) without the need to authenticate themselves. Chillispot lets you manage all of this, and some more.

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

Please take a look at the Chillispot.info web site to see how the software works. In a few words, Chillispot creates a virtual private network (192.168.182.0/24, but you can change this default setting) which it uses to dialogate with the clients and to dec >

As of mid 2007, ChilliSpot appears to be dead. The developer Jens Jacobsen had vanished, and the chillispot.org domain lapsed, but chillispot.info is a copy (with ads inserted) of the original site. CoovaChilli has forked from ChilliSpot 1.0 and its development also continues with an active user-base.

Notes

The ip address number 192.168.1.73, which you’ll find in this document, refers to the PC where you run chillispot, then modify it with the ip address of YOUR local machine. Remember you have to DISABLE DHCP if enabled on your router.

Requirements

The following software is required for this installation:

Free Radius 1.0.x-2.1.x
Apache 2.x

Apache 1.x and My Sql 4.0.x or even 3.23.x would probably do, but the above specified versions are the latest stable ones available so you’re encouraged to stick to them.

This tutorial will show how to run all this software on a single machine. However, you could install Apache and MySQL on a separate one, or even have 4 different machines: you’ll just need to adjust the configuration parameters of each piece of software.

Also, you’ll need your kernel configured for generic tunneling support (and for NAT probably but that will not be covered here). A 2.6.x kernel version is recommended.

Kernel configuration

Chillispot create a VPN, that is to say an IP tunnel. Your kernel must support this: if you’re using software such as OpenVPN chances are you’re already fine. Anyhow, take a look at the following section in your kernel configuration (run the command ‘modconf’): Linux Kernel Configuration: TUN/TAP support

tun [Universal TUN/TAP device driver support] —>

You can either compile the TUN/TAP support ins >

To have the module automatically load on reboot you will need to add «tun» to the modules file

You’ll probably also need to enable IP masquerading, NAT or what is necessary in order to let the VPN clients surf the outs >

Port Forwarding

Installing the software

Apache and MySQL

I assume you already installed Apache and MySQL, or — if not — that you are able to do that. If this is not the case, there are plenty of tutorial out there on how to accomplish these tasks. One option is to use tasksel and select «LAMP server»

The only important thing to do is to enable SSL features for apache. Apache configuration (See Apache SSL section below)

Chillispot

FreeRadius

You can install it from repos:

Chillispot configuration

Chillispot configuration res >

Let’s discuss the file in detail.

Radius section

You need to specify two radius servers even if you only have one. Of course, you can enter the same server in both lines. In this case it’s localhost, as FreeRadius is on the same machine of Chillispot.

The radiussecret directive contains a (secret) word which must match the one contained in the FreeRadius configuration file. This secret ensures we are allowed to make queries to the radius server. We’ll se the radius configuration part later on.

Networking section

You need to specify the IP address of the DNS server, which will be told to clients as well. The local machine’s one will be fine if the machine operates a DNS service, otherwise enter another one such as you prov >

The interface to be specified is the one where the access points res >

UAM section

The above line states which hosts the clients are allowed to connect without requring authentication. You must enter the IP address of the gateway (both the VPN address and the LAN address — This is very important! In fact, you must list at least these two addresses here, otherwise the chillispot will not work!), the IP address of the DNS server (if it’s on another machine) and any other hosts you want.

This is the (secure) URL of the script which displays the login interface and manages the login. We’ll discuss this further in the Apache configuration section.

This is the page where all clients will be redirected when they try to surf a web site which is not in the uamallowed list. This is quite handy, as you don’t need to prov >

This is the shared secret between chillispot and hostspotlogin.cgi, which ensures that the CGI script is allowed to talk to Chillispot. It’s different than the radius secret, but you can also set them all alike (not recommended, of course).

Apache configuration

Apache (or any other webserver you like) handles the welcome page and the login requests, and therefore requires a bit of configuration.

As told before, SSL support is required by Chillispot (if you don’t have it, the login manager will complain and not work). When dealing with usernames and password and encryped connection is a good >

At this point there are several options. What I d >

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

The Chillispot server bound to port 3990 will redirect the browser to whatever you specified in the uamserver line of /etc/chilli.conf. In this case it’s:

The hotspotlogin.cgi manages the actual login. The good thing is that you don’t have to write it from scratch. Just type in:

This presumes your Apache is configured to run cgi-scripts of course.

There’s only one change needed for hotspotlogin.cgi: locate the $uamsecret assignement at the top of the file and set it to the value of uamsecret in /usr/lib/cgi-bin/hotspotlogin.cgi. In our example:

You can then edit this file at your pleasure to customize the appearence of the login screen.

FreeRadius configuration

Authentication

FreeRadius is a complex piece of software but (luckily) the features needed for a basic or even common setup are a few, and therefore also the configuration is fairly straightforward.

The first file to look into is /etc/freeradius/clients.conf. You need to have something like this into it:

There should already be a client 127.0.0.1 section uncommented, so you may just need to edit that one. If you’re not connecting from localhost you can vary the IP address accordingly, or even specify a >

The next file to edit is /etc/freeradius/sql.conf. It is already preconfigured for MySQL, but you can change it to work with Postgres, Oracle or MS-SQL. The other options are fairly intuitive, in the sense that you only have to specify the login data for the MySQL server and database. You can leave the remaining settings alone. In my example I have:

The last file which requires some modification is /etc/freeradius/radiusd.conf. Browse the file, look for the sql directive in the authorize section, and uncomment it: this is needed in order to have FreeRadius use the SQL module for authentication.

Be sure to restart FreeRadius after these changes

Accounting

FreeRadius comes already preconfigured for accounting, and it stores that information in files under the /var/log/radius/radacct directory. However. you might want to configure it to use MySQL instead of files for accounting also. To accomplish this task look for the accounting section in /etc/freeradius/radiusd.conf. It should be configured like this:

(I stripped all the commented stuff out)

I added the sql option, which causes FreeRadius to store accounting information on the table radacct of the SQL database it uses.

  • I removed the detail option, so that it doesn’t log that information on files anymore. You can leave this where it is if you want both logs.
  • MySQL configuration

    FreeRadius requires a MySQL database with a predefinied structure where to look for user/password pairs and (if desired) store accounting information. Log into the MySQL client with root privildges and launch the following commands, or a variation of them which suits your needs:

    Then import the SQL schema:

    If this way doesn’t work for you, just import the above file through phpmyadmin.

    As you will see, this creates several tables. You probably just need to use one of those: radcheck. This table has the following structure:

    That should be enough. You can then use whatever client or interface you want to populate the users database.

    Firewall configuration (easy way)

    you also might need this (I’m not sure)

    [Reconfigure ipmasq to start after networking has been started]

    Firewall configuration (difficult way) [to be skipped if you followed the easy way]

    Note: Type all the following commands in a root terminal, DO NOT use sudo.

    The services you’re going to use require you to open a few ports on your firewall. This HOWTO assumes you have already protected your computer somehow, and therefore only lists the changes you need to do.

    You basically need to do the following:

    Open port 1812/UDP to 127.0.0.1 (probably all ports are already open to localhost): this is the port FreeRadius listens to, and Chillispot connects to it using that.

  • Open port 67/UDP to the VPN (probably the tun0 interface): this is used by Chillispot DHCP server to get requests for IP address registration.
  • This can change very much depending on your configuration, but if you stick to this example that’s it. You’ll probably also want to configure NAT at this point.

    In order to enable packet forwarding you should change the following line in /etc/network/options:

    Then you have to restart networking:

    where ethX is the network card and 1.2.3.4/56 is your desired server IP address with prefix length (Usually 192.168.0.1/24 is used)

    where ethX is the network card that the Internet is coming from

    Apache2 SSL

    Generate the certificate

    If you are running a 7.04 distribution you may execute the folowing command.

    источник

    Популярные записи

    Установка бруса для теплицы из поликарбоната
    Установка акустики в сандеро степвей 2015
    Установка варочной панели вровень со столешницей
    Установка автокресла изофикс в ниссан кашкай
    Установки для крекинга аммиака
    Установка больших люстры в натяжном потолке

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

    Adblock
    detector