Страница 1 из 3

Настройка гостевого доступа

Добавлено: 09 янв 2012, 12:11
Dmitry
Когда в программе активирован режим "Гостевого доступ", на странице авторизации добавляется дополнительный блок, в котором выводится информация о тех лимитах, которые предоставляются клиенту, а также кнопка, которая позволяет клиенту войти в интернет (подписанная как "Demo Login"). Как это выглядит, показано на рисунке:
http://wifi-hotspot.zp.ua/wp/wp-content ... elogin.png

Как в общих чертах работает гостевой доступ. Если гостевой доступ включен, то при подключении клиента к хотспоту для него генерируется ваучер на основании специального тарифного пакета. Логин и пароль этого ваучера "помнит" сама страница авторизации. Когда клиент нажимает кнопку "Demo Login", страница авторизации сама отсылает серверу логин и пароль для гостевого доступа. Сервер принимает их и пускает клиента в интернет. При этом, лимиты доступа (максимальная продолжительность доступа или максимальное число "разрешенных" мегабайт, ограничения входящей/исходящей скоростей, и т.д.) определяется параметрами этого самого специального тарифного пакета.

Что нужно для использования режима гостевого доступа.
1. В первую очередь создать в программе Easyhotspot этот самый "специальный" тарифный пакет. "По умолчанию" он должен называться Free_ Demo_Voucher. Причем, называться именно так, как написано, с заглавными и прописными буквами, и с подчеркиваниями вместо пробелов.

ДОПОЛНИТЕЛЬНО: В том случае, если вам не нравится такое имя "специального" тарифного пакета, вы можете изменить настройку для страницы авторизации, чтобы она использовала иное имя, выбранное вами. Для этого введите команду

Код: Выделить всё

sudo mcedit /usr/lib/cgi-bin/conf.txt
В открывшемся файле найдите строку с параметром

Код: Выделить всё

free_acc = Free_Demo_Voucher
и смените имя тарифного пакета (то, которое после "=" ) на свое собственное. Не используйте в имени тарифного пакета (а) кириллицу, (б) спецсимволы, (в) пробелы. После этого создайте в программе тарифный пакет для гостевого доступа с именем, которое вы вписали в файл настроек.
Сохраните изменения в файле (кнопка F2) и выйдите из редактора (кнопка F10).

2. Далее. Нужно выбрать период сброса гостевого доступа. Что это такое. Так как "гостю" генерируется ваучер, то и обслуживание его происходит аналогично тому, как обслуживается любой пользователь ваучера. А именно - когда клиент израсходует номинал ваучера, хотспот отключает его от интернета. Причем, навсегда! Если такой вариант гостевого доступа вас устраивает (то есть клиент сможет побыть вашим "гостем" всего лишь один раз), то разбираться с этим самым сбросом вам ни к чему. С другой стороны, хотспот может быть настроен таким образом, что он будет самостоятельно периодически сбрасывать информацию о том, что клиент ранее уже пользовался гостевым доступом. После такого сброса клиент сможет снова подключиться к интернету, используя гостевой доступ. Период сброса - это время в минутах, по истечении которого с момента активации клиентом гостевого доступа, информация о этом будет сброшена, и клиент сможет воспользоваться гостевым доступом повторно. Пример: сутки - это 1440 минут. Если вы установите период сброса равным 1440 минут, то клиент сможет ПОВТОРНО воспользоваться гостевым доступом ровно через сутки после того, как воспользовался им в первый раз. Определившись с периодом сброса, пропишите его в настройку файла, выполняющего этот самый сброс. Для этого введите команду

Код: Выделить всё

sudo mcedit /usr/lib/cgi-bin/clear_query.pl
В открывшемся файле найдите строку с параметром

Код: Выделить всё

$reset_period = "60";
и укажите там свое собственное значение параметра (по умолчанию там указано 60 (минут)). Учтите, что цифра должна остаться в кавычках, а строка должна заканчиваться точкой с запятой.
Сохраните изменения в файле (кнопка F2) и выйдите из редактора (кнопка F10).

3. Теперь необходимо включить регулярный запуск скрипта сброса. Запуск скрипта рекомендую выполнять раз в 2...5 минут. Не стоит переживать, скрипт не сбрасывает всех подряд.Он сбрасывает только тех клиентов, у которых время, прошедшее с момента предыдущей активации гостевого доступа, превысило период сброса.
Чтобы настроить запуск скрипта, введите команду

Код: Выделить всё

sudo mcedit /etc/crontab
В редакторе допишите в конец файла новую строку:

Код: Выделить всё

*/5 * * * * root /usr/bin/perl /usr/lib/cgi-bin/clear_query.pl
Запись "*/5" означает "каждые 5 минут. Например, если вы хотите запускать каждые 2 минуты, напишите "*/2". В конце строки обязательно нажмите ввод, чтобы последней в файле была пустая строка.
Сохраните изменения в файле (кнопка F2) и выйдите из редактора (кнопка F10).

4. И напоследок осталось включить использование гостевого доступа в настройках самой страницы авторизации. Для этого введите команду

Код: Выделить всё

