Сегодня 23.11.2017 , 12:22 Четверг
Shga
Вы вошли как Гость | Группа "Гости"

 



  • Проект ShagaEngine(далее,просто "система") возник из-за необходимости поставить точку в вопросе "Чем же мне воспользоваться для подсчета трафика и биллинга,если я использую Squid Web Proxy Cache"?
    В бездонных недрах сети можно найти огромное количество ответов на этот вопрос и предложений,
    но те или иные решения не всегда устраивают пользователей,ввиду своей "неполноценности" и/или по другим причинам.


    Целю прокта является "упрощение" работы по подсчету трафика,при условии использования кешируюшего прокси сервера
    Squid.Напоминаем,что Squid изначально НЕ ПРЕДНАЗНАЧЕН для подсчета трафика,и является КЕШИРУЮШИМ ПРОКСИ СЕРВЕРОМ.


    Поэтому,для достижения наших целей воспользуемся Squid Web Proxy Cache ,с измененным в некоторых местах исходном
    кодом,для обеспечения наличия в базе данных информации об использованном трафике.


    Возможности системы:

    Подсчет трафика с точностью до секунды.
    Генерация отчетов(текстовых) для каждого пользователя за текущий месяц,а также за любое другое время для всех пользователей.
    Генерация графических отчетов за любое время для каждого пользователя или группы.
    Возможность отправки сообщений администратору или любому другому пользователю.
    Управление пользователскими паролями.
    Управление правами доступа пользователя (назначить администратором,запретить читать/писать/удалить сообщения)
    Exclude Hosts - с этих IP адресов трафик считатся не будет.
    Гибкое управление пользователями и группами.
    Создание/управление тарифными планами.
    Генерация/управление каратами доступа для прокси сервера.

    Данная версия распространяется бесплатно,в стиле "как есть",без каких либо гарантий(явных и неявных),в надежде,что поможет конечному пользователю.

    Система разрабатывалась и тестировалась со следующем ПО.

    OS: FreeBSD 6.2-RELEASE #0
    Apache Web Server 2.2.3
    Squid Web Proxy Cache 2.6-STABLE13 (shaga patch)
    PHP 5.1.6
    GCC version 3.4.6 [FreeBSD] 20060305
    Mysql 5.0.27
    GNU bash, version 3.1.17

    Данная система состоит из 4 частей.
    shaga_redir - обеспечивает проверку и (в случае необходимости) перенаправление пользователей.
    shaga_auth - обеспечивает процесс аутентификации пользователей
    dahlia - обеспечивает подсчет трафика , блокироку/разблокировку пользователей,биллинг
    web interface - Одним словом можно назвать 'средство контроля вышеупомянутами средствами'
    обеспечивает просмотр статистики,ежемесячных отчетов,контроль над пользователсками группами и многое другое.

    Краткое описание установки.

    Установка dahlia

    cd dahlia
    su
    bash install.sh


    сценарий установки создаст иерархию директориев в /usr/local/dahlia и скопирует все необходимые файлы туда.
    Вам придется позаботиться о том ,чтоб dahlia стартовала после mysql,иначе программа простo не будет работать.
    Рекамендуется запустить dahlia сценарием /usr/local/etc/rc.d/dahlia.sh.
    Но перед этим вам необходимо добавить в /etc/rc.conf следующие строки.
    Dahlia_enable="YES"
    Dahlia_pidfile="/var/run/dahlia.pid"

    Отредактируйте конфигурационный файл /usr/local/dahlia/etc/dahlia.conf под свои нужды.
    Исходные тексты программы вы найдете в директории src

    На этом можно считать Dahlia установленной

    Установка shaga_auth

    cd shaga_auth
    make

    Установка shaga_redir

    cd shaga_redir
    make
    cp shaga_redir.cfg /squid/config/path/shaga_redir.cfg

    ------
    Создадим директорию для журналов событий.
    mkdir /var/log/shaga
    Не забудьте установить на эту директорию соответствующие права доступа

    Установка веб интерфейса

    mkdir /usr/local/www/shaga-engine
    cd shaga-engine
    cp -R * /usr/local/www/shaga-engine/
    vi /usr/local/etc/apache22/httpd.conf
    Добавляем следующие строки
    #
    Alias /shaga "/usr/local/www/shaga-engine/"
    Alias /cardcontrol "/usr/local/www/shaga-engine/php/html_cards/"
    #
    <Directory "/usr/local/www/shaga-engine/">
    Options All
    AllowOverride None
    AuthUserFile /usr/local/etc/apache22/.chito
    AuthGroupFile /dev/null
    AuthName "Password Required"
    AuthType Basic
    Require valid-user
    Order allow,deny
    Allow from 10.0.0.0/24
    </Directory>
    #
    <Directory "/usr/local/www/shaga-engine/php/html_cards/">
    Options All
    AllowOverride None
    AuthUserFile /usr/local/etc/apache22/.chito
    AuthGroupFile /dev/null
    AuthName "Password Required"
    AuthType Basic
    Require valid-user
    Order allow,deny
    Allow from 10.0.0.0/24
    </Directory>
    #

    Создайте базу данных(рекомендуемое имя базы: shaga)схему можете взять из директории mysql
    Отредактируйте конфигурационный файл shaga.cfg из директории config под свои нужды


    Теперь самое главное. Установка пропатченной squid,без которого( * с оговоркой)все это теряет смысл
    Сконфигурируйте squid следущим образом ./configure --enable-shaga --другие_параметры
    После компиляции и установки,зайдите в директорию shaga.Скомпилируйте и установите модуль в /usr/local/lib/ (make;make install)
    Отредактируйте squid.conf под свои нужды.В самом конце конфигурационного файла вы найдете несколько строк,опеспечивающих работу системы. Вот они!

    enable_shaga_engine on -включаем поддержку shaga
    shaga_db_host - ip adresss/FQDN на котором запущен сервер mysql.
    shaga_db_port - порт ,на котором принимает соединения mysql
    shaga_db_name - имя базы ,в которую будем записывать все,и из которого будет читаться информация для подсчета трафика
    shaga_db_user - имя пользователя базы
    shaga_db_pwd - пароль пользователя базы

    # Пример из рабочей конфигурации

    #
    emulate_httpd_log off
    enable_shaga_engine on
    shaga_db_host localhost
    shaga_db_port 3306
    shaga_db_name shaga
    shaga_db_user root
    shaga_db_pwd eonflax
    #
    #
    auth_param basic program /usr/local/squid/libexec/shaga_auth localhost shaga root eonflax 3306
    auth_param basic children 7
    auth_param basic realm Proxy Auth
    auth_param basic credentialsttl 2 hours
    acl all_users proxy_auth REQUIRED
    http_access allow all_users our_networks
    #


    redirect_program /usr/local/squid/libexec/shaga_redir /usr/local/squid/etc/shaga_redir.cfg
    redirect_children 77
    redirector_bypass off

    #

    Имейте ввиду!В базу попадает то,что записывается в access.log.
    Будьте осторожно с настройками squid ,которые влияют на добавление записей в access.log(пр. log_access)

    В настоящий момент все описанное здесь нормально функционирует .

    * Для этнузиастов!
    Данная система не предполагает обьязательного использования Squid.Желающие могут писать собстевенные программы для заполнения базы данных,и для манипулирования ими.
    Для администрирования же этих данных можно использовать веб интерфейс ShagaEngine.


 

Copyright Arthur Tumanyan
design by TUMY