Организация точек публичного беспроводного доступа к сети Интернет.

Все права защищены (c) 2001-2011 NetUP (www.netup.ru)
Перепечатка материалов разрешается только с предварительного разрешения
компании NetUP (info@netup.ru)

Обращаем ваше внимание на то, что информация в данной статье может быть не актуальной.

В данной статье будут рассмотрены основные принципы построения сети для предоставления доступа к сети Интернет всем желающим с использованием беспроводных технологий. В связи с тем, что доступ к радио-среде может получить практически любой человек, имея ноутбук и радиокарту, то наиболее актуальны вопросы надежной идентификации клиентов и учета потребленных ресурсов. Наиболее удобным и распространенным, но, правда, и наиболее уязвимым является открытое подключение к локальной беспроводной сети (публичный SSID, отсутствие WEP), получение IP-адреса по DHCP и дальнейшее получение доступа в Интернет при авторизации через веб-страницу. При этом на устройстве клиента (ноутбук, PDA и др.) достаточно иметь обычный Интернет браузер. Именно такой способ авторизации и будет рассмотрен в данной статье.

Терминология

802.11b

Наиболее распространенный стандарт беспроводного доступа к сети. Устройства, поддерживающие данный стандарт, работают на частоте 2,4 ГГц и обеспечивают скорость доступа до 11 Мбит/сек (реально можно достигнуть скорости не выше 5,5 Мбит/сек.). Более подробно со стандартом можно ознакомиться по ссылке http://www.ixbt.com/comm/wlan.shtml.

802.11g

Современный стандарт передачи данных по Wi-Fi. Устройства, поддерживающие данный стандарт, работают на частоте 2,4 ГГц и обеспечивают скорость доступа до 54 Мбит/сек в полнодуплексном режиме.

Карта беспроводного доступа, радиокарта.

Клиентское устройство вставляющееся в стандартный слот персонального компьютера, ноутбука, PDA (PCI, PCMCI, CF II и др.) и позволяющее связываться с другими устройствами посредством радио-волн. Примером таких устройств могут служить следующие продукты: D-Link DWL 650+, D-Link DCF 660W, Cisco Aironet 350 Series, Lucent Orinoco Wireless PC card и др. Карты могут поддерживать различные стандарты беспроводного доступа и соответственно обеспечивать различную скорость доступа к сети.

Точка беспроводного доступа, Wireless access point.

Радио-устройство, к которому производят подключение пользователи. Обычно точка доступа имеет один порт обычного проводного Ethernet и антенну. Примером устройства данного типа может служить: D-Link DWL-2000AP+, Orinoco AP-200, и др.

Hotspot, Wi-Fi

Данные термины обозначают совокупность сетевого оборудования (точек беспроводного доступа, антенн, серверов, маршрутизаторов) и программного обеспечения, которые позволяют пользователям получать доступ к сети Интернет без использования проводов. Обычно такие точки имеют ограниченную зону охвата (например территория кафе, ресторана, кинотеатра, гостиницы). Как правило для получения доступа к Интернет абоненту достаточно иметь ноутбук либо PDA с картой радио-доступа и личный секретный код (пин-код, пара логин-пароль и др.). Личный секретный код используется для идентификации пользователя и предотвращения использования ресурсов сети третьими лицами. Как правило секретный код можно получить за определенную плату у администратора данной точки доступа (например, на ресепшн в гостинице). При этом можно получить доступ на определенное время. По окончании отведенного времени доступ в Интернет блокируется. Для продолжения работы необходимо использовать новый оплаченный секретный код.

Организация HotSpot на базе обычного PC-маршрутизатора и
биллинговой системы NetUP UTM версии 5.0.

Общая схема организации точки беспроводного доступа с использованием биллинговой системы NetUP UTM.


В данной схеме использовалась простая точка доступа D-Link DWL-2000AP+. В настройках был указан SSID и отключено шифрование WEP. В качестве операционной системы для PC-маршрутизатора используется Linux RedHat 9.0. Так же установлены веб-сервер Apache, настроен кэширующий сервер DNS и установлена биллинговая система NetUP UTM версии 5.0.
Для полностью автоматического входа клиента в сеть нужно установить и настроить сервер DHCP, который будет выдавать компьютеру клиента IP-адрес. Наиболее распространённый и широко используемый сервер DHCP – isc-dhcpd. Его можно загрузить по адресу ftp://ftp.isc.org/isc/dhcp/dhcp-latest.tar.gz
Установку произвести командами:

