Институт вычислительной математики и математической геофизики СОРАН



IX международная конференция
"Проблемы функционирования информационных сетей"
(ПФИС-2006)

Новосибирск, 30 июля – 4 августа
важная информация

Тезисы докладов


Биллинг

Дрозд А.С.

ОмГУ,
Люксофт (Омск)

Рассматривается создание биллинговой системы и безопасного шлюза для домашних локальных сетей, а также для небольших и средних организаций. С использованием библиотеки pcap (Packet Capture),СУБД MySQL, веб-сервера Apache, RADIUS (Remote Authentication Dial In User Serice) сервера freeradius под управлением операционной системы FreeBSD.

ВВЕДЕНИЕ

Существует множество способов реализовать биллинговую систему (систему для подсчета трафика). Учет можно вести как на клиенте, так и на маршрутизаторе. В свою очередь, маршрутизатор может быть как аппаратный, так и программный, построенный на базе операционных систем типа Unix или Windows. Перед автором была поставлена задача построения биллинговой системы, а точнее, подсчета Интренет-трафика для пользователей домашней локальной сети. Попытки реализовать стандартными средствами такими, как прокси сервер (Squid, Socks), NAT не удовлетворяли ни пользователей, ни заказчика, ни автора. Основные требования реализации проекта были следующими: -точный подсчет трафика без ограничения возможностей пользователя (клиенту должны быть доступны все порты, любые протоколы); -система должна автоматически осуществлять блокировку доступа пользователя в случае превышения лимита по трафику; -возможность получения информации о состоянии счета в режиме реального времени; -необходимость получения пользователем информации о посещении сетевых ресурсов; -невысокая стоимость проекта; -использование некоммерческого программного обеспечения. Результатом работы должен оказаться шлюз с высоким уровнем безопасности и программа, написанная на языке C. Программа должна работать под Unix подобными операционными системами (с поддержкой pcap). Также создание версии программы для операционных систем типа Windows возможно в рамках реализации проекта. Поставленная автором задача не нова, однако, в рамках ее рассмотрения проблема информационной безопасности проекта является актуальной и широко не исследовалась. Наиболее простым и очевидным способом построения билинговой системы является установка сервера с возможностью подсчета входящего трафика с последующей установкой на сервер Unix подобной операционной системы с настроенными ipfw, iptables или ipchains. Описанный выше способ построения биллинговой системы наиболее применим в малых организациях с небольшим числом пользователей (до 20 человек), где у системного администратора есть ресурсы по выявлению нарушений работы пользователей. Описанный в настоящей работе проект был разработан для домашних и коммерческих локальных сетей с числом пользователей более 20, где применение простейшей биллинговой системы не является оптимальным.

РЕШЕНИЕ Использование VPN для безопасного выхода в Интернет и аутентификацию на основе Radius сервера. При работе в рамках названной выше схемы для выхода пользователя в глобальную сеть достаточно создать сетевое подключение "Подключение к виртуальной частной сети через Интернет" (Windows). Данная операция может быть причислена к простым: по уровню сложности близка к созданию модемного соединения. В свою очередь, на сервере создана база данных, в которой хранится информация о пользователе, его платежах, прошедшем трафике, ошибки соединения (удобно для нахождения злоумышленника). Сама программа всегда "работает" на интерфейсе и при необходимости добавляет информацию о прошедшем трафике. Настоящим проектом предусмотрены скрипты для администратора и рядового пользователя. Использование данных скриптов дает возможность добавлять и изменять информацию о пользователе, а также получать данные об ошибках соединения и статистике пользователя.

ВЫБОР ОПЕРАЦИОННОЙ СИСТЕМЫ И БРЕНДМАУЭР Аппаратный маршрутизатор не подходит для решения поставленной задачи в силу высокой стоимости. Поэтому возникает подзадача выбора программного маршрутизатора, а точнее выбора операционной системы, которая должна удовлетворять нескольким требованиям: -безопасность; -стабильность; -гибкость в настройке. Предпочтение было отдано программному серверу платформы Unix (FreeBSD), который из существующих серверных операционных систем зарекомендовал себя как наиболее стабильный и защищенный.

АУТЕНТИФИКАЦИЯ И АВТОРИЗАЦИЯ В качестве аутентификации была использована технология RADIUS. Radius (Remote Authentication Dial In User Service), что дословно означает "служба удаленной аутентификации входящих звонков пользователей". Служба RADIUS является протоколом для передачи информации по аутентификации, авторизации и конфигурации между сервером доступа, далее NAS, и сервером аутентификации - RADIUS. Стандартно существует два шага в процессе аутентификационного запроса, приходящего от NAS (Network Access Server): авторизация и аутентификация. Аутентификация должна быть разрешена в период авторизации. Основная причина этого состоит в том, что пользователь может быть не допущен до метода аутентификации в период авторизации. В данном проекте Radius (программа freeradius) использует базу данных для хранения информации о пользователе: имя пользователя, IP адрес и пароль. Данный способ хранения информации о пользователе удобен, так как дает возможность добавлять пользователя с помощью Perl скрипта через Web интерфейс (будет показано ниже).

