-HS- Posted October 17, 2007 Posted October 17, 2007 Начало. Никакой ответственности за результаты того что здесь изложено я не несу, все действия Вы выполняете на свой страх и риск. Большое спасибо разработчикам старгейзера и ребятам 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
Cell Posted October 17, 2007 Posted October 17, 2007 Фундаментальный труд, что можно еще сказать... РЕСПЕКТИЩЕ!
Max Posted October 18, 2007 Posted October 18, 2007 единственное что мне тут непонятно, так это зачем использовать пакет радиуса? Когда есть модуль для стг (ВПН) который выполняет эти функции....
goonman Posted October 18, 2007 Posted October 18, 2007 Спасибо за инструкцию, бум пробовать как время появится
Alferov Posted October 18, 2007 Posted October 18, 2007 единственное что мне тут непонятно, так это зачем использовать пакет радиуса? Когда есть модуль для стг (ВПН) который выполняет эти функции.... +1
-HS- Posted October 18, 2007 Author Posted October 18, 2007 Думаю, какой из методов использовать, дело каждого. К томуже радиус протокол во фрирадиусе реализован неплохо, да и потдержка его тоже не запаздывает. Потому я его и выбрал. Это не значит что ваш радиус модуль плох, очень хорошо что он есть, просто я предпочитаю фрирадиус. Уверен есть люди которые также предпочтут его.
-HS- Posted October 19, 2007 Author Posted October 19, 2007 Кстати почитал ветку про этот модуль и могу сказать: А зачем нужен был радиус модуль если уже давно есть готовое, качественное и бесплатное решение с хорошей потдержкой и обновлением в виде фрирадуиса ?
Max Posted October 19, 2007 Posted October 19, 2007 а если вы пользуете не БД Мускул? Как вы например файловый модуь завяжите с вашим фрирадиусом?
-HS- Posted October 19, 2007 Author Posted October 19, 2007 Думаю с файловой бд без Вашего радиус модуля никак, тут уж некопнеш
elderstar Posted November 23, 2007 Posted November 23, 2007 Поставил.с боями всё завелось, подумал - смысл жизни потерян -и сделал yum update..теперь опять н*** не пашет йа опять счастлив!!!
911 Posted November 23, 2007 Posted November 23, 2007 5.2.1 Берем файлы http://hs.dp.ua/stg/etc.tar.bz2 сервер недоступен это только у меня так?
Demeo Posted November 25, 2007 Posted November 25, 2007 5.2.1 Берем файлы http://hs.dp.ua/stg/etc.tar.bz2 сервер недоступен это только у меня так? Не только у тебя. Автору респект с просьбой перевыложить где-нибудь исходники патченых вещей
-HS- Posted November 28, 2007 Author Posted November 28, 2007 Сейчас все онлайн. Если у когото есть возможность перетяните и выложите в надежное место. (у меня нет такой возможности к сожалению)
Bolik_Stav Posted November 29, 2007 Posted November 29, 2007 Сейчас все онлайн. Если у когото есть возможность перетяните и выложите в надежное место. (у меня нет такой возможности к сожалению) рапида? залили все выше используемые файлы. ( только stg-web версии 0.08 ) http://www.rapidshare.ru/482876
zl0y Posted December 11, 2007 Posted December 11, 2007 Перезалейте кто-нибудь еще раз, на рапиде архив с crc error.
BUM Posted December 11, 2007 Posted December 11, 2007 (edited) http://www.status.ks.ua/stg/ ftp2.svitinfo.net.ua зеркало: http://flakon.net.ua/stg/ Зеркало №2 Edited December 11, 2007 by Serjio
Bolik_Stav Posted December 11, 2007 Posted December 11, 2007 товарищи... не хочу обидить аффтора - но лучше переписать этот мануал с VPN модулем!
elderstar Posted December 11, 2007 Posted December 11, 2007 Модуль VPN у меня не завелся :argh: ..в логах pppd написало, что сервер не ответил вовремя на запрос...хотя с обычным фрирадиусом всё гуд. Может, конечно, я не разобрался в чем то, но там всегото надо прописать секрет в конфиге модуля+ Ип НАСа..или оставить 0.0.0.0. ...посему, думаю, пускай этот мануал останется именно таким какой есть.. только у меня не ВПН, а рррое-сервер, хотя разницы я не вижу Да еще -закконектился под пользаком - старгазер абсолютно не считает траффик. Может тут есть какая то хитрость?
madf Posted December 11, 2007 Posted December 11, 2007 только у меня не ВПН, а рррое-сервер, хотя разницы я не вижу Да еще -закконектился под пользаком - старгазер абсолютно не считает траффик. Может тут есть какая то хитрость? 1. Использовать модуль ipq_cap (для VPN это обязательное условие); 2. Проверить правила iptables чтобы они нормально передавали в очередь пакеты; 3. Проверить rules; 4. Проверить ip-адрес пользователя.
Bolik_Stav Posted December 11, 2007 Posted December 11, 2007 Модуль VPN у меня не завелся :argh: ..в логах pppd написало, что сервер не ответил вовремя на запрос...хотя с обычным фрирадиусом всё гуд. Может, конечно, я не разобрался в чем то, но там всегото надо прописать секрет в конфиге модуля+ Ип НАСа..или оставить 0.0.0.0. ...посему, думаю, пускай этот мануал останется именно таким какой есть..только у меня не ВПН, а рррое-сервер, хотя разницы я не вижу Да еще -закконектился под пользаком - старгазер абсолютно не считает траффик. Может тут есть какая то хитрость? страрайся лучше :00: у меня всё отлично заработало ( хотя 3 дня посапел над связко - по неопытности, и задал MAXu 1000 глупых вопросов ) НО модуль это просто чудо! сразувидно кто юзает инет - кто нет! Ip вадавался у мню самим ptppd А вот разница между pppoE и pptp большая
madf Posted December 11, 2007 Posted December 11, 2007 товарищи... не хочу обидить аффтора - но лучше переписать этот мануал с VPN модулем! Зачем просиш? Переписал бы и выложил. Все бы спасибо сказали.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now