./configure
make
make install


Также isc-dhcpd можно установить из дистрибутивов, поставляющихся с операционной системой.

Конфигурация сервера DHCP

Главный конфигурационный файл – dhcpd.conf. Он должен содержать следующие строки.

option domain-name "yourdomain.com";
option domain-name-servers 10.1.2.1;
option subnet-mask 255.255.255.0;
default-lease-time 36000;
max-lease-time 86400;
authoritative;
ddns-update-style none;
log-facility local7;
subnet 10.1.2.0 netmask 255.255.255.0
{
option routers 10.1.2.1;
pool
{
range 10.1.2.10 10.1.2.200;
allow unknown clients;
}
}

При такой конфигурации сервер будет выдавать адреса из диапазона 10.1.2.10–10.1.2.200, как правило, начиная с конца диапазона. Сам сервер при этом должен иметь адрес 10.1.2.1. Очень важно проследить, на каком интерфейсе будет работать сервер DHCP, так как выдача адресов, например, в интернет может привести к нежелательным последствиям. Поэтому сервер DHCP должен запускаться с указанием интерфейса, на котором ему следует работать. Например, внутренний интерфейс fxp0. Правильная команда запуска – dhcpd fxp0. Интерфейс указывается в качестве параметра командной строки. Несколько интерфейсов можно указывать через пробел, например, dhcpd fxp0 fxp1 ed0. После настройки автоматического получения адресов нужно позаботиться о том, чтобы клиент мог без труда активировать свою карточку. Для этого необходимо принудительно перенаправлять на страницу активации запросы от не авторизовавшегося клиента. Такое перенаправление делается при помощи файерволла.

Настройка файерволла для Linux

В ОС Linux файерволлом является программа iptables. В iptables существует действие REDIRECT, которое позволяет перенаправлять указываемые пакеты на порт локальной машины, подменяя адрес назначения. Воспользуемся этим действием для перенаправления запросов от не авторизовавшихся клиентов на страницу UTM с вводом номера и пин-кода предоплаченной карты. Для этого в таблице nat в цепочку PREROUTING нужно добавить правило.

iptables -t nat -A PREROUTING -s 10.1.2.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 80

Далее в UTM нужно добавить на каждого пользователя два правила для включения доступа.

/sbin/iptables -t nat -I PREROUTING 1 -s UIP/UBITS -j ACCEPT
/sbin/iptables -A FORWARD -s UIP/UBITS -j ACCEPT
/sbin/iptables -A FORWARD -d UIP/UBITS -j ACCEPT


И для выключения.

/sbin/iptables -t nat -D PREROUTING -s UIP/UBITS -j ACCEPT
/sbin/iptables -D FORWARD -s UIP/UBITS -j ACCEPT
/sbin/iptables -D FORWARD -d UIP/UBITS -j ACCEPT


При этом должна быть выставлена запрещающая политика для цепочки FORWARD. Сделать это можно командой:

iptables -P FORWARD DROP

Настройка веб-сервера Apache

Необходимо переопределить начальную страницу и страницу 404 в конфигурационном файле httpd.conf.

ErrorDocument 404 “/cgi-bin/utm5/aaa5?cmd=card_login”
DirectoryIndex "/cgi-bin/utm5/aaa5?cmd=card_login" index.html

При этом на любой запрос пользователя будет выдаваться страница, с приглашением ввести номер и пин-код карты для выхода в Интернет.

 

После исправления конфигурационного файла необходимо перезапустить веб-сервер.

apachectl restart

После успешного ввода регистрационных данных пользователь будет переброшен на периодически обновляющуюся страницу со статистикой по соединению.

 

