Перейти до

-HS-

Маглы
  • Всього повідомлень

    23
  • Приєднався

  • Останній візит

Сообщения додав -HS-

  1. 2 ar2r

    Это необходимое условие - все пропускать через прокс ?

    Мы тоже как то делали похожим образом, помню там была проблема в том, что все что заворачивалось на прокс не проходило, или както криво проходило через правила форварда QUEUE, подробностей уже не помню.

    Попробуй локализовать проблему, убрав прокс (сделав просто маскарад) и проверить подсчет трафика проходящего просто через форвард.

  2. Новый довесочек к этой сборке - шейпер входящего и исходящего трафика впн соединений реализованный следующим образом:

    Создаем файл с произвольным именем в каталоге /etc/ppp/ip-up.d, например route с таким кодом

    #!/bin/bash
    
    INTERFACE=$1
    LOCAL_IP=$4
    REMOTE_IP=$5
    IPPARAM=$6
    
    LOGIN="stg_sql_user"
    PASSWORD="stg_sql_password"
    DB="stg_billing"
    
    IPTABLES=/sbin/iptables
    
    RES=`echo $REMOTE_IP | grep "^192\.168\.5.*" -c`
    if [[ $RES = 1  ]]
    then
       DOWN=`/usr/bin/mysql -u $LOGIN --password="$PASSWORD" -e "select Userdata1  from users where ip = '$REMOTE_IP'" $DB| /usr/bin/tail -n 1`
       UP=`/usr/bin/mysql -u $LOGIN --password="$PASSWORD" -e "select Userdata2  from users where ip = '$REMOTE_IP'" $DB| /usr/bin/tail -n 1`
       if [[ $DOWN = '' ]]
       then
           DOWN='2048'
       fi
       if [[ $UP = '' ]]
       then
           UP='128'
       fi
       DEVICE=$INTERFACE
       /sbin/tc qdisc del dev $DEVICE root
       /sbin/tc qdisc add dev $DEVICE root tbf rate ${DOWN}Kbit latency 50ms burst $[$DOWN*1024]
       /sbin/tc qdisc del dev $DEVICE handle ffff: ingress
       /sbin/tc qdisc add dev $DEVICE handle ffff: ingress
       /sbin/tc filter add dev $DEVICE parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${UP}Kbit burst $[$DOWN*1024] drop flowid :1
    fi
    

     

     

    Где:

    LOGIN="stg_sql_user"

    PASSWORD="stg_sql_password"

    DB="stg_billing"

    логин, пароль и название базы SQL используемой stg сервером

     

    Скорость загрузки у пользователя в конфигураторе пишем в поле Userdata1, а скорость аплоада у пользователя пишем в Userdata2 в килобитах. Если эти значения не указаны используются DOWN='2048', и UP='128' - загрузка 2Мбита и аплоад 128 Кбит соотв.

     

    Строчка RES=`echo $REMOTE_IP | grep "^192\.168\.5.*" -c` определяет является ли это подключение впн соединением пользователя (в данном случае это сеть 192.168.5*, если у Вас другая, то необходимо сделать соотв. изменения.)

     

    Жду критики.

    Спасибо за внимание.

    Адрес для связи: omega@ua.fm

     

    Для удобства в веб админке 8 версии можно поля Userdata1 и Userdata2 можно назвать Download и Upload соотв. Это можно сделать в пункте Userdata раздела Настройки.

  3. решил вернуться к простому freeradius - у..всё сделал..но дальше столкнулся с бочиной -

    есть ли деньги, нету ли денег, онлайн/всегда он лайн/не он лайн = старгазеру на это глубоко наплевать, трафик не считается, бабки не снимаются...подключаются и пользуются Инетом все кому не лень..

    Проверь срабатывают ли скрипты OnConnect, OnDisconnect и обязательно используй коллектор трафика ipq_linux он хорошо считает трафик с впн, правила в форварде должны быть QUEUE, например

    $IPTABLES -I FORWARD -s $IP -j QUEUE

    $IPTABLES -I FORWARD -d $IP -j QUEUE

  4. Наверное ты прав - отдельный модуль, это будет наилучшее решение.

     

    Стоит ожидать такого модуля к релизу ? Хотелось бы чтобы такой модуль мог передавать не только текущую стату, а и например тариф, и т.д.

  5. Можно этот момент поподробнее.

     

    Возможно ты имеешь ввиду, что при правке какойто части кода ядра прийдется править и модуль - разве там нет какогото постоянного внутреннего набора функций доступных любому модулю и не меняющегося от билда к билду? Если в этом наборе нет соотв функции может ее добавить ?

    Нет, я не это имею в виду. API ядра фиксировано. И через это API нельзя определить, используется ли модуль для авторизации Always Online или нет.

    Повторюсь: Если в этом наборе нет соотв функции может ее добавить ?

  6. Незнаю про разводы, но 4 мбита за 250 грн укртел выдает чесно, без всякой обрезки трафика и т.д. С первого дня перехода на этот пакет скорость ни разу не падала.

    И даже если они и не гарантируют 4 мегабита, пусть там будет (ну предположим) 2 мбита точно, а 4 когда загрузка каналов позволяет - и где Вы найдете, пусть даже такой анлим за 250 грн в месяц ???

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

     

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

  7. ...

     

    2 Разработчики. Поясните мне чем плох вариант с отменой таких проверок в режиме "всегда онлайн" ? Неужели в таком режиме обязательны проверка на соответствие ип ?

     

    Как пользователи биллинга смотрят на то чтобы внести такое изменение в будущий билд или готовящийся (на сколько я понял) релиз ?

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

    Можно этот момент поподробнее.

     

    Возможно ты имеешь ввиду, что при правке какойто части кода ядра прийдется править и модуль - разве там нет какогото постоянного внутреннего набора функций доступных любому модулю и не меняющегося от билда к билду? Если в этом наборе нет соотв функции может ее добавить ?

  8. И еще. Не пробовал коннектится авторизатором не на адрес сервера в реальной сети, а на его адрес в сети VPN? Я так мыслю, на момент запуска авторизатора пользователь уже подключен к VPN?

    у меня так и работал.... и работал отлично!

    я прописывал лоиги и пасс + ip в файлике chap-secrets, а в stg все онлайн + одинаоквый пароль + логин который в chap-secrets и у меня всё работало

     

    Как я писал выше - авторизатор выдает ошибки даже если указывать в качестве стг-сервера впн адрес сервера и запускать его при уже поднятом впн.

     

    2 Bolik_Stav. Когдато было точно также, счас добавилось не много автоматизации в это дело.

     

    2 Олл. Для решения проблемы был применен хак в виде предложенного Genius варианта с ->Authorize. Хотя не думаю что это идеальный вариант.

     

    2 Разработчики. Поясните мне чем плох вариант с отменой таких проверок в режиме "всегда онлайн" ? Неужели в таком режиме обязательны проверка на соответствие ип ?

     

    Как пользователи биллинга смотрят на то чтобы внести такое изменение в будущий билд или готовящийся (на сколько я понял) релиз ?

  9. Ребята !

    Расскажите можно ли добавить следующий функционал:

    При включенном режиме "Всегда онлайн" авторизатор и сервер не выполнял различного рода проверки которые приводят к ошибкам вида "Ваш логин уже используется", "Авторизатор уже запущен с другого IP", и тому подобное, а просто выводил текущую статистику на основании логина + пароля.

     

    Для чего ?

    Основная задача - при использовании с впн технологией. В базе как известно хранятся виртуальные ип пользователей, а авторизатор написан так, что он смотрит на каком ип он находится и передает его серверу, сервер видно смотрит с какого ип пришел запрос и какой локальный ип передал авторизатор. (Это после небольших опытов с ним выяснилось. Он по любому передает адрес сетевого интерфейса, а не виртуально ип вне зависимости от того какой адрес стг-сервера в нем прописать). Повторюсь, хотелось бы видеть утилиту которая просто показывает баланс по типу УТМ-трей.

     

    Это возможно ? Есть ли пачи для этого ? Что думают разработчики стг по этому поводу?

     

    PS

    madf - Два ип не предлогать.

  10. Думаю, какой из методов использовать, дело каждого.

    К томуже радиус протокол во фрирадиусе реализован неплохо, да и потдержка его тоже не запаздывает. Потому я его и выбрал.

    Это не значит что ваш радиус модуль плох, очень хорошо что он есть, просто я предпочитаю фрирадиус. Уверен есть люди которые также предпочтут его.

  11. Начало.

    Никакой ответственности за результаты того что здесь изложено я не несу, все действия Вы выполняете на свой страх и риск.

     

    Большое спасибо разработчикам старгейзера и ребятам MAX и Alferov за их разработки. Вся эта связка работает только благодаря их "апгрейдам" для старгейзера.

     

    Как все было раньше:

    Стоял stargazer с модулем коллектора трафика ipq_linux и текстовой бд file_store, раздача инета реализовывалась через vpn путем синхронного добавления руками пользователей в файл chap-secrets (pptpd) и бд stargazerа конфигуратором :)

     

    Что решено было сделать:

    Скрутить вместе stargazer + mysql + freeradius_mysql + vpn + stg-web,

    т.е. сделать все это в связке, автоматизировать процесс добавления, удаления, и т.д. пользователей.

     

    Применяемая ось - Debian GNU/Linux 4.0

     

    Приступим.

    Необходимые компоненты и их установка:

    1. stargazer

    1.1 Качаем пропатченую версию stargazer с модулем mysql и конфигуратором sgconf_xml:

    wget http://hs.dp.ua/stg/stg-2.4-2007.01.20-13.....pached.tar.bz2

    Распаковываем, компилируем, ставим - процедура стандартна.

    1.2 Ставим mod_store_mysql: Компилим его вручную:

    заходим в папку stg-2.4-2007.01.20-13.47.20/projects/stargazer/plugins/store/mysql

    запускаем файл build

    копируем получившийся mod_store_mysql.so в папку /usr/lib/stg/

    1.3 Компилим sgconf_xml:

    заходим в папку stg-2.4-2007.01.20-13.47.20/projects/sgconf_xml

    запускаем файл build

    получившийся файл sgconf_xml будет необходим в следующих пунктах (п.4.2).

    1.4 Конфигурируем stargazer:

    На свое усмотрение правим скрипты в каталоге /etc/stargazer

    Пример файла stargazer.conf и других скриптов можно взять http://hs.dp.ua/stg/configs.tar.bz2

     

    Обратите внимание на блок в stargazer.conf

     

    <StoreModule store_mysql>
       # stg_billing - название базы с которой будет работать биллинг
       # stg_sql_user - пользователь для этой базы
       # stg_sql_password - пароль для этого пользователя
       dbuser = stg_sql_user
       rootdbpass = stg_sql_password
       dbname = stg_billing
       dbhost = 127.0.0.1
    </StoreModule>

    Эти параметры Вам будут необходимы при настройке mysql и freeradius и веб админки.

     

    2. pptpd

     

    2.2. Установка:

    apt-get install pptpd

     

    2.2. Настройка:

     

    2.2.1 Файл /etc/pptpd.conf

    option /etc/ppp/options.pptpd
    #Диапазоны ВПНщиков
    remoteip 192.168.50.2-254
    localip 192.168.50.1

     

    2.2.2 Файл /etc/ppp/options.pptpd

    name pptpd
    refuse-pap
    refuse-chap
    refuse-mschap
    require-mschap-v2
    require-mppe-128
    # Два следующих параметра - адреса ДНС серверов
    ms-dns 192.168.50.1
    ms-dns 195.5.61.70
    debug
    proxyarp
    defaultroute
    lock
    nobsdcomp
    # Если все хорошо в п.2.2.5 то следующую строку нужно раскоментировать!
    # plugin radius.so

     

    2.2.3 Теперь для теста pptpd добавим в файл /etc/ppp/chap-secrets такую строку:

    test	*	test	192.168.50.2

     

    2.2.4 Перезапускаем pptp: /etc/init.d/pptpd restart

     

    2.2.5 Настраиваем на клиентской машине впн подключение и пытаемся подключится с логином test и паролем test.

    Если все нормально должно появится впн соединение с вирт IP адресом 192.168.50.2 и адресом сервера 192.168.50.1 - нужно раскоментировать последнюю строчку файла /etc/ppp/options.pptpd

     

    2.2.6 Перезапускаем pptp: /etc/init.d/pptpd restart

     

    2.2.7 Проблемы: Очень часто проблемы возникают с опцией require-mppe-128, ее можно убать, а у пользователей в настройках VPN в закладке безопасность выставить необязательное шифрование.

    Если проблемы другого рода то: логи, маны, гугль :(

     

    3. mysql

    3.1 Установка mysql сервера тривиальна:

    apt-get install mysql-server

     

    3.2 Создадем пользователя и базу для биллинга:

    mysql -u root

    Далее выполняем

    CREATE DATABASE `stg_billing`;
    GRANT ALL ON `stg_billing` . * TO 'stg_sql_user'@'localhost' IDENTIFIED BY 'stg_sql_password';
    \q

    Где: stg_billing - название базы с которой будет работать биллинг

    stg_sql_user - пользователь для этой базы

    stg_sql_password - пароль для этого пользователя

    Смотрим п.1.4 (файлик stargazer.conf)

     

    3.3 Забираем дамп базы и заливаем его в mysql сервер

    wget [url="http://hs.dp.ua/stg/dump.sql"]http://hs.dp.ua/stg/dump.sql[/url]
    mysql -u stg_sql_user -p stg_billing < dump.sql

     

    4 Админка stg-web

    4.1 Качаем админку у замечательного человека Alferov'a:

    wget http://alf.uzlovaya.ru/stg/stg-web/stg-web_0.07.tar.gz

    4.2 Устанавливаем админку:

    Нам понадобятся только несколько пунктов из его описания установки:

    - "Скопировать файлы из каталога html/ в каталог, где будет размещаться веб-интерфейс (в каталоге html_koi8r находятся файлы в кодировке KOI8-R)"

    - "Полученный исполняемый sgconf_xml (из пункта 1.3 /stg-2.4-2007.01.20-13.47.20/projects/sgconf_xml) файл перенести куда-нибудь, где доступ к нему будет иметь веб-сервер."

    - "Отредактировать файл /includes/config.php (вписать свои параметры для соединения с БД, STG и пр. - см.комментарии к переменным)" Корелируем параметры для доступа к базе с п.1.4 и п.3.2

    - "В настройках PHP (php.ini) необходимо сделать следующее ( !!! ВАЖНО !!! ):

        safe_mode=off

        register_globals=on

        allow_call_time_pass_reference=on"

     

    5. FreeRADIUS

    5.1.1 Установка freeradius:

    apt-get install freeradius

    5.1.2 Дополнительно устанавливаем:

    apt-get install freeradius-mysql

    apt-get install radiusclient1

     

    5.2 Настройка:

    5.2.1 Берем файлы http://hs.dp.ua/stg/etc.tar.bz2

    5.2.2 Заменяем существующие каталоги /etc/freeradius и /etc/radiusclient

    Правим файл /etc/freeradius/sql.conf на предмет:

     

     server = "localhost"
           login = "stg_sql_user"
           password = "stg_sql_password"
           radius_db = "stg_billing"

     

    Все эти параметры должны быть одинаковы для всех пунктов (п.1.4, п.3.2, п.4.2.3, п.5.2).

     

    5.3 Тестирование:

    5.3.1 Запускаем stargazer:

    stg-2.4-2007.01.20-13.47.20/projects/stargazer/startstg

    Смотрим логи, если все ОК, то:

    5.3.2 Заходим в веб админку (обычно по адресу http://сервер_статистики/root/) используя логин admin и пароль 123456

    В админке добавляем пользователя с параметром "Всегда онлайн" и логином test паролем test

    5.3.3 Запускаем радиус в режим отладки freeradius -X и пытаемся присоединится c клиента по впн с логином test и паролем test

    Смотрим что сыпет в консоль, если подключение устанавливается, запускаем freeradius как демон.

    5.3.4 Снова подключаем ВПН и пробуем пинг внешнего хоста с клиента, если все ок - радуемся, процедура завершена!

     

    АДДОНЧИК:

    Если вы уже работаете с текстовой базой то наброски скрипта по конвертированию этой базы в мускуль берем

    http://hs.dp.ua/stg/scrit.sh и ПРАВИМ перед запуском под свои нужды!

    его нужно поместить в каталог с текстовой бд, обычно /var/stargazer и запустить.

     

     

    Вобщемто, все что сдесь написано - тривиально. За опечатки и неточности прошу не пинать а на них указывать.

     

    ЗЫ (добавил спустя 1.5 часа)

    Поскольку по словам Фауста модуль для базы mysql будет входить в дистр stargazera официально - есть предложение на сайте stargazerа сделать пример конфигов для связки stg + store_mysql + freeradius_mysql.

    Есс-но от радиуса можно авторизировать множество разных сервисов (банально вайфай напрмер). Такая связка в значительной степени расширит область применения биллинга, на мой взгляд.

     

    Еще очень бы хотелось заиметь модуль postgresql_store, к сожелению я не программер и написание такого модуля не осилю.

     

     

    ЗЗЫ (добавил 14.01.2008)

    Новый довесочек к этой сборке - шейпер входящего и исходящего трафика впн соединений реализованный следующим образом:

    Создаем файл с произвольным именем в каталоге /etc/ppp/ip-up.d, например route с таким кодом

    #!/bin/bash
    
    INTERFACE=$1
    LOCAL_IP=$4
    REMOTE_IP=$5
    IPPARAM=$6
    
    LOGIN="stg_sql_user"
    PASSWORD="stg_sql_password"
    DB="stg_billing"
    
    IPTABLES=/sbin/iptables
    
    RES=`echo $REMOTE_IP | grep "^192\.168\.5.*" -c`
    if [[ $RES = 1  ]]
    then
      DOWN=`/usr/bin/mysql -u $LOGIN --password="$PASSWORD" -e "select Userdata1  from users where ip = '$REMOTE_IP'" $DB| /usr/bin/tail -n 1`
      UP=`/usr/bin/mysql -u $LOGIN --password="$PASSWORD" -e "select Userdata2  from users where ip = '$REMOTE_IP'" $DB| /usr/bin/tail -n 1`
      if [[ $DOWN = '' ]]
      then
          DOWN='2048'
      fi
      if [[ $UP = '' ]]
      then
          UP='128'
      fi
      DEVICE=$INTERFACE
      /sbin/tc qdisc del dev $DEVICE root
      /sbin/tc qdisc add dev $DEVICE root tbf rate ${DOWN}Kbit latency 50ms burst $[$DOWN*1024]
      /sbin/tc qdisc del dev $DEVICE handle ffff: ingress
      /sbin/tc qdisc add dev $DEVICE handle ffff: ingress
      /sbin/tc filter add dev $DEVICE parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${UP}Kbit burst $[$DOWN*1024] drop flowid :1
    fi
    

     

     

    Где:

    LOGIN="stg_sql_user"

    PASSWORD="stg_sql_password"

    DB="stg_billing"

    логин, пароль и название базы SQL используемой stg сервером

     

    Скорость загрузки у пользователя в конфигураторе пишем в поле Userdata1, а скорость аплоада у пользователя пишем в Userdata2 в килобитах. Если эти значения не указаны используются DOWN='2048', и UP='128' - загрузка 2Мбита и аплоад 128 Кбит соотв.

     

    Строчка RES=`echo $REMOTE_IP | grep "^192\.168\.5.*" -c` определяет является ли это подключение впн соединением пользователя (в данном случае это сеть 192.168.5*, если у Вас другая, то необходимо сделать соотв. изменения.)

     

    Для удобства в веб админке 8 версии (web_0.08) можно поля Userdata1 и Userdata2 можно назвать Download и Upload соотв. Это можно сделать в пункте Userdata раздела Настройки.

     

    Жду критики.

    Спасибо за внимание.

    Адрес для связи: omega@ua.fm

×
×
  • Створити нове...