Новости — февраль 2021
С момента прошлой публикации в программе произошли следующие изменения:
- Изменения в веб-интерфейсе Easyhotspot («черной админке»);
- Обновления и изменения страницы авторизации
- Обновления и исправления скрипта-инсталятора
- Обновления и исправления прочих скриптов
- Изменения в документации
Изменения в веб-интерфейсе Easyhotspot («черной админке»)
- Исправлен алгоритм функции «авто-логина»: если по заданному mac-адресу биллинг выдает какой-то ваучер, но у него истек «срок годности», то поиск аккаунта продолжается и дальше, только теперь он уже ведется по списку «клиентов с оплатой по счету». Причем, «когда-то давным-давно» все именно так и было, но на каком-то из этапов обновлений алгоритм этот был порушен;
- В меню полной очистки базы данных добавлена сводка о том, сколько места на жестком диске занимает каждая из таблиц:
- Написана новая функция биллинга — сбор информации о посещенных клиентами ресурсах (сайтах). Для этого используется протокол NetFlow. Это специальный протокол, разработанный компанией Cisco Systems, и предназначенный для учёта сетевого трафика. На сегодняшний день он «де-факто» является промышленным стандартом и поддерживается не только оборудованием Cisco, но и устройствами многих других изготовителей (например, Mikrotik). Кроме того, существует свободное П/О для работы с этим протоколом, написанное для *NIX-систем. Более подробная информация представлена в этом документе. А ниже — несколько скриншотов по этому поводу:
- В биллинг добавлена новая возможность — назначать Тарифным пакетам не «общий» лимит, а «суточный». В этом случае, Номинал ваучера будет ограничивать клиенту объем услуги доступа в интернет В ТЕЧЕНИЕ ТЕКУЩИХ СУТОК! В «суточный» учет попадают все сеансы, начатые в «текущие сутки» (т.е., с 00:00:00 и по 23:59:59 включительно). «Посуточным» может быть установлен лимит для любого «Номинала», вне зависимости от выбранного для него «Типа учета» — как в минутах, так и в Мегабайтах.;
«Увидела свет» новая (8-я) версия языка PHP! Проверка веб-интерфейса Easyhotspot на совместимость с ней тут же вынудила меня выполнить ряд дополнительных изменений и обновлений:
- Пришлось исправить пару ошибок синтаксиса («плоды моей невнимательности»), которую предыдущие версии PHP тупо не замечали (а может игнорировали?);
- Плагин dompdf пришлось обновить до версии 1.0.2 («самой свежей» на сегодняшний день). И ведь обновлял-то его я совсем недавно, ан нет!.. Параллельно, был слегка «подрихтован» код файлов с макетами ваучеров (CSS-стили были вынесены в отдельный файл, чтоб «по феншую» все было ☺);
- А вот от использования PHPExcel пришлось отказаться полностью (плагин заброшен с 2015 года, и править его под 8-й PHP, по всей видимости, никто уже не собирается)! Вместо него для формирования XLS-файлов в Easyhotspot была установлена другая библиотека — PhpSpreadsheet (она все еще в работе, в развитии, не заброшена, 8-й PHP поддерживает, и т.д., и т.п.). (Кстати, на сайте PHPExcel именно эту библиотеку и рекомендуют использовать вместо своей устаревшей). Остается лишь надеяться, что ее тоже не забросят через денек-другой ☺;
В итоге — теперь у Easyhotspot-а все хорошо с 8-м PHP — и PDF-ники генерятся, и XLS-ы выгружаются:
Изменения и исправления в странице авторизации
- Исправлена ошибка, внесенная в скрипт страницы авторизации на этапе добавления в нее формы для «пост-активации бумажных ваучеров по СМС». Ошибка проявлялась лишь в том случае, если у страницы одновременно были включены и «пост-активация по СМС», и «СМС-авторизация». Ошибка заключалась в том, что при такой настройке на странице появлялись два разных html-элемента, имеющих один и тот же ID (два разных input-а в двух разных формах для ввода номера телефона клиента имели одинаковый ID);
- Исправлена ошибка, закравшаяся в скрипт страницы авторизации для Chillispot/Coova-Chilli на каком-то из этапов ее редактирования, а именно — был возвращен на место правильный адрес, по которому должен отсылаться запрос в случаях, когда клиент нажимает кнопку «Отключиться». На каком-то из этапов из ссылки «пропал» номер порта (естественно, не без моего участия), благодаря чему после нажатия кнопки «Отключиться» браузер выдавал клиенту ошибку 404 («Страница не найдена»);
- Написан скрипт внешней страницы авторизации для работы с контроллерами Cisco WLC (благодаря чему, данный класс оборудования теперь может полноценно использоваться в качестве «удаленных роутеров», работающих под управлением Easyhotspot).
Обновления и исправления скрипта-инсталятора
- Был полностью изменен алгоритм настройки (а при необходимости — и создания) пароля пользователя root для сервера баз данных MySQL. Процедура стала и проще, и логичней. Теперь, первым делом, скрипт проверяет — может ли пользователь root попасть в консоль сервера MySQL БЕЗ ВВОДА ПАРОЛЯ (а именно так и обстоит дело в современных релизах Debian и Ubuntu — сразу же после установки базы доступ в нее для root-а ОТКРЫТ ПОЛНОСТЬЮ!). Если все именно так и есть (т.е., пользователь root может управлять сервером MySQL, не вводя пароль), скрипт предлагает человеку, устанавливающему биллинг, придумать свой собственный новый пароль и ввести его:
Человек вводит пароль, и больше скрипт-инсталятор уже не возвращается к этому вопросу (сам закрывает беспарольний доступ, сам «молча» создает базу данных для биллинга).
С другой стороны, ведь возможны и такие ситуации, при которых сервер MySQL на компьютере уже был «кем-то» заранее предустановлен (например, вы устанавливаете биллинг на VPS/VDS, арендуемый у хостера, и хостер уже «залил там полный фарш!»). И может так статься, что этот «кто-то» и пароль для пользователя root уже создал, и в базу заходить без пароля — тоже уже запретил! Что же делать тогда-то?
В подобной ситуации результат проверки, описанной выше, будет иным — скрипт-инсталятор просто сообщит вам, что войти в базу без пароля root ему не удалось («не пустой пароль» уже был задан):
Но для того, чтобы создать базу данных биллинга, скрипту все-равно понадобится этот пароль! Следовательно — пользователю нужно предоставить возможность ввести его! И скрипт-инсталятор предлагает человеку сделать это (ввести пароль, который ему должен быть известен), но только теперь это происходит уже непосредственно в момент создания базы данных программы Easyhotspot:
Обновления и исправления прочих скриптов
- Изменен скрипт проверки системы (тот, который проверяет — запущены ли требующиеся для работы биллинга демоны). Изменения были навеяны попыткой установки и запуска биллинга в docker-е. В результате был изменен порядок проверки демонов — первым теперь проверяется MySQL, затем Apache и уже потом — FreeRADIUS. Для «обычного» сервера (установленного как на реальной «железяке», так и на «виртуалке») порядок данной проверки был не настолько критичен, как в случае docker-а. В последнем варианте (при старом варианте порядка проверки) возникала длительная пауза при старте системы — скрипт определял, что FreeRADIUS не работает, и пытался запустить его. Но MySQL также еще не запущен в этот момент времени. В итоге — запуск FreeRADIUS-а завершался ошибкой, т.к. радиус не мог подключиться к базе данных, и скрипт делал небольшую паузу, после чего снова пытался запустить радиус. И так — по кругу 30 раз подряд! Лишь потом скрипт проверял — «А что ж там с MySQL?», видел, что тот тоже остановлен, и запускал его. И лишь после этого, НО УЖЕ ПРИ СЛЕДУЮЩЕЙ ПРОВЕРКЕ скрипту таки удавалось запустить FreeRADIUS;
- Изменен скрипт очистки логов сервера FreeRADIUS (тех, которые попадают в папку /var/log/freeradius/radacct). Теперь скрипт файлы старее установленного значения не удаляет, а архивирует (утилитой gzip). А удаляются лишь те файлы, которые «старее» чем 365 дней;
- Был исправлен ряд скриптов, управляющих файерволом Easyhotspot-а в том случае, если контроллер хотспота (Coova-Chilli) устанавливается непосредственно на сам сервер. Причиной послужило изменение месторасположения бинарных файлов iptables, iptables-save и iptables-restore в дистрибутиве Ubuntu 20.04 LTS. Ранее в скриптах был «жестко» прописан «путь» к данным файлам (например — /sbin/iptables). И скрипты корректно работали в старых версиях ОС, где файлы располагались именно в указанной папке. Но в Ubuntu 20.04 LTS данные файлы «переехали» в другую папку, и в итоге — скрипты не срабатывали. Теперь вместо «жесткого» пути используется конструкция а-ля
$(which iptables)
. В итоге, теперь реальный путь к «бинарнику» скрипту сообщает сама система (ОС), что позволяет использовать их без оглядки на версию дистрибутива.
Изменения в документации
Обновлена инструкция «Программа управления Wi-Fi хотспотом - Easyhotspot, Руководство по эксплуатации»:
- В инструкцию добавлены разделы о работе с информацмей, собранной биллингом по протоколу NetFlow (сведения о сайтах, посещенных клиентами хотспотов);
- Добавлена вся необходимая информация о включении, настройке и использовании «посуточного режима учета» для ваучеров;
- Добавлена таблица расшифровки смысла сообщений о причинах завершения сеансов клиентов (т.н. Acct-Terminate-Cause);
- С целью повышения удобства работы с документом, номера рисунков в тексте преобразованы в «кликабельные» ссылки — при щелчке по номеру вы переходите непосредственно к указанному рисунку;
Обновленная инструкция доступна по ссылке:
«Программа управления Wi-Fi хотспотом - Easyhotspot, Руководство по эксплуатации»
Обновлена инструкция «Процедура быстрой установки программы EASYHOTSPOT»:
- В инструкцию добавлены разъяснения по поводу добавленных в скрипт-инсталятор вопросов про установку «сенсора» и «коллектора», используемых для работы с NetFlow данными;
- Обновлено описание процедур ввода пароля пользователя root для сервера баз данных MySQL и последующего создания базы данных программы (теперь оно соответствует внесенным в инсталятор изменениям);
- С целью повышения удобства работы с документом, номера рисунков в тексте преобразованы в «кликабельные» ссылки — при щелчке по номеру вы переходите непосредственно к указанному рисунку;
Обновленная инструкция доступна по ссылке:
«Процедура быстрой установки программы EASYHOTSPOT»
Просмотреть все эти изменения в действии можно на сайте демо-версии модифицированной программы Easyhotspot (логин/пароль Кассира: vcool/vcool123, логин/пароль Администратора: admin/admin123)
На всякий случай, напоминаю, что все эти изменения относятся именно к модифицированной версии программы Easyhotspot, которую можно приобрести на странице онлайн-продажи.
Список предыдущих анонсов новостей программы Easyhotspot доступен тут.