При успешной авторизации Интернет на файерволле открывается для IP-адреса, с которого подключается пользователь. Это можно проконтролировать командой iptables -nL.В случае, если после успешной авторизации необходимо организовать автоматическое перенаправление пользователя на первоначально набранный URL, то необходимо в параметрах aaa5 передать redirect=yes. В этом случае параметры в конфигурации веб-сервера будут выглядеть следующим образом:

ErrorDocument 404 "/cgi-bin/utm5/aaa5?cmd=card_login&redirect=yes"
DirectoryIndex "/cgi-bin/utm5/aaa5?cmd=card_login&redirect=yes" index.html

Так же необходимо в конфигурационном файле web5.cfg указать строку:

src_redirect=yes

В этом случае при первом обращении к aaa5 будет сохранен адрес из переменной окружения SERVER_HOST, и, если пользователь ввел корректные данные для авторизации, то он будет автоматически переправлен по сохраненному адресу.Например, пользователь после получения IP-адреса по DHCP запустил браузер и в строке адреса набрал сайт www.netup.ru. В результате срабатывания перенаправления пользователю будет выдано приглашение ввести номер карты и пин-код. Если данные введены верно, пользователя автоматически перебросит на сайт www.netup.ru.

Настройка услуги HotSpot в биллинговой системе

В центре управления в разделе (Тарификация | Тарифные планы) необходимо добавить тарифный план с услугой HotSpot, указать временные диапазоны и стоимость.

 

Идентификатор этого тарифного плана необходимо указать при добавлении карточек в систему.

 

После ввода пользователем номера и пин-кода карты в процессе активации карты страничка в браузере будет автоматически регулярно обновляться, давая тем самым серверу знак, что пользователь все ещё пользуется услугой. В случае если в течение указанного в настройках промежутка времени не было обновления страницы (пользователь закрыл эту страничку или просто выключил компьютер), либо поступил сигнал закрытия сессии (пользователь выбрал в меню пункт «Выход»), то доступ в интернет блокируется и производится списание средств за время работы. Также блокирование доступа в интернет наступает при окончании средств на карте.

Организация HotSpot на базе MikroTik Router OS и
биллинговой системы NetUP UTM версии 5.0.

 

Общая схема организации точки беспроводного доступа на базе MikroTik Router OS и биллинговой системы NetUP UTM версии 5.0.

В данной схеме выдачу IP-адреса по DHCP, работу со страницей авторизации, включение-выключение Интернета осуществляет маршрутизатор под управлением MikroTik Router OS (а дальнейшем просто MikroTik). Более подробную информацию по MikroTik можно получить на сайте компании-разработчика www.mikrotik.com.
Непосредственно тарифы, база пользователей хранятся в биллинговой системе расположенной на отдельном сервере. Авторизация и аккаунтинг осуществляются по протоколу Radius.

Для включения HotSpot на MikroTik необходимо настроить сетевые интерфейсы и выполнить команды:

[admin@MikroTik] ip hotspot> setup
Select interface to run HotSpot on
hotspot interface: ether2
Add hotspot authentication for existing interface setup?
interface already configured: yes
Use SSL authentication?
use ssl: no
Use transparent web proxy for hotspot clients?
use transparent web proxy: no
Use local DNS cache?
use local dns cache: no
DNS name of local hotspot server
dns name: 192.168.0.1
Select another port for (www) service
port 80 is used by www service, select some other port for this service
another port for service: 8081
Create local hotspot user
name of local hotspot user: admin
password for the user: admin
[admin@MikroTik] ip hotspot>

Для настройки на работу с радиус-сервером необходимо выполнить команды:

[admin@MikroTik] ip hotspot> aaa set use-radius=yes accounting=yes
[admin@MikroTik] radius> add service=hotspot address=10.1.2.105 secret=secret authentication-port=1812 accounting-port=1813

Для включения DHCP-сервера необходимо выполнить команды:

[admin@MikroTik] ip dhcp-server> setup
Select interface to run DHCP server on
dhcp server interface: ether2
Select network for DHCP addresses
dhcp address space: 192.168.0.0/24
Select gateway for given network
gateway for dhcp network: 192.168.0.1
Select pool of ip addresses given out by DHCP server
addresses to give out: 192.168.0.2-192.168.0.254
Select DNS servers
dns servers: 10.1.2.5
Select lease time
lease time: 3d
[admin@MikroTik] ip dhcp-server>

