HOTSPOT – это просто!::Журнал СА 1.2005
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6856
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3129
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3379
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3000
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 HOTSPOT – это просто!

Архив номеров / 2005 / Выпуск №1 (26) / HOTSPOT – это просто!

Рубрика: Администрирование /  Оборудование

АНДРЕЙ ПЛАТОНОВ

HOTSPOT – это просто!

(на правах рекламы)

С ростом популярности беспроводных сетей 802.11 a/b/g, объединённых общим названием Wi-Fi, всё быстрее развивается новое направление на рынке организации услуг доступа в Интернет – создание публичных зон доступа, или HOTSPOT. HOTSPOT – это место, где имеется доступ к беспроводной сети. И если с беспроводной составляющей HOTSPOT (имеются в виду точки доступа) всё более-менее понятно, то со средствами учёта и контроля пользователей по-прежнему возникают затруднения. Для разрешения этой проблемы многие производители сетевого оборудования приступили к выпуску специализированного оборудования для формирующегося рынка услуг. Не стала исключением и компания D-Link, представив шлюз для создания зон коллективного доступа в Интернет DSA-3100 и чек-принтер DSA-3100P.

Итак, какие же функции должна выполнять система, на которой базируется HOTSPOT?

  • Быстрое добавление пользователя в систему.
  • Аутентификация пользователя.
  • Подсчет трафика или времени, проведенного в сети.
  • Автоматическое отключение пользователя при достижении лимита трафика или времени.

Безусловно, эти функции можно реализовать даже на маломощной машине под управлением *nix. Однако D-Link обещает нам решение этих задач при помощи простого в настройке шлюза, который сможет настроить даже среднестатистический пользователь. Кроме того, шлюз будет интересен и более подготовленным пользователям, т.к. на его основе возможно построение полноценной биллинговой системы.

Устройство имеет три порта Ethernet:

  • WAN-порт – для подключения к сети Интернет.
  • LАN-порт (частная сеть) – подключаются клиенты, для которых не требуется аутентификация (например, локальная сеть кафе, в котором организован HOTSPOT).
  • Authentication-порт – к этому порту подключается сеть, клиенты которой будут проходить аутентификацию перед выходом в Интернет.

На базе шлюза можно создать несколько типов хотспотов. Во-первых, это простейший случай – отдельно стоящий хотспот, в котором есть оператор. Такой хотспот организовывается довольно легко: нужна минимальная настройка шлюза, с которой справится любой человек, имеющий базовые знания по IP-сетям. Все настройки осуществляются через встроенный веб-интерфейс. Оператор хотспота (человек, пробивающий чеки на тикет-принтере) также не будет загружен сложной работой. Добавление нового пользователя происходит очень просто: в меню вводится количество предоплаченных клиентом часов и нажимается кнопка «Print» на чек-принтере. В распечатанной карточке доступа (которая, правда, больше похожа на чек) находится вся необходимая для подключения к сети информация: ключ WEP-шифрования, логин и пароль для авторизации. При первой попытке пользователя обратиться к ресурсам Интернета он перенаправляется на веб-страницу авторизации. Обмен авторизационной информацией происходит по протоколу HTTPS, что повышает безопасность системы. На случай, если браузер клиента не поддерживает защищённое SSL-соединение (что бывает крайне редко), предусмотрена возможность использования открытого HTTP. Методика авторизации пользователей, построенная на базе Web, избавляет менеджера HOTSPOT от хлопот по установке и настройке на машинах пользователей дополнительного клиентского ПО, управляющего авторизацией.

К вышеописанному виду относится большинство HOTSPOT, которые создаются в аэропортах, на вокзалах, в выставочных комплексах и гостиницах. В них по обыкновению используется тарификация по времени на условиях предоплаты. Шлюз D-Link DSA-3100 в паре с принтером DSA-3100P идеально подходят для решения подобных задач – HOTSPOT может быть развернут всего за несколько часов (в зависимости от масштабов) даже силами приходящего админа или просто продвинутого пользователя.

Кроме простейших случаев, существуют более сложные варианты – например, когда мы имеем не один, а целую сеть HOTSPOT, причём необязательно в каждом из них есть оператор, принимающий платежи. Возможен, например, такой вариант: клиент активирует карточки предоплаты (скретч-карты) для зачисления денег на свой электронный счёт. В этом случае шлюз DSA-3100 становится большой важной шестерёнкой под названием NAS (Network Access Server) в сложном механизме биллинговой системы. Аутентификация/Авторизация/Аккаунтинг (ААА) при этом проводятся через RADIUS-сервер.