ВЫБОР СУБД. СОЗДАНИЕ БАЗЫ ДАННЫХ. В настоящее время существует множество бесплатно распространяемых СУБД таких, как PostageSQL, mSQL, MySQL и прочие. Открытые СУБД уступают по своим характеристикам коммерческим СУБД Oracle или MS SQL Server. Однако, в случае выполнения малых/средних задач и правильной настройке открытые СУБД будут функционировать приближенно к параметрам работы коммерческих СУБД. В качестве СУБД был выбран MySQL в силу описанных выше преимуществ и предыдущего опыта работы автора с СУБД в рамках его профессиональной деятельности в компании "Компас-М". Проектная база данных будет состоять из четырех таблиц: -Users - информация о пользователях; -Traffic - информация о проходящем через роутер трафике; -Money - информация о поступивших взносах от пользователей; -Rejects - информация о всех попытках, которые отброшены. Доступ к MySQL осуществляется на языке C и Perl, так как сама билинговая система написана на C, а web интерфейс на языке Perl. СУБД MySQL поддерживается большинством операционных систем (проект MySQL - является "open source"). Далее будет рассмотрено программирование под Unix. При работе с клиентской библиотекой MySQL необходимо включить в программу файл mysql.h, а затем подключить файл библиотеке на этапе компоновки программы.

НАПИСАНИЕ ПРОГРАММЫ В основу написания программы была взята технология Packet Capture, которая также используется в программе tcpdump, которая основана на bpf (Berkley Packet Filter).

WEB-ИНТЕРФЕЙС И НАПИСАНИЕ СКРИПТОВ Как правило, при проектировании биллинговой системы удобство работы пользователя не является основополагающим критерием, однако, пользователь должен в любой момент знать свой баланс. Для доступа пользователя к базе данных был выбран web-интерфейс. Основные преимущества данной технологии следующие: -нет необходимости в написании множества клиентов для разных операционных систем (вариант с Java не рассматриваем в связи с медлительностью приложений написанных на ней); -у пользователя должен быть только web браузер, который существует во всех современных операционных системах; -нет необходимости в установке клиентской части (особенно важно для начинающих пользователей). В качестве web сервера был выбран Apache. Некоторые Web-серверы содержат встроенный интерпретатор Perl, что позволяет генерировать документы на Perl без запуска нового процесса. Системные издержки на чтение не изменившейся страницы пренебрежимо малы для страниц с редкими обращениями (даже порядка нескольких обращений в секунду). Однако, вызовы CGI существенно замедляют компьютер, на котором работает Web-сервер. Приведем простейший сценарий для проверки пользователем своего баланса.

РЕЗУЛЬТАТЫ В результате получилась стабильная система, которая проверялась на следующем оборудовании в течение нескольких месяцев: Celeron-1000/256Mb/20Gb с пропускной способность канала 115.5Кб/c, на 15 машин. Средняя нагрузка на канал - 4-5Гб в месяц.

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ Данная система применялась в компании "Компас-М" и в домашней локальной сети по улице Масленникова 45.

ЗАКЛЮЧЕНИЕ Стабильная, надежная и безопасная биллинговая система является необходимым условием для успешной работы провайдинговых компаний. Разработанная система удовлетворяет основным требованиям, которые поставил заказчик. Можно выделить следующие преимущества данного проекта: -бесплатна; -не использовались коммерческие программы, что делает систему в какой-то мере независимой; -возможно детальное протоколирование пакетов; -гибкость системы; -стабильность гарантируется операционной системы FreeBSD (у автора сервер на базе этой операционной системы пробыл без перезагрузки более пяти месяцев, что не является рекордом, перезагрузка осуществилась из-за долгосрочного отключения электричества); -сложность в воровстве трафика у пользователя достигается за счет использования Radius сервера, VPN технологии (не рассматривается случай, когда пользователь сам выдаст пароль по собственной невнимательности); -простота в настройке пользовательского компьютера.

Примечание. Тезисы докладов публикуются в авторской редакции



Ваши комментарии
Обратная связь
[ICMMG SBRAS]
[Головная страница]
[Конференции]

© 2006, Институт Вычислительной Математики и Математической Геофизики СО РАН, Новосибирск
© 2006, Сибирское отделение Российской академии наук, Новосибирск
    Дата последней модификации: 06-Jul-2012 (11:52:52)