Операторы могут предоставлять доступ в сеть даже без беспроводного контроллера. Отвечать за авторизацию абонентов будет модуль LBHotel.
LBHotel принимает данные, которые абоненты ввели в форме авторизации.
Отправляет запрос к RADIUS-серверу.
В случае положительного ответа — добавляет IP-адрес в специальную цепочку брандмауэра iptables. У абонента появляется доступ в интернет.
Этот вариант подойдёт только в том случае, если в качестве основного шлюза в интернет используется маршрутизатор с ОС Debian или CentOS. Маршрутизатор может быть как выделенным сервером, так и тем же сервером, на котором функционирует LANBilling.
Установите модуль авторизации LBHotel.
Настройте агент.
Настройте модуль.
В личном кабинете перейдите на вкладку «Загрузки».
Нажмите в строке с пакетом lbhotel. Если такого пакета нет, обратитесь в техподдержку.
Сохраните пакет на сервер, где будете устанавливать модуль. В этой инструкции предполагается, что пакеты хранятся в директории /root/
.
Перейдите в консоль сервера. Установите пакет модуля LBhotel. Пример:
dpkg -i lbhotel*.deb
``
Добавьте сервис в автозагрузку:
systemctl enable lbhotel
``
Перейдите в консоль сервера. Установите пакет модуля LBhotel. Пример для CentOS 8:
rpm -ivh /root/lbhotel*.rpm
``
Добавьте сервис в автозагрузку:
systemctl enable lbhotel
``
Добавьте агент и задайте параметры:
Флаг «Сохранять только последнюю неудачную попытку авторизации» — включить
Флаг «Выделять адреса динамически из пула» — отключить
Флаг «Не отправлять атрибут Framed-IP-Address с пустым значением» — включить
Флаг «Запускать handler при изменении текущей скорости» — включить
«Тайм-аут зависшей сессии (сек)» — 300 секунд
Добавьте сервер доступа с настройками:
В конфигурационном файле lbhotel.conf
задайте настройки.
Откройте файл конфигурации:
nano /etc/lbhotel.conf
``
Укажите локальный сетевой интерфейс маршрутизатора:
lan_interface=eth0
``
Укажите внешний сетевой интерфейс маршрутизатора:
wan_interface=eth1
``
Введите секрет, который ранее был указан в настройках NAS:
# RADIUS shared secret
sharedsecret=captive-secret
``
Если компонент LBHotel функционирует на отдельном сервере, измените настройки соединения с LBcore и сервером RADIUS. По умолчанию подразумевается, что все компоненты решения работают на одном сервере:
# LBcore server IP[:port]
lbcore_host=127.0.0.1
# RADIUS server to use for authentication requests.
authserver=127.0.0.1:1812
# RADIUS server to use for accouting requests.
acctserver=127.0.0.1:1813
``
Вы можете разрешить принудительную остановку активных сессий из административного интерфейса LANBilling.
Сделайте копию скрипта остановки сессий. По умолчанию пример handler-скрипта находится в /usr/local/billing/handler.lbhotel.vgstop.sample.sh
.
cp /usr/local/billing/handler.lbhotel.vgstop.sample.sh /usr/local/billing/handler.lbhotel.vgstop.sh
``
Откройте конфигурационный файл модуля LBarcd:
nano /etc/billing.conf.LBarcd
``
Раскомментируйте параметр handler и укажите путь к скрипту остановки сессий:
# External script handler
handler = /usr/local/billing/handler.lbhotel.vgstop.sh
``
Перезапустите LBarcd:
systemctl restart lbarcd
``
Запустите LBHotel:
systemctl start lbhotel
``
После запуска LBHotel система автоматически создаст специальные цепочки iptables, отвечающие за перенаправление пользователей на портал и за ограничение доступа к сети:
*nat
:PREROUTING ACCEPT [1142766:363010838]
:INPUT ACCEPT [27260:1765101]
:OUTPUT ACCEPT [482:31585]
:POSTROUTING ACCEPT [446:30270]
:lbhotel_prerouting — [0:0]
-A PREROUTING -j lbhotel_prerouting
-A lbhotel_prerouting -i eth0 -p tcp -m multiport —dports 80,443 -j REDIRECT
*filter
:INPUT ACCEPT [69015737:13858002160]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [68889252:13858019177]
:lbhotel_filter — [0:0]
-A FORWARD -j lbhotel_filter
-A lbhotel_filter -i eth0 -p udp -m udp —dport 53 -j ACCEPT
-A lbhotel_filter -i eth0 -j DROP
*mangle
:PREROUTING ACCEPT [70161272:14221345519]
:INPUT ACCEPT [69015737:13858002160]
:FORWARD ACCEPT [10245:928625]
:OUTPUT ACCEPT [68889252:13858019177]
:POSTROUTING ACCEPT [68895354:13858679602]
:lbhotel_shaper — [0:0]
-A FORWARD -j lbhotel_shaper
Значение полосы пропускания может быть задано в тарифе или индивидуально для каждого абонента. Чтобы это значение было передано на сервер доступа LBHotel с помощью RADIUS-атрибута Reply-Message
, настройте модуль LBHotel и LANBilling.
В конфигурационном файле lbhotel.conf
раскомментируйте параметры script_start
и script_stop
и измените значение переменной use_shaper
на «yes»:
use_shaper=yes
script_start=/usr/local/billing/script.on
script_stop=/usr/local/billing/script.off
``
Перезапустите модуль:
systemctl restart lbhotel
``
Сконфигурируйте RADIUS-атрибуты для всех используемых значений полосы пропускания по инструкции.
После того как вы завершите настройку системы, запустите модуль LBhotel:
systemctl start lbhotel
Можно использовать другие команды для управления модулем.
Остановить:
systemctl stop lbhotel
Перезапустить:
systemctl restart lbhotel
Проверить состояние:
systemctl status lbhotel
Есть вопросы по документации? Пожалуйста, напишите их