Jump to content
Local

-HS-

Muggles
  • Content Count

    23
  • Joined

  • Last visited

Everything posted by -HS-

  1. Начало. Никакой ответственности за результаты того что здесь изложено я не несу, все действия Вы выполняете на свой страх и риск. Большое спасибо разработчикам старгейзера и ребятам 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 Устанавливаем админку: Нам понадобятся только несколько пунктов из его описания установки: 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
  2. У тебя есть конфиг /etc/radiusclient/radiusclient.conf ? От той ли он версии радиуса, проверь его содержимое на правильность. Судя по логу создается впечатление, что перепутаны конфиги radiusd.conf и radiusclient.conf.
  3. Еслибы при работе с впн нормально работал модуль пинга, то можно былобы при впн конекте чекать онлайн ли юзер, и если онлайн то рвать соединение. Т.е. на мой взгляд нужно доработать пинговалку.
  4. То закачка была с торента (новафильм) при раздаче свеженькой серии декстера.
  5. Кстати про развод, чтобы не быть голословным вот скриншотик с пакета ого-4
  6. У меня пакет домашний 4 мбита, торент тянет ровно главное не забивать канал аплоада. Никаких сбоев, разве что около полуночи дисконект - но это связано с биллинговой системой укртела.
  7. Сделай репеир всем таблицам в базе биллинга.
  8. С проксом попробуй дополнителоно считать все что приходит на PREROUTING
  9. 2 ar2r Это необходимое условие - все пропускать через прокс ? Мы тоже как то делали похожим образом, помню там была проблема в том, что все что заворачивалось на прокс не проходило, или както криво проходило через правила форварда QUEUE, подробностей уже не помню. Попробуй локализовать проблему, убрав прокс (сделав просто маскарад) и проверить подсчет трафика проходящего просто через форвард.
  10. Я воспользовался следующим методом (конечно это касательно впн): http://local.com.ua/forum/index.php?showto...=45entry76558
  11. Новый довесочек к этой сборке - шейпер входящего и исходящего трафика впн соединений реализованный следующим образом: Создаем файл с произвольным именем в каталоге /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 раздела Настройки.
  12. Проверь срабатывают ли скрипты OnConnect, OnDisconnect и обязательно используй коллектор трафика ipq_linux он хорошо считает трафик с впн, правила в форварде должны быть QUEUE, например $IPTABLES -I FORWARD -s $IP -j QUEUE $IPTABLES -I FORWARD -d $IP -j QUEUE
  13. Ну не все же в Киеве живут ! В Киеве не спорю наверняка найдутся цены попроще и скорости побольше, а для всех остальных простых смертных мне кажется это наилучший вариант, чтобы там не говорили.
  14. Ребята ! Расскажите можно ли добавить следующий функционал: При включенном режиме "Всегда онлайн" авторизатор и сервер не выполнял различного рода проверки которые приводят к ошибкам вида "Ваш логин уже используется", "Авторизатор уже запущен с другого IP", и тому подобное, а просто выводил текущую статистику на основании логина + пароля. Для чего ? Основная задача - при использовании с впн технологией. В базе как известно хранятся виртуальные ип пользователей, а авторизатор написан так, что он смотрит на каком ип он находится и передает его серверу, сервер видно смотрит с какого ип пришел запрос и какой локальный ип передал авторизатор. (Это после небольших опытов с ним выяснилось. Он по любому передает адрес сетевого интерфейса, а не виртуально ип вне зависимости от того какой адрес стг-сервера в нем прописать). Повторюсь, хотелось бы видеть утилиту которая просто показывает баланс по типу УТМ-трей. Это возможно ? Есть ли пачи для этого ? Что думают разработчики стг по этому поводу? PS madf - Два ип не предлогать.
  15. Наверное ты прав - отдельный модуль, это будет наилучшее решение. Стоит ожидать такого модуля к релизу ? Хотелось бы чтобы такой модуль мог передавать не только текущую стату, а и например тариф, и т.д.
  16. Нет, я не это имею в виду. API ядра фиксировано. И через это API нельзя определить, используется ли модуль для авторизации Always Online или нет. Повторюсь: Если в этом наборе нет соотв функции может ее добавить ?
  17. Незнаю про разводы, но 4 мбита за 250 грн укртел выдает чесно, без всякой обрезки трафика и т.д. С первого дня перехода на этот пакет скорость ни разу не падала. И даже если они и не гарантируют 4 мегабита, пусть там будет (ну предположим) 2 мбита точно, а 4 когда загрузка каналов позволяет - и где Вы найдете, пусть даже такой анлим за 250 грн в месяц ??? Скажу сразу меня укртел ниразу не развел ни начто, а пользуюсь я им уже года 3 походу. Всегда, что говорили то и делали, ну иногда приходилось договариваться, да однажды инет 2 часа лежал, однако уверен в домашних сетках боков, простоев и нервов бывает и поболее ... И многие посты я заметил просто похожи на агонические заявления людей которые просто поливают грязью укртел, незнаю может чтобы удержать клиентуру, может еще для чегото - даже не пойму почему.
  18. Авторизатор - это плагин. Он практически автономен. И он не знает о том, что кроме него есть еще авторизаторы. По этому сделать такую проверку будет достаточно сложно и это приведет к появлению сильной связи плагина и сервера. Можно этот момент поподробнее. Возможно ты имеешь ввиду, что при правке какойто части кода ядра прийдется править и модуль - разве там нет какогото постоянного внутреннего набора функций доступных любому модулю и не меняющегося от билда к билду? Если в этом наборе нет соотв функции может ее добавить ?
  19. у меня так и работал.... и работал отлично! я прописывал лоиги и пасс + ip в файлике chap-secrets, а в stg все онлайн + одинаоквый пароль + логин который в chap-secrets и у меня всё работало Как я писал выше - авторизатор выдает ошибки даже если указывать в качестве стг-сервера впн адрес сервера и запускать его при уже поднятом впн. 2 Bolik_Stav. Когдато было точно также, счас добавилось не много автоматизации в это дело. 2 Олл. Для решения проблемы был применен хак в виде предложенного Genius варианта с ->Authorize. Хотя не думаю что это идеальный вариант. 2 Разработчики. Поясните мне чем плох вариант с отменой таких проверок в режиме "всегда онлайн" ? Неужели в таком режиме обязательны проверка на соответствие ип ? Как пользователи биллинга смотрят на то чтобы внести такое изменение в будущий билд или готовящийся (на сколько я понял) релиз ?
  20. Сейчас все онлайн. Если у когото есть возможность перетяните и выложите в надежное место. (у меня нет такой возможности к сожалению)
  21. Думаю с файловой бд без Вашего радиус модуля никак, тут уж некопнеш
  22. Кстати почитал ветку про этот модуль и могу сказать: А зачем нужен был радиус модуль если уже давно есть готовое, качественное и бесплатное решение с хорошей потдержкой и обновлением в виде фрирадуиса ?
  23. Думаю, какой из методов использовать, дело каждого. К томуже радиус протокол во фрирадиусе реализован неплохо, да и потдержка его тоже не запаздывает. Потому я его и выбрал. Это не значит что ваш радиус модуль плох, очень хорошо что он есть, просто я предпочитаю фрирадиус. Уверен есть люди которые также предпочтут его.
×