-HS- 0 Posted 2007-10-17 19:46:57 Share Posted 2007-10-17 19:46:57 Начало. Никакой ответственности за результаты того что здесь изложено я не несу, все действия Вы выполняете на свой страх и риск. Большое спасибо разработчикам старгейзера и ребятам 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 Link to post Share on other sites
stg-34 0 Posted 2007-10-17 20:16:54 Share Posted 2007-10-17 20:16:54 Полностью еще не осмыслил. Но респект Link to post Share on other sites
Cell 7 Posted 2007-10-17 23:23:19 Share Posted 2007-10-17 23:23:19 Фундаментальный труд, что можно еще сказать... РЕСПЕКТИЩЕ! Link to post Share on other sites
point 0 Posted 2007-10-17 23:55:49 Share Posted 2007-10-17 23:55:49 1 Link to post Share on other sites
Max 0 Posted 2007-10-18 04:10:31 Share Posted 2007-10-18 04:10:31 единственное что мне тут непонятно, так это зачем использовать пакет радиуса? Когда есть модуль для стг (ВПН) который выполняет эти функции.... Link to post Share on other sites
goonman 7 Posted 2007-10-18 05:39:37 Share Posted 2007-10-18 05:39:37 Спасибо за инструкцию, бум пробовать как время появится Link to post Share on other sites
Alferov 0 Posted 2007-10-18 15:35:05 Share Posted 2007-10-18 15:35:05 единственное что мне тут непонятно, так это зачем использовать пакет радиуса? Когда есть модуль для стг (ВПН) который выполняет эти функции.... +1 Link to post Share on other sites
-HS- 0 Posted 2007-10-18 16:32:19 Author Share Posted 2007-10-18 16:32:19 Думаю, какой из методов использовать, дело каждого. К томуже радиус протокол во фрирадиусе реализован неплохо, да и потдержка его тоже не запаздывает. Потому я его и выбрал. Это не значит что ваш радиус модуль плох, очень хорошо что он есть, просто я предпочитаю фрирадиус. Уверен есть люди которые также предпочтут его. Link to post Share on other sites
-HS- 0 Posted 2007-10-19 06:20:51 Author Share Posted 2007-10-19 06:20:51 Кстати почитал ветку про этот модуль и могу сказать: А зачем нужен был радиус модуль если уже давно есть готовое, качественное и бесплатное решение с хорошей потдержкой и обновлением в виде фрирадуиса ? Link to post Share on other sites
Max 0 Posted 2007-10-19 06:50:56 Share Posted 2007-10-19 06:50:56 а если вы пользуете не БД Мускул? Как вы например файловый модуь завяжите с вашим фрирадиусом? Link to post Share on other sites
-HS- 0 Posted 2007-10-19 11:04:50 Author Share Posted 2007-10-19 11:04:50 Думаю с файловой бд без Вашего радиус модуля никак, тут уж некопнеш Link to post Share on other sites
Ganjubas 0 Posted 2007-10-22 16:19:20 Share Posted 2007-10-22 16:19:20 -HS- Реально респект! :00: Link to post Share on other sites
Bolik_Stav 0 Posted 2007-10-24 05:35:29 Share Posted 2007-10-24 05:35:29 ещё один РЕСПЕКТ!!! Link to post Share on other sites
elderstar 0 Posted 2007-11-23 08:26:36 Share Posted 2007-11-23 08:26:36 Поставил.с боями всё завелось, подумал - смысл жизни потерян -и сделал yum update..теперь опять н*** не пашет йа опять счастлив!!! Link to post Share on other sites
911 140 Posted 2007-11-23 12:05:06 Share Posted 2007-11-23 12:05:06 5.2.1 Берем файлы http://hs.dp.ua/stg/etc.tar.bz2 сервер недоступен это только у меня так? Link to post Share on other sites
Demeo 29 Posted 2007-11-25 09:15:33 Share Posted 2007-11-25 09:15:33 5.2.1 Берем файлы http://hs.dp.ua/stg/etc.tar.bz2 сервер недоступен это только у меня так? Не только у тебя. Автору респект с просьбой перевыложить где-нибудь исходники патченых вещей Link to post Share on other sites
-HS- 0 Posted 2007-11-28 16:25:21 Author Share Posted 2007-11-28 16:25:21 Сейчас все онлайн. Если у когото есть возможность перетяните и выложите в надежное место. (у меня нет такой возможности к сожалению) Link to post Share on other sites
Bolik_Stav 0 Posted 2007-11-29 08:21:07 Share Posted 2007-11-29 08:21:07 Сейчас все онлайн. Если у когото есть возможность перетяните и выложите в надежное место. (у меня нет такой возможности к сожалению) рапида? залили все выше используемые файлы. ( только stg-web версии 0.08 ) http://www.rapidshare.ru/482876 Link to post Share on other sites
zl0y 0 Posted 2007-12-11 09:53:56 Share Posted 2007-12-11 09:53:56 Перезалейте кто-нибудь еще раз, на рапиде архив с crc error. Link to post Share on other sites
BUM 241 Posted 2007-12-11 13:06:53 Share Posted 2007-12-11 13:06:53 (edited) http://www.status.ks.ua/stg/ ftp2.svitinfo.net.ua зеркало: http://flakon.net.ua/stg/ Зеркало №2 Edited 2007-12-11 15:05:32 by Serjio Link to post Share on other sites
Bolik_Stav 0 Posted 2007-12-11 13:16:31 Share Posted 2007-12-11 13:16:31 товарищи... не хочу обидить аффтора - но лучше переписать этот мануал с VPN модулем! Link to post Share on other sites
elderstar 0 Posted 2007-12-11 15:10:22 Share Posted 2007-12-11 15:10:22 Модуль VPN у меня не завелся :argh: ..в логах pppd написало, что сервер не ответил вовремя на запрос...хотя с обычным фрирадиусом всё гуд. Может, конечно, я не разобрался в чем то, но там всегото надо прописать секрет в конфиге модуля+ Ип НАСа..или оставить 0.0.0.0. ...посему, думаю, пускай этот мануал останется именно таким какой есть.. только у меня не ВПН, а рррое-сервер, хотя разницы я не вижу Да еще -закконектился под пользаком - старгазер абсолютно не считает траффик. Может тут есть какая то хитрость? Link to post Share on other sites
madf 279 Posted 2007-12-11 15:16:55 Share Posted 2007-12-11 15:16:55 только у меня не ВПН, а рррое-сервер, хотя разницы я не вижу Да еще -закконектился под пользаком - старгазер абсолютно не считает траффик. Может тут есть какая то хитрость? 1. Использовать модуль ipq_cap (для VPN это обязательное условие); 2. Проверить правила iptables чтобы они нормально передавали в очередь пакеты; 3. Проверить rules; 4. Проверить ip-адрес пользователя. Link to post Share on other sites
Bolik_Stav 0 Posted 2007-12-11 15:18:15 Share Posted 2007-12-11 15:18:15 Модуль VPN у меня не завелся :argh: ..в логах pppd написало, что сервер не ответил вовремя на запрос...хотя с обычным фрирадиусом всё гуд. Может, конечно, я не разобрался в чем то, но там всегото надо прописать секрет в конфиге модуля+ Ип НАСа..или оставить 0.0.0.0. ...посему, думаю, пускай этот мануал останется именно таким какой есть..только у меня не ВПН, а рррое-сервер, хотя разницы я не вижу Да еще -закконектился под пользаком - старгазер абсолютно не считает траффик. Может тут есть какая то хитрость? страрайся лучше :00: у меня всё отлично заработало ( хотя 3 дня посапел над связко - по неопытности, и задал MAXu 1000 глупых вопросов ) НО модуль это просто чудо! сразувидно кто юзает инет - кто нет! Ip вадавался у мню самим ptppd А вот разница между pppoE и pptp большая Link to post Share on other sites
madf 279 Posted 2007-12-11 15:19:17 Share Posted 2007-12-11 15:19:17 товарищи... не хочу обидить аффтора - но лучше переписать этот мануал с VPN модулем! Зачем просиш? Переписал бы и выложил. Все бы спасибо сказали. Link to post Share on other sites
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