Взаимодействие с маршрутизаторами на основе ОС pfSense

Для работы настройте систему.

  1. Настройте агент.

  2. Настройте страницу авторизации.

  3. Настройте контроллер.

Настроить агент

Создать агент

Добавьте сетевой агент и задайте параметры:

  • Флаг «Сохранять только последнюю неудачную попытку авторизации» — включить

  • Флаг «Выделять адреса динамически из пула» — отключить

  • Флаг «Не отправлять атрибут Framed-IP-Address с пустым значением» — включить

  • Флаг «Запускать handler при изменении текущей скорости» — включить

  • «Тайм-аут зависшей сессии (сек)» — 300 секунд

    image

Добавить контроллер в качестве NAS

Добавьте сервер доступа с настройками:

  • IP — адрес контроллера;
  • метод авторизации — LOGIN;
  • секрет — придумайте пароль, например captive-secret.

Добавить атрибуты

  1. Для управления скоростью доступа внесите атрибуты в словарь RADIUS-агента:

    Название Вендор Номер Тип Описание
    WISPr-Bandwidth-Max-Up 14122 7 int Макс. восходящая скорость (бит/с)
    WISPr-Bandwidth-Max-Down 14122 8 int Макс. нисходящая скорость (бит/с)
  2. Привяжите атрибуты к тарифу или скорости.

  3. pfSense не поддерживает механизм PoD для разрыва сессии по инициативе RADIUS-сервера. Остановка сессии происходит через метод HTTP POST, который вызывает скрипт vg.stop.pfsense.sh. Укажите его в конфигурационном файле /etc/billing.conf.LBarcd:

    # External script handler
    handler = ./vg.stop.pfsense.sh
    

    ``

Настроить страницу авторизации

  1. Откройте конфигурационый файл captive-portal.ini:

    nano /etc/lanbilling/phpclient/captive-portal/captive-portal.ini
    

    ``

  2. Задайте настройки.

    • Включите раздел авторизации 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
      
      
      
  3. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y captive-portal /etc/lanbilling/phpclient/captive-portal/
    

    ``

Настроить контроллер

В настройках контроллера задайте параметры.

  1. В разделе «Services» — «Captive Portal» добавьте новую зону.

  2. Настройте зону.

    • Активируйте 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-адрес роутера.

  3. В качестве страницы портала загрузите файл 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>
    

    ``

  4. В настройках зоны добавьте IP-адрес страницы «Wi-Fi по паспорту» в список разрешённых. При необходимости внесите IP- или DNS-адреса платёжных сервисов.

  5. Если взаимодействие c pfSense строится через WAN-интерфейс с включённым NAT, то в разделе «Firewall» — «NAT» — «Port Forward» настройте перенаправление 8002 TCP-порта с WAN-интерфейса на 8002 порт IP-адреса интерфейса зоны Wi-Fi.