You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Поддержка взаимодействия WNAM с маршрутизатором pfSense (http://www.pfsense.org) появилась, начиная с версии ПО WNAM 1.2.567.

pfSense представляет собой основанный на кодовой базе ОС FreeBSD специализированный дистрибутив, позволяющий организовать на основе x86 компьютера полноценный маршрутизатор, шлюз сети Internet, с большим набором возможностей и управлением через веб-интерфейс. Переда началом настойки взаимодействия вашего сервера pfSense c WNAM вы должны настроить и отладить сам pfSense, в том числе настроить сервис DHCP, маршрутизацию, правила межсетевого экранирования и трансляции адресов между локальной (где находятся любый точки доступа, и абоненты Wi-Fi), и глобальной (внешней, Internet) сетью.

Внимание! Поддерживается pfSense версий 2.2.х, с версией 2.3 могут быть проблемы.

При работе в качестве шлюза с авторизацией доступа pfSense использует встроенный компонент Captive Portal. Необходимо создать новый портал через меню "Services - Captive Portal". Портал здесь называется "зоной":

Необходимо задать имя портала (зоны), интерфейс, на котором он будет работать (это интерфейс LAN, на котором находятся Wi-Fi точки доступа, и их абоненты).

Далее, нажав на кнопку "е", необходимо установить параметры портала, как показано на рисунке:

Ниже перечислены параметры портала, которые необходимо заполнить:

ПараметрОписание
InterfacesВыбрать LAN - имя интерфейса, на котором будет работать портал
Idle timeoutТайм-аут неактивности пользователя (сессия закончится, если не будет трафика указанное количество минут)
Hard timeoutАбсолютный тайм-аут сессии пользователя, в минутах. Может быть переопределен в настройках "Ограничения"
Pre-authentication redirect URL

Указать ссылку на сервер WNAM, в формате

http://адрес_сервера:порт/cp/pfsense

например

http://10.200.0.2/cp/pfsense

Per-user bandwidth restriction

Установите значение ограничений скорости передачи для абонента (в кбит/с), либо просто включите параметр (Enable per-user bandwidth restriction), поля ограничений не заполняйте,

и укажите значение в меню WNAM ("Ограничения") глобально или для площадки

Authentication

RADIUS Authentication - RADIUS Protocol - PAP

Primary RADIUS server - IP addressIP-адрес сервера WNAM, например 10.200.0.2
Primary RADIUS server - Shared secretПароль взаимодействия с RADIUS-сервером, должен совпадать с аналогичным параметром в файле /etc/freeradius/clients.conf на сервере WNAM
Accountingsend RADIUS accounting packets
Accounting updatesinterim update
RADIUS NAS IP attributeWAN, указать имя (и адрес) внешнего сетевого интерфейса
Session-TimeoutUse RADIUS Session-Timeout attributes
Typedefault
MAC address formatdefault
Portal page contents

взять файл по ссылке: http://www.netams.com/files/wnam/misc/index.php и загрузить его в данном пункте меню настроек.

при помощи этого файла производится перенаправление перехваченной порталом pfSense HTTP-сессии абонента на сервер WNAM для целей авторизации

В файле, который определяет перенаправление на внешний портал авторизации (сервер WNAM), index.php, необходимо изменить идентификатор площадки (параметр "site-id"), указав номер площадки из конфигурации WNAM. В противном случае будет подставляться имя зоны (в примере - HomeK18). Вы также можете создавать зоны с именами (идентификаторами), численно равными номеру площадки из WNAM. Всё это требуется, если вы используете более чем одну зону на одном портале pfSense.

Необходимо также разрешить трафик в обход портала pfSense для еще не авторизованных клиентов. Как минимум, до DNS-сервера (в примере - до сервера Google 8.8.8.8), и до самого портала авторизации WNAM (в примере: 172.16.130.5):

Для учёта сведений по потокам трафика (на какие внешние ресурсы обращались абоненты), необходимо организовать сбор сведений по трафику и отправку из в сторону WNAM по протоколу NetFlow. Для этого вы должны установить и настроить пакет softflowd (включен в набор штатных пакетов pfSense). Параметры настройки приведены ниже:

Вы должны указать интерфейс (LAN), IP-адрес сервера WNAM, порт коллектора (20002), протокол (5), тип трекинга (full), а также таймауты. Затем необходимо включить softflowd в меню "Status - Services".

Внимание: сбор статистики по объему трафика ведется по значениям счетчиков, получаемых в сообщениях RADIUS Accounting-Interim, а статистика по самому трафику (кто и какие ресурсы посещал) - по NetFlow.

Внимание: WNAM устанавливает параметр отправки промежуточных сообщений аккаунтинга (счетчики трафика абонента) в 5 минут (по умолчанию в pfSense - 1 минута).

Для определения имен устройств абонентов необходимо дополнительно включить механизм информирования сервера WNAM о присвоении IP-адреса абонентским устройствам встроенным в pfSense DHCP-сервером.

  1. Необходимо настроить и проверить сам DHCP-сервер. Затем, поскольку вы будете вручную вносить изменения в текстовый конфигурационный файл сервера, через Web-интерфейс донастраивать DHCP-сервер нельзя.
  2. Необходимо зайти в консоль (shell) pfSense и установить пакеты:
    1. pkg bootstrap
    2. pkg install perl5
    3. pkg install p5-IO-Socket-IP
    4. pkg install joe
  3. Необходимо создать файл-скрипт оповещения WNAM: /usr/local/bin/joe /usr/local/bin/wnam-dhcpd-bridge.pl
    #!/usr/local/bin/perl
    use constant WNAM_HOST => "172.16.130.5";
    use IO::Socket::INET;
    $| = 1;
    my $sock = new IO::Socket::INET(PeerAddr => WNAM_HOST, PeerPort => 20001, Proto => 'tcp', Timeout => 0.5) or undef $sock;
    if (defined $sock) {
    if (defined $ARGV[0]){
    my $type = $ARGV[0];
    my $ip = $ARGV[1];
    my $mac = uc $ARGV[2];
    my $name = $ARGV[3];
    if (defined $type and defined $ip and defined $mac) {
    print $sock "DHCP type=$type ip=$ip mac=$mac name=$name\n";
    }
    }
    }
  4. Необходимо дать скрипту права на исполнение: chmod +x /usr/local/bin/wnam-dhcpd-bridge.pl
  5. Необходимо отредактировать конфигурационный файл сервера DHCP: /usr/local/bin/joe /var/dhcpd/etc/dhcpd.conf и добавить в него строки:
     
       on commit {
    set clip = binary-to-ascii(10, 8, ".", leased-address);
    set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
    set clhost = pick-first-value(host-decl-name, option fqdn.hostname, option host-name, "");
    execute("/usr/local/bin/wnam-dhcpd-bridge.pl", "commit", clip, clhw, clhost);
    }

  6. Последний шаг - перезапуск сервиса DHCP: "Services - DHCP Server".
После завершения настройки pfSence необходимо создать сервер доступа в конфигурации WNAM, указав соответствующий тип, и внешний (WAN) адрес pfSense. Пароль не нужен.

 

  • No labels