Так же необходимо включить кэширующий DNS-сервер командами:

[admin@MikroTik] ip dns> set primary-dns=10.1.2.5
[admin@MikroTik] ip dns> set allow-remote-requests=yes

В результате таких настроек при подключении пользователя по беспроводной сети ему по DHCP будет автоматически выдан IP-адрес, шлюз по умолчанию, DNS-сервер. При этом по умолчанию все пакеты от клиента будут заворачиваться на страницу авторизации MikroTik:

 

При этом после ввода пользователем логина и пароля MikroTik делает попытку авторизовать пользователя через Radius-сервер. Пример содержимого пакета на авторизацию (Access-request) полученного при помощи утилиты tcpdump:

22:21:29.686883 IP (tos 0x0, ttl 64, id 38426, offset 0, flags [DF], length: 184)
10.1.2.67.1024 > 10.1.2.105.1812: [udp sum ok] RADIUS, length: 156
Access Request (1), id: 0x12, Authenticator:
385bb7580f1d9b568e74a4a25589a5fb
NAS ID Attribute (32), length: 10, Value: MikroTik
0x0000: 4d69 6b72 6f54 696b
NAS Port Type Attribute (61), length: 6, Value: Ethernet
0x0000: 0000 000f
Calling Station Attribute (31), length: 19, Value: 00:40:F4:59:ED:7A
0x0000: 3030 3a34 303a 4634 3a35 393a 4544 3a37
0x0010: 41
Called Station Attribute (30), length: 19, Value: 00:0C:29:11:45:64
0x0000: 3030 3a30 433a 3239 3a31 313a 3435 3a36
0x0010: 34
NAS Port ID Attribute (87), length: 8, Value: ether2
0x0000: 6574 6865 7232
Username Attribute (1), length: 9, Value: hsptest
0x0000: 6873 7074 6573 74
NAS Port Attribute (5), length: 6, Value: -2146435064
0x0000: 8010 0008
Accounting Session ID Attribute (44), length: 10, Value: 80100008
0x0000: 3830 3130 3030 3038
Framed IP Address Attribute (8), length: 6, Value: 192.168.0.2
0x0000: c0a8 0002
CHAP challenge Attribute (60), length: 18, Value: ........)Om.../O
0x0000: 06a2 12f4 10f9 c896 294f 6d1f a9e9 2f4f
CHAP Password Attribute (3), length: 19, Value:
0x0000: 596e a073 f8b9 50ea 27db 272c 6e12 923c
0x0010: 36
;
NAS IP Address Attribute (4), length: 6, Value: 10.1.2.67
0x0000: 0a01 0243

В лог-файле Radius-сервера должны появиться записи вида:

?Debug : Oct 01 22:14:47 RADIUS Auth: Packet from
?Debug : Oct 01 22:14:47 RADIUS Auth: User connecting
?Debug : Oct 01 22:14:47 RADIUS DBA: login_store iter->second.dialup.session_count:0
?Debug : Oct 01 22:14:47 RADIUS Auth: Auth scheme: CHAP
?Debug : Oct 01 22:14:47 RADIUS Auth: CHAP: Challenge size: 16
?Debug : Oct 01 22:14:47 RADIUS Auth: CHAP: Authorized user
?Debug : Oct 01 22:14:47 RADIUS Auth: Dialup session limit:0 session count:0 for user:hsptest
?Debug : Oct 01 22:14:47 RADIUS Auth: Calculated maximum session time: 67
?Debug : Oct 01 22:14:47 RADIUS DBA: dialup_link_update called for slink:41
?Debug : Oct 01 22:14:47 RADIUS DBA: soft dialup_link_update for slink:41 session_count:1

Согласно строке “Calculated maximum session time: 67” у пользователя средств хватит на 67 секунд работы в Интернет. Данное значение отсылается на Mikrotik в Access-Accept пакете (подтверждение успешной авторизации). Дамп такого пакета полученный при помощи утилиты tcpdump:

