Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

/etc/nginx/sites-enabled/wnam-redirect

 
 server {
listen *:81;
server_name wnamvnam;
expires -10s;
keepalive_timeout 0;
rewrite ^(.*)$ http://10.219.7.71/cp/isg?dst=$scheme://$host$request_uri redirect;
}

Согласно этой конфигурации, все HTTP-запросы неавторизованных пользователей перенаправляются на портал авторизации WNAM. Аналогичным способом надо сделать HTTPS-перенаправление.

Для корректной работы системы необходима связка MAC-адреса клиента, и его текущего IP-адреса, при помощи скрипта /usr/local/bin/wnam-leases.. Поскольку ISG работает на 3м уровне, про МАС-адреса ему не известно, и идентификация без дополнительных компонентов не пройдет. Необходимо каким-то образом связывать текущий IP-адрес клиента с его МАС-адресом. Для этого возможны два варианта:

1. При помощи скрипта /usr/local/bin/wnam-leases.pl

Внимание! DHCP-сервер должен быть запущен на сервере WNAM. Допускается использование маршрутизатора между ISG и клиентской подсетью.В нашем примере клиентская подсеть имеет адреса 10.10.100.0/24

Необходимо указывать в файле /etc/wnam.properties параметр:

linuxcp_leasescheck_script=/usr/local/bin/wnam-leases.pl

Этим способом реализуется механизм pull, т.е. выполняется проверка МАС адреса в момент подключения клиента. При большой нагрузке на сервер и большом числе записей в таблице DHCP данный способ работает медленно.

2. При помощи уведомлений, отправляемых утилитой /usr/local/bin/wnam-dhcpd-bridge

Необходимо в конфигурационном файле DHCP-сервера /etc/dhcp/dhcpd.conf прописать обработчики событий:

 

group "wifi" {
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", "127.0.0.1", "password", "commit", "wnam", clip, clhw, clhost);
}
 
on release {
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", "127.0.0.1", "password", "release", "wnam", clip, clhw, clhost);
}
 
on expiry {
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", "127.0.0.1", "password", "expiry", "wnam", clip, clhw, clhost);
 }
}

В таком случае уведомления работают по методу push, т.е. происходит информирование WNAM о каждом факте выделения адреса абоненты. WNAM кэширует эти сведения, в лог-файле появляется запись:

16:34:36.749 DEBUG [c.n.wnam.services.WnamApiService:154] - DHCP commit IP=10.1.0.158, MAC=00:1F:27:90:74:CA, cust_clientid='tst-sw1'

Утилита  /usr/local/bin/wnam-dhcpd-bridge принимает параметры:

  • IP адрес сервера WNAM
  • пароль обмена (должен соответствовать параметру "password" из /etc/wnam.properties
  • команда
  • идентификатор сервера (не используется)
  • IP адрес
  • MAC адрес
  • имя устройства клиента

В файле конфигурации также настраиваются два таймаута (в секундах):

dhcp_cache_timeout=43200 # время жизни записи в кэше DHCP
isg_cache_timeout=43200 # время жизни записи в кэше ISG, т.н. "неавторизованная сессия".

Необходимо также привязать сервер доступа типа ISG к площадке, им обслуживаемой (иначе работать не будет):

Image Added

Тэг - произвольный параметр, используемый в интеграции с СОРМ.

 

После успешной авторизации абонента на портале, WNAM долженПосле успешной авторизации на портале WNAM необходимо сообщить маршрутизатору ISG об изменении сервиса, и об установке правил аккаунтинга. Для этого WNAM отправляет пакеты RADIUS CoA в сторону маршрутизатора, с параметрами, указанными в окне настроек сервера доступа. В данном примере удаляется сервис перенаправления и включается сервис "INTERNET", в который входит аккаунтинг (список доступа 100).

Никаких дополнительных настроек на стороне FreeRADIUS не требуется.

Ниже приведен лог  процесса успешной авторизации пользователя (10.10.100.10) на сервере WNAM (10.219.7.71):

...