Ещё одним важным свойством такой системы является то, что для того, чтобы она стала полноценным биллингом, её, скорее всего, придётся немного доработать, что могут осуществить только самые упорные и опытные. Но не боги горшки обжигают!

Рисунок 1

RADIUS расшифровывается как Remote Authentication Dial In User Service. Изначально данный протокол был создан для обслуживания больших модемных пулов, но реализация получилась настолько удачной, что сейчас он часто используется не только для DialUP, но и для IP-телефонии, организации доступа в VPN-сети.

Итак, раз заголовок нашей статьи «HOTSPOT – это просто!», мы рассмотрим самый простой вариант из всех возможных сложных вариантов и набросаем в общих чертах хотспотный биллинг, который и есть самое главное в хотспоте. Средством сбора статистики будут шлюзы DSA-3100. Несмотря на взрывной рост популярности Linux-систем, наиболее распространенной и знакомой для большинства остается Windows. Поэтому мы рассматриваем RADIUS- сервер именно на его основе. Безусловно, для опытного юниксоида не будет проблемой связать DSA-3100, например, с freeradius, одним из важнейших достоинств которого является его бесплатность.

Для эксперимента мы использовали компьютер под управлением Win2k Server и WinRadius 2.11 (http://www.it consult2000.com), как и большинство программ под Windows, WinRadius небесплатен, однако эту проблему можно решить тем или иным способом (например, купить ее).

Теперь более подробно о том, как будет выглядеть наша учётно-биллинговая система и как она будет работать. Предположим, у нас есть некоторая опорная сеть, к которой через DSA-3100 подключены все наши хотспоты. Шлюз каждого хотспота настроен на работу с RADIUS, который в свою очередь взаимодействует с базой данных (в нашем случае это будет msAcsess – как самый простейший вариант), в которой хранятся учётные записи пользователей и в которую будет складываться статистика.

Итак, проделаем следующее:

  • поставим WinRadius;
  • настроим WinRadius на взаимодействие с DSA-3100 и БД MSAccess;
  • создадим пользователя на сервере RADIUS;
  • аутентифицируемся и посчитаем трафик (посмотрим, как это всё записалось в БД);
  • сделаем маленький веб-интерфейс к биллинговой системе, реализующий некоторый функционал.

Настройка WinRadius

Рисунок 2 Рисунок 3

Рисунок 4

Настраиваем драйвер базы данных ODBC

Это требуется для работы нашего RADIUS с БД MSAccess (файл базы данных есть в дистрибутиве WinRadius – WinRadius.mdb). ODBC – это аббревиатура от Open DataBase Connectivity (примерный перевод – открытая система связи с базами данных) – некий универсальный интерфейс к различным базам данных. Что-то вроде прослойки между пользовательскими приложениями и базами данных, которая позволяет скрыть особенности той или иной БД и унифицировать свойства всех источников данных.

Рисунок 5

Рисунок 6

  • В поле «Data Source Name» вписываем «WinRadius».
  • В поле «Description» пишем что хотим.
  • Нажимаем «Select», ищем директорию, в которой установлен WinRadius, и находим там файл WinRadius.mdb.
  • Нажимаем «OK».

Настраиваем DSA-3100 на работу с сервером RADIUS

Рисунок 7

Создаём 5 пользователей (больше, к сожалению, нельзя, демоверсия WinRadius не позволяет), всем назначаем аккаунтинг на базе использованного трафика. Затем пробуем аутентифицироваться: на компьютере, который подключён к Authentification-порту DSA-3100, набираем какой-либо URL, шлюз перехватывает http-запрос и выдаёт нам форму для аутентификации (всё, разумеется, под защитой SSL). Процесс аутентификации и завершение пользовательской сессии отображается в окне WinRadius. Все данные, которыми оперирует WinRadius, хранятся в базе данных (данные – это пользовательские аккаунты и логи).

Откроем в MsAcсess файл WinRadius.mdb и посмотрим, как выглядит база данных нашего RADIUS – а выглядит она довольно просто. Видим в ней несколько таблиц.

Таблица tbLogs (в ней записались все данные об объеме трафика, который прокачали 5 тестовых пользователей).

Рисунок 8

Таблица tbUsers (в которой мы видим созданных пользователей).

Рисунок 9

Итак, вроде бы всё очень хорошо: пользователи аутентифицируются, и трафик считается. Единая база данных позволяет осуществлять роуминг между HOTSPOT, разбросанными по всему городу. Между точками доступа внутри хотспотов также осуществляется роуминг при помощи протокола IAPP (Inter Access Point Protocol). Однако чего-то всё-таки не хватает. А не хватает следующего: возможности пользователям просматривать текущее состояние своего счёта, возможности пополнять счёт (чтобы это мог делать сам пользователь или администратор/оператор системы). Кроме того, не помешает наличие возможности удобного администрирования системы, в которой, например, будет несколько NAS-серверов DSA-3100 (сеть хотспотов или интернет-кафе), т.е. количество пользователей будет довольно приличным.

Как же всё это реализовать? Ответ напрашивается сам собой: нужно сделать пользовательский и администраторский веб-интерфейс, который будет брать/класть данные в нашу базу данных. Пусть всё это работает на веб-сервере, работающем на том же компьютере, на котором работает RADIUS. Веб-сервер мы поместим в зону, свободную для просмотра (DSA-3100 позволяет это сделать), чтобы даже пользователи с нулевым и отрицательным балансом могли зайти на страницу статистики/пополнения счёта.

Выбираем веб-сервер: компьютер у нас под Win2k Server, значит, скорее всего, будем использовать Apache для Windows или IIS (Internet Information Services). Если выберем Apache, то будем писать веб-страницы со скриптами на PHP (Perl и т. д. и т. п.). Если же выберем IIS, тогда будем использовать технологию ASP (Active Server Pages). Веб-страницы со скриптами в этом случае будем писать на VBS (Visual Basic Script – этот язык очень похож на бейсик, который все мы изучали в школе) или на JavaScrip. Есть, конечно, ещё много различных вариантов, на чём писать и что использовать, я перечислил то, что лежит на поверхности. Остановимся, пожалуй, на IIS с ASP и VBS – вариант наиболее простой для понимания и освоения. Весь перечисленный функционал реализовывать не будем, но кое-что всё-таки покажем для примера.

Создаём сайт на веб-сервере IIS

  • Control Panel –> Administrative Tools –> Internet Services Manager (оснастка, управляющая IIS).
  • Правой мышкой по компьютеру –> New –> Web Site –> запустился мастер –> пишем название сайта (любое) –> назначаем ему IP-адрес –> указываем папку, которая будет домашним каталогом сайта (туда будем складывать веб-странички со скриптами) –> ничего не трогаем, жмём «Next» –> «Finish». Сайт готов, он появился в левой половине оснастки.

Скрипт №1

Для начала сделаем страницу со скриптом, который просто обращается к нашей БД и полностью извлекает оттуда содержимое таблицы tbLogs. Делать можно в чём угодно, в том числе и в блокноте (номера строк писать не надо – это для удобства комментирования). Файл назовём bd.asp; сохраним его в домашний каталог сайта.

bd.asp

1 <html>

2 <head>

3 <title>tbLogs</title>

4 </head>

5 <body bgcolor="#FFFFFF" text="#000000">

6 ------ Таблица <b>tbLogs</b> ------- <br><br>

7

8 <% set MyConnection = Server.CreateObject("ADODB.Connection")

9

10 MyConnection.Open "Driver={Microsoft Access Driver (*.mdb)};" & _

11 "DBQ=WinRadius.mdb;" & _

12 "DefaultDir=C:\(radius)\WinRadius;" & _

13 "Uid=Admin;Pwd=;"

14

15 set rsLogs=MyConnection.Execute ("SELECT * FROM tbLogs")

16

17 response.write "<table width=90% border=1 cellspacing=0 align=center><tr><td><b>happen</b></td>"

18 response.write "<td><b>username</b></td><td><b>duration</b>"

19 response.write "</td><td><b>input</b></td><td><b>output </b></td><td>"

20 response.write "<b>fee</b></td></tr>"

21

22 do while not rsLogs.EOF

23 response. write "<tr>"

24 response.write "<td>" & rsLogs("happen") & "</td><td>" & rsLogs ("username") & "</td><td>" & rsLogs("duration")

25 response.write "</td><td>" & rsLogs ("input") & "</td><td>" & rsLogs ("output") & "</td><td>" & rsLogs ("fee") & "</td>"

26 response. write "</tr>"

27 rsLogs.movenext

28 loop

29

30 response.write "</tr></table>"

31 rsLogs.Close

32 rsLogs = null %>

33 </body>

34 </html>

Разбор bd.asp:

  • Строки 1-6: здесь всё понятно – простой HTML.
  • Строка 8: значок «<%» открывает скрипт. При помощи метода CreateObject объекта Server создаётся соединение ADO – MyConnection (которое в свою очередь тоже является обьектом и имеет набор свойств и методов).
  • Строки 10-13: при помощи метода OPEN объекта MyConnection открывается соединение с базой данных RADIUS. В строке соединения (строки 11-13) задаются параметры соединения с БД (по порядку): драйвер, имя файла БД, директория с файлом БД (не забудьте вписать туда директорию, в которой лежит WinRadius.mdb), имя, пароль (пароль не задан и это, конечно же, надо тоже исправить).
  • Строка 15: при помощи метода Execute объекта My Connection выполняем SQL-запрос и ответ помещаем в переменную rsLogs (которая является набором записей, содержащим результат запроса к БД). Структура этой переменной определяется запросом, т.е. если на выходе будет таблица, то rsLogs будет иметь структуру данной таблицы. Чтобы вывести данные из этой переменной, надо организовать цикл, выполняющийся до тех пор, пока набор записей не будет прочитан, что мы и делаем в последующих строках (22-28).
  • Строки 17-21: делаем шапочку для таблицы, в которой будут отображены данные, считанные из БД.
  • Строка 22: начало цикла, в котором будем читать и выводить содержимое переменной rsLogs до тех пор, пока её полностью не прочитаем (not rsLogs.EOF).
  • Строки 23-26: выводим набор записей из rsLogs в таблицу на печать (т.е. на экран). Делаем это при помощи метода write объекта Response. Если содержимое вывода является HTML, то помещаем его в кавычки; если содержимое вывода какая-либо переменная, то пишем её без кавычек. HTML и переменные можно чередовать в выводе, объединяя их символом «&».
  • Строка 27: перемещаемся на следующую строку набора записей, содержащихся в rsLogs.
  • Строка 28: идём в начало цикла.
  • Строка 30: закрываем теги,которые мы открыли перед циклом вывода данных (22028)
  • Строки 31-32: закрываем набор записей rsLogs и скрипт символом «%>».
  • Строки 33-34: конец страницы.

Результат обращения к данной странице:

Рисунок 10

Набираем в браузере: http://IP веб-сайта/bd.asp.

В ответ получаем содержимое таблицы БД, в которую сложились логи с DSA-3100, выступающего в качестве NAS (думаю, что у всех всё заработало).

Скрипт №2

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

  1. Проверяем, введено ли что-нибудь в поля «логин» и «пароль»:
    • если оба поля не заполнены, или не заполнено какое-либо одно поле, то снова выдаём пустую форму (т.е. возвращаемся к пункту 1);
    • если оба поля заполнены, то переходим к пункту 2.
  2. Обращаемся к БД и проверяем правильность логина и пароля:
    • если пароль и логин правильные, то выдаём пользователю статистику его соединений;
    • если неправильные, выдаём сообщение «Неправильное или несуществующее имя пользователя или пароль!».

bd2.asp

1 <html>

2 <head>

3 <title>tbLogs</title>

4 <META http-equiv=Content-Type content="text/html; charset=windows-1251">

5 </head>

6 <body bgcolor="#FFFFFF" text="#000000">

7 <%

8 Dim sSearchLogin

9 Dim sSearchPassword

10

11 sSearchLogin = Request.Form("login")

12 sSearchPassword = Request.Form("password")

13

14 if sSearchLogin = "" or sSearchPassword = "" Then

15

16 response.write "<div align=center> <table cellpadding=10><tr><td bgcolor=#CC6600>&nbsp;</td></tr></table>"

17 response.write "<p><b><font color=#CC6600>Mega Wi-Fi network billing system </font></b></p><p>&nbsp;</p> <p><br><br>"

18 response.write "--- Сервер статистики --- "

19 response.write "<form name=form method=post action=bd2.asp><table align=center border=1><tr><td ><b>Логин:</b></td><td > "

20 response.write "<input type=text name=login></td></tr><tr><td ><b>Пароль:</b></td><td> "

21 response.write "<input type=password name=password><input type=submit name=Submit value=вход> </td></tr></table></form>"

22 Response.End

23

24 End If

25 %>

26 <%

27 set Connection = Server.CreateObject("ADODB.Connection")

28

29 Connection.Open "Driver={Microsoft Access Driver (*.mdb)};" & _

30 "DBQ=WinRadius.mdb;" & _

31 "DefaultDir=C:\(radius)\WinRadius;" & _

32 "Uid=Admin;Pwd=;"

33

34 strSQL="SELECT password FROM tbUsers WHERE username = " & "'"& sSearchLogin &"'"

35

36 set rsUsers=Connection.Execute (strSQL)

37 pas=""

38 do while not rsUsers.EOF

39 pas=rsUsers("password")

40 rsUsers.movenext

41 loop

42

43 If pas = sSearchPassword then

44

45 strSQL1="SELECT * FROM tbLogs WHERE username = " & "'"& sSearchLogin &"'"

46 set rsLogs1=Connection.Execute (strSQL1)

47

48 response.write "<P align=center>Личная статистика пользователя <b>" & sSearchLogin & "</b></p><br><br>"

49 response.write "<table width=90% border=1 cellspacing=0x align=center><tr><td><b>начало сессии</b></td>"

50 response.write "<td><b>username</b></td><td><b>продолжительность [мин]</b>"

51 response.write "</td><td><b>input [Mb]</b></td><td><b>output[Mb] </b></td><td>"

52 response.write "<b>стоимость [$]</b></td></tr>"

53 do while not rsLogs1.EOF

54 input=input+rsLogs1("input")

55 output=output+rsLogs1("output")

56 duration=duration+rsLogs1("duration")

57 fee=fee+rsLogs1("fee")

58

59 response. write "<tr>"

60 response.write "<td>" & rsLogs1("happen") & "</td><td> " & rsLogs1("username") & "</td><td>" & round((rsLogs1("duration")/60),2)

61 response.write "</td><td>" & Round(((rsLogs1 ("input"))/1024/1024) ,3) & "</td><td>" & Round(((rsLogs1 ("output"))/1024/1024) ,3)

62 response.write "</td><td>" & ((rsLogs1("fee")) /100) & "</td>"

63 rsLogs1.movenext

64 response. write "</tr>"

65 loop

66

67 response.write "</tr></table>"

68 response.write "<br><br><br><P align=center>__________________________________<br>"

69 response.write "суммарный исходящий трафик: <b>" & round((output/1024/1024),3) & "</b> Mb<br><br>"

70 response.write "суммарный входящий трафик: <b>" & round((input/1024/1024),3) & "</b> Mb<br><br>"

71 response.write "суммарная продолжительность сессий: <b>" & round((duration/60/60),2) & "</b> часов <br><br>"

72 response.write "расход за отчётный период: <b>" & (fee/100) & "</b> $ <br>__________________________________________<br></p>"

73 rsLogs1.Close

74 rsLogs1 = null

75 response.end

76

77 End If

78

79 response.write "Неправильное или несуществующее имя пользователя или пароль!"

80 %>

81

82 </body>

83 </html>

Разбор bd2.asp :

  • Строки 1-6: здесь всё понятно – простой HTML.
  • Строка 7: значок «<%» открывает скрипт.
  • Строки 8,9: объявляем переменные, в которые считаем из формы логин и пароль.
  • Строки 11,12: получаем логин и пароль из POST-запроса.
  • Строка 14: начало условия (проверяем введено ли имя пользователя и пароль – сравниваем то, что получили из запроса с пустотой).
  • Строки 16-22: выводим чистую форму, если пользователь не заполнил оба или одно из полей «логин» и «пароль».
  • Строка 24: конец условия.
  • Строка 25: конец скрипта.
  • Строка 26: начало нового скрипта, который будет выполняться в том случае, если имя и пароль введены.
  • Строка 27-32: подключаемся к БД.
  • Строка 34: формируем SQL запрос к БД, который выбирает пароль для пользователя с именем, которое введено в форму.
  • Строка 36: выполняем запрос.
  • Строка 37: объявляем переменную «pas» и приравниваем её к пустой строке.
  • Строки 38-41: читаем набор записей, в котором содержится ответ на SQL-запрос, и присваиваем его значение переменной «pas». Если бы в базе не нашлось пароля для введённого имени, тогда бы переменная «pas» осталась бы пустой.
  • Строка 43: если выбранный пароль совпадает с введённым, то выполняем с 45 по 76 строку; если не совпадает, тогда выполняем строку 80 – выдаём «Неправильное или несуществующее имя пользователя или пароль!».
  • Строки 45-76: делаем запрос к БД, в ответ получаем выборку для нужного пользователя. Выводим статистику на экран в удобной форме. Response.End (76 строка) означает конец вывода.
  • Строка 77: конец условия.
  • Строка 79: если условие не выполнилось, т.е. пользователь ввёл неправильный пароль или имя, – выдаём соответствующее сообщение.
  • Строки 83-84: конец страницы.

Результат обращения к bd2.asp (результат выполнения скрипта)

Заходим на страницу, получаем форму для ввода логина и пароля (неплохо было бы и здесь использовать SSL, чтобы злоумышленники не перехватили открытый POST-запрос c логином и паролем, но о том, как прикрутить SSL к IIS как-нибудь в другой раз – это довольно-таки легко сделать при помощи пакета OpenSSL).

Рисунок 11

Рисунок 12

Вводим правильные логин и пароль, получаем результат (если логин или пароль неправильные, то ничего не получаем).

Поздравляю! Мы написали хотспотный биллинг.

Выводы

На первый взгляд всё довольно сложно и запутанно. Но если разобраться, ничего сложного нет: NAS-серверы, в роли которых выступают DSA-3100, проводят аутентификацию пользователей и пишут CDR-подобную статистику в единую базу данных RADIUS. Для реализации различных дополнительных (практически любых) функций биллинга разрабатываем веб-интерфейс, для чего используем, например, ASP или PHP. Тарификация пользователей может осуществляться на основе использованного времени или по трафику. В случае с одиночно стоящим хотспотом – сервисный шлюз DSA-3100 и тикет-принтер DSA-3100P – являются биллингом во плоти, никаких гаек подкручивать не надо, с построением хотспота справится любой, но тарификация будет вестись только по времени.

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

Я говорю следующее: есть простые HOTSPOT и для этого подойдёт DSA-3100 – любой – опытный и не очень пользователь может его себе поставить и всё заработает с пол-оборота. Но бывают сложные решения, и этот шлюз может, несмотря на всю его простоту, быть использован и для сложного решения.

Я показал на базе продуктов от Microsoft и RADIUS-сервере под Windows, какую роль будет выполнять шлюз в этом случае. Microsoft – это просто, визуально, понятно любому. Либо можно использовать связку: Linux + (WEB)Apache/php + (БД)Oracle + (RADIUS)Radiator + NAS(DSA-5100).

Видимо, наиболее применимы эти устройства будут для организации точек HOTSPOT в кафе, ресторанах, гостиницах и прочих заведениях. Но возможно их использование и для серьёзных операторских решений, потому как любой уважающий себя биллинг поддерживает протокол RADIUS. При помощи данных устройств можно легко интегрировать HOTSPOT в сеть сотового оператора. Такое решение, например, представил «Енисейтелеком» (это ведущий оператор сотовой связи в Красноярском крае) на выставке «Связь – ИНФОКОМ 2004»: пользователи отправляли sms на сервисный номер оператора и получали в ответ sms-сообщение с именем и паролем для доступа в Интернет. Шлюз взаимодействовал с биллингом оператора (он поддерживал протокол RADIUS), деньги за пользование услугой снимались с сотового счёта абонента. Очень оригинальная и комфортная с точки зрения пользователя HOTSPOT схема доступа к услуге.

Вместе с тем шлюз DSA-3100 сможет сэкономить немало времени на настройку авторизации и тарификации администратору обычной проводной (в том числе домашней) сети, предоставив в его распоряжение надежную систему авторизации по IP + MAC в совокупности с авторизацией по логину и паролю.


Комментарии
 
  23.02.2008 - 05:23 |  Андрей

Подскажите пож-та, а возможно ли сделать так, чтобы был отчет по посещенным сайтам (url)??
Спасибо!

  26.02.2008 - 01:38 |  Андрей Платонов

Нет, такого сделать невозможно по двум причинам:
1. такого функционала там нет и сложно найти обоснование для чего он там нужен
2. самих шлюзов DSA-3100 тоже нет - они уже сняты с производства (статья написана приличное время назад)
3. Сейчас вместо DSA-3100 есть DSA-3110 - разработчик - D-Link Russia - но там наверняка тоже нет такого функционала

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru