Versions Compared

Key

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

Начиная с версии 1.1.490 система управления беспроводным доступом WNAM поддерживает работу в сетях, маршрутизацию в которых осуществляют устройства Cisco ISG.К  К семейству устройств ISG (Intelligent Services Gateway) относятся высокопроизводительные маршрутизаторы операторского уровня, такие как Cisco 7200, 7300, 7600, 10000, ASR1000 и другие. При использовании специальной версии программного обеспечения ПО они позволяют обеспечивать агрегацию и контроль доступа больших сетей передачи данных , с сотнями тысяч абонентов. Маршрутизаторы ISG - единственные в линейке маршрутизаторов Cisco, способные обеспечить функционал "портала перехвата", необходимый для проведения авторизации пользователя сети, в том числе беспроводного.

Для реализации поддержки ISG необходимо в административном интерфейсе администратора системы WNAM создать сервер доступа с заданным типом, и параметрами :(раздел "Конфигурация" → "Сервера доступа").

Image Modified

В отличие от типовых настроек сервера доступа, необходимо указать ещё два дополнительных параметра, определяющих наборы RADIUS-атрибутов, передаваемых маршрутизатору.В  В качестве атрибутов предварительно предварительной авторизации необходимо передать имя сервиса, вызывающей вызывающее перенаправление неавторизованной сессии на сервер WNAM (для проведения авторизации).Сервис  Сервис LOCAL_L4R, в свою очередь, ссылается на список доступа 197, в котором определены правила перенаправления всего трафика, кроме трафика до сервера авторизации, а также указание на сервер (через правило REDIRECT_NOPAY) 10.219.7.71 порт 81.

Для перехвата всего трфвикатрафика, попадающего на сервер авторизации, установлен прокси-сервер nginx Nginx со следующим конфигурационным файлом :/etc/nginx/sites-enabled/wnam-redirect

...

и его содержимым:

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

Согласно этой конфигурации, все HTTP-запросы неавторизованных пользователей перенаправляются на портал авторизации системы WNAM. Аналогичным способом надо сделать настроить HTTPS-перенаправление. Для корректной работы системы работы системы WNAM необходима связка MAC-адреса клиента , и его текущего IP-адреса. Поскольку ISG работает на 3-м уровне, про МАС-адреса ему не известно, и идентификация без дополнительных компонентов не пройдет. Необходимо каким-то образом связывать текущий IP-адрес клиента с его МАС-адресом. Для этого возможны два варианта :представленные далее.

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

...

Warning
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, т.н. "неавторизованная сессия".
Конфигурационные файлы и скрипты можно получить здесьпо адресу: http://www.netams.com/files/wnam/misc/.

В разделе "Конфигурация" → "Площадки" необходимо Необходимо также привязать сервер доступа типа ISG к площадке, им обслуживаемой (иначе работать не будет):.

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

...

После

...

успешной

...

авторизации

...

абонента

...

на

...

портале,

...

сервер WNAM

...

должен

...

сообщить

...

маршрутизатору

...

ISG

...

об

...

изменении

...

сервиса

...

и

...

об

...

установке

...

правил

...

аккаунтинга.

...

Для

...

этого

...

сервер WNAM

...

отправляет

...

пакеты

...

RADIUS

...

CoA

...

в

...

сторону

...

маршрутизатора,

...

с

...

параметрами,

...

указанными

...

в

...

окне

...

настроек

...

сервера

...

доступа.

...

В

...

данном

...

примере

...

удаляется

...

сервис

...

перенаправления

...

и

...

включается

...

сервис

...

"INTERNET",

...

в

...

который

...

входит

...

аккаунтинг

...

(список

...

доступа

...

100).

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

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

10:15:16.330 DEBUG [c.n.wnam.services.LinuxCPService:329] - create ISG session IP=10.10.100.10, NAS=10.219.7.75, MAC=00:00:00:00:00:01, SESS=0ADB074B7600000000000054
10:15:17.813 DEBUG [c.n.w.web.cp.CaptivePortalController:240] - CP isg redirect: IP=10.10.100.10, MAC=00:18:E7:0E:37:EF, ID='TP2-TKI-mAPM', CUST=known, phone=null
10:15:17.814 DEBUG [c.n.wnam.services.LinuxCPService:343] - update ISG session IP=10.10.100.10, NAS=10.219.7.75, MAC=00:18:E7:0E:37:EF, SESS=0ADB074B7600000000000054
10:15:17.816 DEBUG [c.n.w.web.cp.CaptivePortalController:697] - processAuthRequest ISG: username=00:18:E7:0E:37:EF, ip=10.10.100.10, server=, site_id=null, dst=''
10:15:17.817 DEBUG [c.n.w.web.cp.CaptivePortalController:760] - processRedirectRequest username=00:18:E7:0E:37:EF, method=FORM
10:15:19.594 DEBUG [c.n.w.web.cp.CaptivePortalController:591] - Redirect login: site_id=2, username=00:18:E7:0E:37:EF, dst='http://bash.im'
10:15:19.595 DEBUG [c.n.w.web.cp.CaptivePortalController:829] - loginAtNas ISG username=00:18:E7:0E:37:EF, ip=10.10.100.10, server=, dst='http://bash.im'
10:15:19.597 DEBUG [c.n.wnam.services.LinuxCPService:276] - open ISG access REQ for IP=10.10.100.10, MAC=00:18:E7:0E:37:EF
10:15:19.612 DEBUG [c.n.wnam.services.LinuxCPService:301] - open ISG access SUCCESS for IP=10.10.100.10, MAC=00:18:E7:0E:37:EF
10:15:19.618 DEBUG [c.n.wnam.services.WnamCmdService:537] - ACCT-Start uhid task NAS=10.219.7.75, CUST=00:18:E7:0E:37:EF, IP=10.10.100.10, DB=wnam_db
10:15:19.618 DEBUG [c.n.wnam.services.WnamCmdService:173] - ACCT-Start uhid processing NAS=10.219.7.75, CUST=00:18:E7:0E:37:EF, IP=10.10.100.10, DB=wnam_db

 

Ниже приведен фрагмент конфигурационного файла маршрутизатора ISG (его адрес - 10.219.7.75).:

boot-start-marker
boot system flash disk0:c7200-k91p-mz.122-31.SB3.bin
boot-end-marker
!
!
aaa new-model
!
!
aaa group server radius ISG-RADIUS
server 10.219.7.71 auth-port 1812 acct-port 1813
ip radius source-interface FastEthernet0/1.2
!
aaa authentication login TAL_LIST group ISG-RADIUS
aaa authorization exec default local
aaa authorization network TAL_LIST group ISG-RADIUS
aaa authorization subscriber-service default local group ISG-RADIUS
aaa accounting delay-start all
aaa accounting update periodic 1 jitter maximum 0
aaa accounting network TAL_LIST start-stop group ISG-RADIUS
!
!
!
aaa server radius dynamic-author
client 10.219.7.71
client 10.219.7.76
client 10.10.100.10
server-key 7 04480E051D2458
auth-type any
!
aaa session-id common
ip subnet-zero
no ip icmp rate-limit unreachable
ip cef
!
!
ip dhcp relay information option
ip dhcp relay information policy keep
ip dhcp relay information trust-all
!
!
redirect server-group REDIRECT_NOPAY
server ip 10.219.7.71 port 81
!
!
!
class-map type traffic match-any CLASS-TO-REDIRECT
match access-group output 197
match access-group input 197
!
class-map type traffic match-any INTERNET
match access-group output 100
match access-group input 100
!
class-map type control match-all ISG-IP-UNAUTH
match authen-status unauthenticated
match timer UNAUTH-TIMER
!
policy-map type service LOCAL_L4R
1 class type traffic CLASS-TO-REDIRECT
redirect to group REDIRECT_NOPAY
!
!
policy-map type service INTERNET
1 class type traffic INTERNET
accounting aaa list TAL_LIST
!
!
policy-map type control ISG-CUSTOMERS-POLICY
class type control ISG-IP-UNAUTH event timed-policy-expiry
1 service disconnect
!
class type control always event session-start
1 collect identifier source-ip-address
10 authorize aaa list TAL_LIST password cisco identifier source-ip-address
20 set-timer UNAUTH-TIMER 1
!
class type control always event account-logoff
1 service disconnect
!
class type control always event session-restart
10 authorize aaa list TAL_LIST password cisco identifier source-ip-address
20 set-timer UNAUTH-TIMER 1
!
!
!
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
no ip address
speed auto
duplex auto
!
interface FastEthernet0/0.400 ! transport network - to access routers
encapsulation dot1Q 400
ip address 172.16.125.1 255.255.255.252
no snmp trap link-status
service-policy type control ISG-CUSTOMERS-POLICY
ip subscriber routed
initiator unclassified ip-address
!
interface FastEthernet0/1
no ip address
speed auto
duplex auto
!
interface FastEthernet0/1.2 ! wan network - to border router and Internet
encapsulation dot1Q 2
ip address 10.219.7.75 255.255.248.0
no snmp trap link-status
!
ip classless
ip route 0.0.0.0 0.0.0.0 10.219.2.1
ip route 10.10.100.0 255.255.255.0 172.16.125.2
!
!
access-list 100 permit ip any any
access-list 197 deny ip host 10.219.7.71 any
access-list 197 deny ip any host 10.219.7.71
access-list 197 permit tcp any any eq www
access-list 197 permit tcp any eq www any
access-list 197 permit tcp any any eq 443
access-list 197 permit tcp any eq 443 any
access-list 197 deny ip any any
!
!
radius-server attribute 44 include-in-access-req vrf default
radius-server attribute 44 extend-with-addr
radius-server attribute 8 include-in-access-req
radius-server attribute 32 include-in-access-req
radius-server attribute 32 include-in-accounting-req
radius-server attribute 55 include-in-acct-req
radius-server attribute 55 access-request include
radius-server attribute nas-port format e UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
radius-server host 10.219.7.71 auth-port 1812 acct-port 1813 key 7 095F4B0A0B0003
radius-server unique-ident 118
radius-server vsa send cisco-nas-port
radius-server vsa send accounting
radius-server vsa send authentication
!

 

 

  На этом этапе настройка устройства Cisco ISG завершена.