Для работы настройте систему.
Добавьте агент и задайте параметры:
Флаг «Сохранять только последнюю неудачную попытку авторизации» — включить
Флаг «Выделять адреса динамически из пула» — отключить
Флаг «Не отправлять атрибут Framed-IP-Address с пустым значением» — включить
Флаг «Запускать handler при изменении текущей скорости» — включить
«Тайм-аут зависшей сессии (сек)» — 300 секунд
Добавьте сервер доступа с настройками:
Для управления скоростью доступа внесите атрибуты в словарь RADIUS-агента:
Название | Вендор | Номер | Тип | Описание |
---|---|---|---|---|
WISPr-Bandwidth-Max-Up | 14122 | 7 | int | Макс. восходящая скорость (бит/с) |
WISPr-Bandwidth-Max-Down | 14122 | 8 | int | Макс. нисходящая скорость (бит/с) |
Привяжите атрибуты к тарифу или скорости.
pfSense не поддерживает механизм PoD для разрыва сессии по инициативе RADIUS-сервера. Остановка сессии происходит через метод HTTP POST, который вызывает скрипт vg.stop.pfsense.sh
. Укажите его в конфигурационном файле /etc/billing.conf.LBarcd
:
# External script handler
handler = ./vg.stop.pfsense.sh
``
Откройте конфигурационный файл captive-portal.ini
:
nano /etc/lanbilling/phpclient/captive-portal/captive-portal.ini
``
Задайте настройки.
Включите раздел авторизации CISCO:
[cisco]
enabled=true
Укажите метод и URL, на который будет отправлен запрос авторизации:
[cisco/request]
action="http://%IP-адрес-сервера%/captive-portal"
method="post"
Задайте параметры запроса:
[cisco/request/params]
username="post->login"
password="post->passwd"
redirect_url="get->redirect"
buttonClicked=4
err_flag=0
Сохраните конфигурационный файл. Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y captive-portal /etc/lanbilling/phpclient/captive-portal/
``
В настройках контроллера задайте параметры.
В разделе «Services» — «Captive Portal» добавьте новую зону.
Настройте зону.
Активируйте Captive Portal — флаг «Enable Captive Portal».
Выберите интерфейс для Wi-Fi клиентов.
Отключите MAC-фильтрацию — флаг «Disable MAC filtering».
Включите управление скоростью для каждого из пользователей — флаг «Enable per-user bandwidth restriction».
В методах аутентификации выберите RADIUS, в качестве протокола — PAP.
Укажите IP-адрес, порт авторизации RADIUS-агента LANBilling, ключ — captive-secret.
Настройте отправку аккаунтинг-пакетов — флаг «Send RADIUS accounting packets to the primary RADIUS server», указав порт-аккаунтинг RADIUS агента. В качестве типа пакетов выберите Interim.
Настройте IP-адрес с которого будут отправляться RADIUS-пакеты. В большинстве случаев это WAN-адрес роутера.
В качестве страницы портала загрузите файл login.html
со следующим содержимым:
<html>
<head><title>...</title></head>
<body>
<script>
document.write(’<style>.noscript { display:none }</style>’);
</script>
<form action="http://%IP-адрес-сервера%/captive-portal/" method="get" id="redirectform">
<input type="hidden" name="client_mac" value="$CLIENT_MAC$">
<input type="hidden" name="client_ip" value="$CLIENT_IP$">
<input name="action" type="hidden" value="$PORTAL_ACTION$">
<input name="redirurl" type="hidden" value="$PORTAL_REDIRURL$">
<span class="noscript">Javascript is disabled, click to
<input name="submitx" type="submit" value="Continue" />
</span>
</form>
<script type="text/javascript">
function doredirect () {
var frm = document.getElementById("redirectform");
frm.submit();
}
window.onload = doredirect;
</script>
</body>
</html>
``
В настройках зоны добавьте IP-адрес страницы «Wi-Fi по паспорту» в список разрешённых. При необходимости внесите IP- или DNS-адреса платёжных сервисов.
Если взаимодействие c pfSense строится через WAN-интерфейс с включённым NAT, то в разделе «Firewall» — «NAT» — «Port Forward» настройте перенаправление 8002 TCP-порта с WAN-интерфейса на 8002 порт IP-адреса интерфейса зоны Wi-Fi.
Есть вопросы по документации? Пожалуйста, напишите их