Готовые образы виртуальных машин
Данная страница устарела. Рекомендуется воспользоваться более новой версией: Готовые образы виртуальных машин.
Вы можете скачать и развернуть у себя готовый образ виртуальной машины с предустановленным биллингом для первого знакомства, демонстрации и/или тестирования. В данных образах представлен полнофункциональный BGBilling с тестовой лицензией, ограничение лишь в максимальном количестве используемых договоров.
Однако в образах изначально установлены и настроены лишь некоторые модули биллинга. После развертывания Вы легко можете установить дополнительные модули и плагины.
Развертывание
Удостоверьтесь, что на машине, где Вы будете развертывать систему в BIOS/EFI разрешена виртуализация, иначе скорость работы виртуальной машины может быть неудовлетворительной.
Установите на машину-хост VirualBox (для Windows/OS X/Linux) или qemu-kvm, qemu-system-x86-64 и virt-manager (для Linux) .
Вы можете выбрать одну из двух операционных систем, на которых предустановлен биллинг: CentOS 7 или Debian 8. Скачайте образы дисков для выбранной виртуальной машины: .vdi для VirtualBox или .qcow для qemu-kvm, и для выбранной ОС: centos.vdi (.qcow) или debian.vdi (.qcow). Скачайте образ с дистрибутивом биллинга - billing.vdi (.qcow).
Создайте новую виртуальную машину, выбрав подходящий тип и версию ОС. Необходимый минимальный оперативной объем памяти 1.5GB, укажите существующий образ диска: centos.vdi(.qcow) или debian.vdi(.qcow).
Рекомендуемая конфигурация сети - сетевой мост - таким образом виртуальная машина будет представлена в Вашей внутренней сети как отдельный хост. Такой режим удобен для дальнейшего тестирования. Если с созданием сетевого моста возникли сложности, Вы можете указать тип конфигурации NAT и при необходимости настроить проброс портов или же настроить маршрутизацию.
Перед запуском виртуальной машины в её конфигурацию нужно добавить второй образ диска - billing.vdi(.qcow).
Удалите/отключите звуковое/аудио устройство.
Запустите виртуальную машину.
Залогиньтесь под пользователем bgbilling с паролем bgbilling. Для получения прав суперпользователя на CentOS выполните su и введите пароль bgbilling, на Debian выполните sudo -i и введите пароль bgbilling.
В директории /opt должны быть папки bgbilling, java и другие. Это означает, что образ billing.vdi(.qcow) подключился правильно.
Т.к. образ billing.vdi(.qcow) может использоваться для обоих систем, возможно владелец директории /opt/mysql-data после первоначального монтирования указан неверно. Выполните
[root@bgserver ~]
# chown -R mysql:mysql /opt/mysql-data
Перезапустите виртуальную машину.
Залогиньтесь и выполните для CentOS:
[root
@bgserver
~]# ip address show
или для Debian:
[root
@bgserver
~]# ifconfig
чтобы узнать текущий IP-адрес машины, далее x.x.x.x.
Изначально порт ssh (22) и порт для подключения клиента биллинга (8080) открыты только для подсети 192.168.0.0/16. На порту 80, открытом для всех, запущен nginx, который проксирует запросы на 127.0.0.1:8080, разрешая запросы только в личный кабинет абонента, запрещая все остальные. Статические файлы (css, png, js и т.п.) в текущей настройке nginx отдает напрямую (в конфигурации также представлен пример полного проксирования через 127.0.0.1:8080).
Приложения биллинга расположены в директории /opt (в отличие от документации, где обычно предлагается использовать папку /usr/local). Там же расположена директория данных MySQL.
Т.к. в виртуальной машине возникали проблемы с /dev/random (отрабатывало очень долго), в файле /opt/java/jdk1.8.0_45/jre/lib/security/java.security изменено значение параметра securerandom.source c file:/dev/random на file:/dev/urandom (менее безопасный генератор случайных значений).
Особенности образа CentOS 7
На данном образе разрешено логиниться под пользователем root.
В качестве фаервола используется firewalld.
В качестве менеджера служб - systemd.
Описания служб находится в /usr/lib/systemd/system.
MariaDB 10.0 установлена из репозитария MariaDB.
Самый простой способ изменить внутреннюю подсеть, для которой разрешены порты 22 и 8080 - это отредактировать файл /etc/firewalld/zones/internal.xml, изменив ветку source:
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
zone
>
<
short
>Internal</
short
>
<
description
>For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only
<
source
address
=
"192.168.0.0/16"
/>
<
service
name
=
"ipp-client"
/>
<
service
name
=
"mdns"
/>
<
service
name
=
"dhcpv6-client"
/>
<
service
name
=
"samba-client"
/>
<
service
name
=
"ssh"
/>
<
port
protocol
=
"tcp"
port
=
"8080"
/>
</
zone
>
И затем вызвать:
[root
@bgserver
~]# firewall-cmd --reload
Особенности образа Debian 8
В качестве фаервола используется iptables.
В качестве менеджера служб - systemd.
Описания служб находится в /lib/systemd/system.
MariaDB 10.0 установлена из репозитария Debian.
Правила iptables настроены с помощью исполняемых командных файлов /root/iptables.sh и /root/ip6tables.sh. Чтобы изменить внутреннюю подсеть, для которой разрешены порты 22 и 8080 отредактируйте /root/iptables.sh и запустите его.
Debain использует пользователя MySQL(MariaDB) debian-sys-maint, который создается при установке MySQL, для запуска и остановки MySQL с помощью служб. В текущей БД такой пользователь отсутствует (однако при включении виртуальной машины MariaDB стартует нормально), поэтому его необходимо создать (пароль должен совпадать с тем, что в /etc/mysql/debian.cnf):
GRANT
ALL
PRIVILEGES
on
*.*
TO
'debian-sys-maint'
@
'localhost'
IDENTIFIED
BY
'password'
WITH
GRANT
OPTION
; FLUSH
PRIVILEGES
;
Службы
При загрузке системы включены сервисы mysql.service (MariaDB), activemq.service (ActiveMQ), bgbilling.service (BGBillingServer - сервер биллинга) и bgscheduler.service (BGScheduler - планировщик заданий).
У пользователя root MySQL установлен пароль bgbilling.
Обзор
После перезагрузки по URL http://x.x.x.x должен открыться личный кабинет абонента (происходит редирект на http://x.x.x.x/bgbilling/webexecuter). Если фаервол настроен корректно, то ЛК также должен быть доступен по URL http://x.x.x.x:8080/bgbilling/webexecuter, т.е. на порту 8080. Параметры входа для личного кабинета - логин: 10000010 (номер тестового договора) и пароль: 123456.
Скачайте и установите клиент биллинга, укажите URL в client.properties http://x.x.x.x:8080/bgbilling/executer и запустите его. В окне логина установите галочку "загружать обновления с этого сервера" и нажмите ОК. В первый раз клиент биллинга загрузит библиотеки модулей и попросит перезапустить его.
Или же на машине, где будет запускаться клиент биллинга в контрольной панели Java на вкладке безопасность добавьте в список исключений http://x.x.x.x/bgbilling/ и откройте в браузере URL http://x.x.x.x:8080/bgbilling/client/bgclient.jnlp - клиент биллинга должен запуститься через Java Web Start.
При работе некоторых антивирусов некоторые вкладки могут очень долго открываться. Это происходит, когда антивирус пытается проверять интернет-трафик, нарушая при этом работу SOAP-протокола Web-сервисов, через который клиент биллинга обращается к серверу биллинга. Если такое странное поведение наблюдается - рекомендуем добавить IP-адрес сервера биллинга в исключения в настройках Вашего антивируса.
Например, для ESET NOD32 необходимо открыть расширенные настройки ESET Smart Security, выбрать раздел "Интернет и электронная почта" - "Фильтрация протоколов" - "Исключенные IP адреса" и добавить в список адрес сервера.
Рекомендуется включить в конфигурации биллинга параметры:
# Логирование действий в журнале событий, 0 - не логировать
bgsecure.log=
1
# Логирование Web-запросов пользователя (Web-интерфейс)
webquery.log=
1
Модуль Inet
Для обработки RADIUS и/или DHCP-запросов может потребоваться изменение настроек фаервола. В "особенностях образа" описано как можно открыть определенные порты.
В модуле Inet данного образа уже настроено несколько примеров различных распространенных схем.
Access+Accounting: IPoE
Сервера приложений InetAccess и InetAccounting расположены в директории /opt/bgbilling/inet-ipoe/, сервисы systemd: inet-ipoe-access и inet-ipoe-accounting. Для данной ветки устройств с минимальными изменениями конфигурации возможно запустить схемы IPoE IP Subscriber, SmartEdge CLIPS. DHCP-запросы могут обрабатываться как сторонним сервером (биллинг не контролирует выдачу IP-адресов), так и InetAccess (биллинг контролирует выдачу IP-адресов, можно выдавать динамические или статические, белые или серые адреса в зависимости от настроек, баланса или статуса договора), причем в двух режимах - когда ASR/SE инициирует сессию по DHCP-запросу ( DHCP DISCOVER packet ), и когда DHCP-запросы приходят с коммутаторов, а ASR/SE инициирует сессию по IP-пакету ( Unclassified source MAC address, в Access-Request приходит User-Name="IP-адрес_абонента", в биллинге отображаются две сессии - DHCP и IP Subscriber).
Поддерживается тарификация и управление ISG/SE-сервисами, их переключение в реальном времени в зависимости от необходимой скорости соединения абонента или других параметров.
Access+Accounting: ISGServiceAccess
Сервер приложения InetAccess расположен в директории /opt/bgbilling/isg-access/, сервисы systemd: isg-access. Данная ветка с отдельным приложением Access+Accounting предназначена для выдачи описания ISG-сервисов для Cisco по RADIUS. См. также http://wiki.bitel.ru/index.php/Справочник Cisco-ISG сервисов.
Access+Accounting
Сервера приложений InetAccess и InetAccounting расположены в директории /opt/bgbilling/inet/, сервисы systemd: inet-access и inet-accounting.
SNMP Agent - сбор трафика по SNMP, тарификация по статическому интерфейсу.
Flow Agent - сбор трафика по Netflow/sFlow, тарификация по статическому адресу или подсети.
MPD - PPPoE/PPtP с управлением через RADIUS/CoA, возможна тарификация по Netflow/sFlow с помощью Flow Agent (привязка трафика по адресу сессии в реальном времени).
FreeBSD - шейпер, с управлением по SSH в реальном времени для активных сессий устройств, расположенных внутри этой ветки (в образе настройка на данный момент пока отсутствует, ветка добавлена для примера).
Коммутаторы - предоставление доступа по схеме DHCP Option 82, выдача статических или динамических, белых или серых адресов в зависимости от статуса, баланса и др. параметров договора или настроек аккаунта. Возможно управление через telnet/SSH/SNMP.
Cisco ASR: asr-bras - PPPoE/PPtP с управлением через RADIUS/CoA с поддержкой тарификации и управления ISG/SE-сервисами, а также тарификацией по Netflow.
Возможны многие другие схемы предоставления и управления доступом в интернет. Если возникли проблемы с настройкой Вы всегда можете обратиться на бесплатный форум, в helpdesk или задать вопрос в комментариях к данной статье.
Новый личный кабинет
В образ также включена бета-версия нового личного кабинета. Новый личный кабинет является отдельным приложением. Чтобы зайти в него нужно запустить сервис wildfly (JBoss). При этом BGBillingServer (bgbilling.service) тоже должен быть запущен.
[root
@bgserver
~]# systemctl start wildfly.service
После запуска wildfly по пути http://x.x.x.x/my/ откроется новый личный кабинет. Параметры входа для личного кабинета - логин: 10000010 (номер тестового договора) и пароль: 123456.