length: 109) 10.1.2.105.1812 > 10.1.2.67.1024: [udp sum ok] RADIUS, length: 81
Access Accept (2), id: 0x12, Authenticator:
3fdcd4d2ef3a1272554cfa9389cd73e2
Service Type Attribute (6), length: 6, Value: Framed
0x0000: 0000 0002
Framed Protocol Attribute (7), length: 6, Value: PPP
0x0000: 0000 0001
Framed Routing Attribute (10), length: 6, Value: None
0x0000: 0000 0000
Framed MTU Attribute (12), length: 6, Value: 1500
0x0000: 0000 05dc
Framed Compression Attribute (13), length: 6, Value: None
0x0000: 0000 0000
Session Timeout Attribute (27), length: 6, Value: 01:12 min
0x0000: 0000 0048

В данном случае авторизация прошла успешно и пользователь может беспрепятственно работать в Интернет в течение дозволенного времени.


По окончании отведенного времени сессия будет закрыта и все запросы пользователя будут перенаправляться на страницу авторизации. При этом на Radius-сервер будет выслан Accounting-Stop пакет. Дамп такого пакета полученный при помощи утилиты tcpdump:

22:22:41.742386 IP (tos 0x0, ttl 64, id 45628, offset 0, flags [DF], length:207)
10.1.2.67.1024 > 10.1.2.105.1813: [udp sum ok] RADIUS, length: 179
Accounting Request (4), id: 0x14, Authenticator:
d062970d37cae32f03f37ed8d96b300f
NAS ID Attribute (32), length: 10, Value: MikroTik 0x0000: 4d69 6b72 6f54 696b
NAS Port Type Attribute (61), length: 6, Value: Ethernet
0x0000: 0000 000f
Calling Station Attribute (31), length: 19, Value: 00:40:F4:59:ED:7A
0x0000: 3030 3a34 303a 4634 3a35 393a 4544 3a37
0x0010: 41
Called Station Attribute (30), length: 19, Value: 00:0C:29:11:45:64
0x0000: 3030 3a30 433a 3239 3a31 313a 3435 3a36
0x0010: 34
NAS Port ID Attribute (87), length: 8, Value: ether2
0x0000: 6574 6865 7232
Username Attribute (1), length: 9, Value: hsptest
0x0000: 6873 7074 6573 74
NAS Port Attribute (5), length: 6, Value: -2146435064
0x0000: 8010 0008
Accounting Session ID Attribute (44), length: 10, Value: 80100008
0x0000: 3830 3130 3030 3038
Framed IP Address Attribute (8), length: 6, Value: 192.168.0.2
0x0000: c0a8 0002
Accounting Session Time Attribute (46), length: 6, Value: 01:12 min
0x0000: 0000 0048
Accounting Input Octets Attribute (42), length: 6, Value: 5699
0x0000: 0000 1643
Accounting Output Octets Attribute (43), length: 6, Value: 61042
0x0000: 0000 ee72
Accounting Input Giga Attribute (52), length: 6, Value: 0
0x0000: 0000 0000
Accounting Output Giga Attribute (53), length: 6, Value: 0
0x0000: 0000 0000
Accounting Input Packets Attribute (47), length: 6, Value: 49
0x0000: 0000 0031
Accounting Output Packets Attribute (48), length: 6, Value: 51
0x0000: 0000 0033
Accounting Status Attribute (40), length: 6, Value: Stop
0x0000: 0000 0002
Accounting Termination Cause Attribute (49), length: 6, Value: Session Timeout
0x0000: 0000 0005
NAS IP Address Attribute (4), length: 6, Value: 10.1.2.67
0x0000: 0a01 0243
Accounting Delay Attribute (41), length: 6, Value: 00 secs
0x0000: 0000 0000

В лог-файле Radius-сервера должны появиться записи вида:

Acct: Packet from MikroTik
?Debug : Oct 01 22:15:54 RADIUS Acct: Acct packet with session ID: 80100007
?Debug : Oct 01 22:15:54 RADIUS Acct: Acct-Stop packet
?Debug : Oct 01 22:15:54 RADIUS DBA: Dialup Discount: TR ID 1: 0.019 for 67 sec

Из этих строк видно, что прошла тарификация сессии и были списаны средства с лицевого счета пользователя.