sudo mcedit /usr/lib/cgi-bin/loginpage
и добавьте в файл НОВУЮ строку, в которую впишите одно единственное слово "free".
Сохраните изменения в файле (кнопка F2) и выйдите из редактора (кнопка F10).

Если же впоследствии вы захотите отключить гостевой доступ, то просто удалите эту строку из указанного файла.

ВАЖНЫЕ ПРИМЕЧАНИЯ:
  • Все описанное выше действительно ТОЛЬКО ЛИШЬ для модифицированной версии программы Easyhotspot.
  • Поддержка гостевого доступа присутствует в странице авторизации, находящейся в архиве пристегнутом тут. Если вы получали инсталятор позже даты указанного сообщения, то в нем уже включена данная версия страницы авторизации. Косвенный показатель - наличие в вашей системе файла /usr/lib/cgi-bin/loginpasge .
  • Скрипт сброса, если его нет в вашей системе, можно взять из архива, пристегнутого тут.
  • Все, купившие программу ранее, в случае необходимости могут в любое время бесплатно заказать у меня обновленную версию инсталятора.

Re: Настройка гостевого доступа

Добавлено: 17 фев 2012, 08:27
dro_salevan
Обсуждали с Дмитрием вопрос неоднократного гостевого доступа с фиксированной паузой в 5 минут.

Соответственно в скрипте clear_query.pl надо сделать 2 изменения:

1.$reset_period = "5";
2. Заменить

Код: Выделить всё

$query02 = "SELECT radacctid,TIME_TO_SEC(TIMEDIFF(NOW(),acctstarttime)) FROM $radacct_table WHERE callingstationid='$mac' AND username='$mac' ORDER BY acctstarttime LIMIT 1";
на

Код: Выделить всё

$query02 = "SELECT radacctid,TIME_TO_SEC(TIMEDIFF(NOW(),acctstoptime)) FROM $radacct_table WHERE callingstationid='$mac' AND username='$mac' ORDER BY acctstarttime DESC LIMIT 1";
т.е. отсчет пойдет от времени когда юзер исчерпал лимит и его "сессия" остановилась.

+ по крону проверку надо выставить раз в минуту */1

Re: Настройка гостевого доступа

Добавлено: 17 фев 2012, 08:44
Dmitry
единственное дополнение - в cron */1 обычно не пишут. "*" итак означает "каждый". То есть. чтобы указать "каждую минуту" достаточно просто написать "*".

Re: Настройка гостевого доступа

Добавлено: 28 мар 2012, 23:15
Dmitry
Пробная версия страница авторизации, у которой в процедуре предоставления гостевого доступа используется защита от подмены мака.

ВАЖНО!

Скрипт использует модуль, который по умолчанию на сервере не установлен. По этому перед ее использованием ОБЯЗАТЕЛЬНО нужно установить недостающий модуль командой:

Код: Выделить всё

sudo apt-get install libdigest-sha1-perl
  1. Распаковываем скрипт в папку /usr/lib/cgi-bin вместо имеющегося там скрипта (старый неплохо бы сохранить для бакапа).
  2. Владельцем скрипта назначаем пользователя www-data (chown www-data имя_файла)
  3. Скрипт ОБЯЗАТЕЛЬНО делаем исполняемым (chmod +x имя_файла)
Что еще нужно добавить - клиентам, которые до смены скрипта страницы авторизации уже пользовались гостевым доступом возможно придется почистить куки...

Re: Настройка гостевого доступа

Добавлено: 31 мар 2012, 08:36
Dmitry
Что-то никто не пробует...... :(

Re: Настройка гостевого доступа

Добавлено: 04 апр 2012, 08:07
admin2
Опасно пробовать на рабочей системе)

Re: Настройка гостевого доступа

Добавлено: 04 апр 2012, 08:37
Dmitry
Ну на своей тренировочной я напробовал - показало, что работает :)

Re: Настройка гостевого доступа

Добавлено: 05 апр 2013, 10:32
Skydreem
Добрый день)
Вопрос-
1) а защита от подмены мака уже установлен в изихотспот по умолчанию?
2) Можно ли кнопку с бесплатным доступом перенести на свой сайт?
а- Какая это будет ссылка?
б- Нужно ли включать при этом бесплатный доступ на сервере или достаточно создания бесплатных тарифов?
в- И ещё как сделать чтобы они сразу перенаправлялись на нужную страничку в интернете..

Re: Настройка гостевого доступа

Добавлено: 05 апр 2013, 13:44
Dmitry
1. - да
2. - нет

в. - в параметр

Код: Выделить всё

# Адрес страницы переадрессации. Если страница указана,
# клиенты будут переходить после авторизации именно
# на нее. Чтобы клиенты переходили на свою запрошенную
# страницу, удалите значение параметра (после "равно")
redir =
в файле /usr/lib/cgi-bin/conf.txt
нужно вписать адрес после знака равно

Re: Настройка гостевого доступа

Добавлено: 05 апр 2013, 16:42
Skydreem
Мне нужно чтобы именно "бесплатники" переходили на мою статическую страничку, а те что с логином на свою запрашиваемую, вот так можно?)