Организация HotSpot на базе маршрутизатора D-Link DSA-3100 и
биллинговой системы NetUP UTM версии 5.0.

Общая схема организации hotspot на базе маршрутизатора D-Link DSA-3100 и биллинговой системы NetUP UTM версии 5.0.

В данной схеме выдачу IP-адреса по DHCP, работу со страницей авторизации, включение-выключение Интернета осуществляет маршрутизатор компании D-Link (www.dlink.ru) модель DSA-3100 (в дальнейшем маршрутизатор) . Непосредственно тарифы, база пользователей хранятся в биллинговой системе расположенной на отдельном сервере. Авторизация и аккаунтинг осуществляются по протоколу Radius.


Настройки авторизации на маршрутизаторе

Настройки интерфейса авторизации на маршрутизаторе

В результате таких настроек при подключении пользователя по беспроводной сети ему по DHCP будет автоматически выдан IP-адрес, шлюз по умолчанию, DNS-сервер. При этом по умолчанию все пакеты от клиента будут заворачиваться на страницу авторизации маршрутизатора:


При этом после ввода пользователем логина и пароля маршрутизатор делает попытку авторизовать пользователя через Radius-сервер. Если от Radius-сервера поступило подтверждение корректности ввода логина и пароля, то пользователю открывается доступ в Интернет. При этом открывается окно броузера, в котором отображается статус текущего соединения:


Организация HotSpot на базе беспроводной точки доступа
Nomadix AG-2000w - Wireless Gateway™
и биллинговой системы NetUP UTM версии 5.0

В схеме организации HotSpot c использованием беспроводной точки доступа Nomadix AG-2000w Wireless Gateway (далее - AG) (рис.1) выдачу IP-адреса Wi-Fi клиенту по DHCP, работу со страницей авторизации, включение и выключение доступа в Internet осуществляет непосредствен­но это устройство. Тарифы, база пользователей, система учета хранятся в биллинговой системе UTM 5, расположенной на отдельном сервере.

Рис.1 Общая схема организации hotspot на базе Nomadix AG-2000w Wireless Gateway
и биллинговой системы NetUP UTM.

Авторизация и аккаунтинг осуществляются по протоколу RADIUS, поддержку которого необходимо настроить в Web-интерфейсе AG. Для этого выберите страницу /AG/Configuration/RADIUS Options в меню настроек и укажите Secret Key, IP-адрес и соответствующие порты сервера, на котором запущена система RADIUS. Так же следует указать и настройки NAS рис.2 (соответствующие пункты необходимо добавить и в интерфейсе администратора UTM рис.3).

Рис.2 Иллюстрация настроек RADIUS в Web-интерфейсе Nomadix AG-2000w.
Рис.3 Иллюстрация списка NAS в Java-интерфейсе администратора UTM 5.0

Выдача IP-адресов пользователям осуществляется встроенным DHCP сервером, который настраивается на страничке /AG/Configuration/DHCP. Здесь необходимо задать диапазон «гостевых» адресов с соответствующей маской подсети:

Рис.4 Иллюстрация настроек DHCP-сервера в Web-интерфейсе Nomadix AG-2000w.

После применения всех настроек, при подключении пользователя к беспроводной сети ему по DHCP будет автоматически выдан IP-адрес из заданного диапазона, шлюз по умолчанию, DNS-сервер. При этом по умолчанию все пакеты от клиента будут заворачиваться на страницу авторизации AG. При этом после ввода пользователем логина и пароля маршрутизатор делает попытку авторизовать пользователя через Radius-сервер. Если от Radius-сервера поступило подтверждение корректности ввода логина и пароля, то пользователю открывается доступ в Интернет.

Причем, если пользователь не отсылает и не принимает пакеты по сети (закончил работу в Интернет, отошел), AG автоматически начинает отсчет времени и по истечении 10 минут отсутствия активности пользователя закрывает сессию, но при этом это время не учитывается при списании средств, то есть тарифицируется только время фактического сеанса работы в сети.

Приведенные выше схемы включения были оттестированы на стенде в компании NetUP. Если у вас возникли вопросы по статье просьба обращаться на email: info@netup.ru.