Крымский форум (Crimea-Board) Поиск Участники Помощь Текстовая версия Crimea-Board.Net
Здравствуйте Гость .:: Вход :: Регистрация ::. .:: Выслать повторно письмо для активации  
 
> Рекламный блок.
 

Реклама на форуме

 
> Ваша реклама, здесь
 
 
 

Страницы: (3) 1 2 3  ( Перейти к первому непрочитанному сообщению ) Start new topic Start Poll 

> ubuntu:pptpd + chap + скрипты, и htb
svip | Профиль
Дата 18 Марта, 2009, 16:11
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


Пэтро
думаю можно сделат так.
добавить новый параметр AV в словарь радиуса и при коннекте писать в файл radattr.ppp5 типа UserName=ppp5.
потом скрпитом выбирать этот параметр и гасить его.

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


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster
2/5349   
svip | Профиль
Дата 20 Марта, 2009, 0:42
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


набросал на скорую руку скрипт сбора данных о подключенных клиентах по vpn (с использованием радиуса)

Код

<?php
function getPppIpVpn($dirname)
 {
   // Открываем текущую директорию
   $dir = opendir($dirname);
   // Читаем в цикле директорию
   while (($file = readdir($dir)) !== false)
   {
     // Если файл обрабатываем его содержимое
     if($file != "." && $file != "..")
     {
       // Если имеем дело с файлом - производим в нём замену
       if(is_file($dirname."/".$file))
       {
         $ext = strtolower(array_pop(explode(".", $file)));
         $name=substr($file,0,strlen($file)-strlen($ext)-1);
         if ($name=="radattr")
         {
           $f = fopen($dirname."/".$file, "r");
           while (! feof($f))
           {
             $data = fgets($f,4096);
             $n=strpos($data,"Framed-IP-Address");
             if (is_numeric($n)) $arr[substr($data,$n+18,strlen($data)-$n-18)]=$ext;
           }
           fclose($f);
         }
       }
     }
   }
   // Закрываем директорию
   closedir($dir);
  return $arr;
}


$dirname = "/var/run";
$arr=getPppIpVpn($dirname);
foreach ($arr as $k=>$v) echo "k=".$k." => v=".$v."<br>";

?>


В итоге получаем массив с ключем - адрес Ip vpn и значением - pppX

например

$arr[192.168.0.5]=ppp8; И тд. а далее уже и убиваем соединение килом.



P.S. Нужно выбрать данные из базы и произвести некоторые действия (отрубание клиента или обновление данных в базе в зависимости от условий.) Вижу два варината - bash и си. Что лучше? что быстрее? что надежнее. Щас написал на баше скрипт вытягивания данных по крону, проверка лимита трафика, срока использования (для безлимиток), отрубление клиента и запрет на подключения путем записи в базу radcheck значения Auth-Type=reject вместо Accept. Вот думаю может лучше на си переписать? что скажите?


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster
5/5349   
exn |
Дата 20 Марта, 2009, 3:57
Quote Post



Unregistered









Почему аккаунтинг не работает ?
svip | Профиль
Дата 20 Марта, 2009, 12:48
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


exn
то есть не работает?


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster
Eugene |
Дата 20 Марта, 2009, 13:01
Quote Post



Unregistered









svip
ставь фрю и абиллс
там все работает bigwink.gif
Pretender | Профиль
Дата 20 Марта, 2009, 13:09
Quote Post




Group Icon

Группа: Старожил
Сообщений: 2548
Регистрация: 11.10.06
Авторитет: 47
Вне форума

Предупреждения:
(0%) -----


Eugene тут щас походу дискусии свой биллинг напишемsmile.gif
Пэтро а зачем тебе гасить выбранный ппп? у меня это биллинг делает, закрыл клиента, скрипт его отловил, и пристрелил

Отредактировал Pretender - 20 Марта, 2009, 13:10


____________________
Are you a doсtor???
I'am today......
+79787927860
PMEmail PosterUsers Website
1/7443   
svip | Профиль
Дата 20 Марта, 2009, 13:23
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


Eugene
abills - г...но. И в ней нехватает нужного мне функционала + ужастный внешний вид. + ужастный шейпер, без возможности переброски и займа трафа.

Pretender ага. вот и пишу свой, перебрав все возможные понравился только pro..., но во фри версии нехватает функционала.

Щас поднял радиус и обкатываю его со всех сторон. + пишу морду для управления и удобного ведения статистики и всего остального.



Цитата
у меня это биллинг делает, закрыл клиента, скрипт его отловил, и пристрелил


что именно биллинг делает? проверяет израсходованный траф и сравнивает с лимитом и орубает клиента??
Если это можно реализовать бе сторонних скриптов на freefadius-е то подскажи как.


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster
4/5349   
Пэтро |
Дата 20 Марта, 2009, 13:29
Quote Post



Unregistered









Представим 5 клиентских соединений...
Цитата(svip @ 17 Марта, 2009, 21:28)
Как можно программно отключить ppp соединение? через радиус или напрямую?


Каким образом можно отключить н-ого клиента через
Цитата(Pretender @ 17 Марта, 2009, 23:17)
через радиус я не наю, а так вообще kill -9 ....
3/   
ratibor |
Дата 20 Марта, 2009, 18:19
Quote Post



Unregistered









svip
я думал, что я один такой динозавр - сам свою статистику написал и пользуюсь, хотя у меня сетка 50+, ну ще не вмерла украина пока катим квадратное - зато весело blush2.gif
exn |
Дата 20 Марта, 2009, 19:20
Quote Post



Unregistered









Мне кажеться что строить систему на недонастроенном/нерабочем радиусе не самая хорошая идея.
svip | Профиль
Дата 20 Марта, 2009, 20:46
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


exn
Цитата
недонастроенном/нерабочем


что ты имеешь ввиду?


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster
exn |
Дата 20 Марта, 2009, 22:27
Quote Post



Unregistered









svip
Нерабочий аккаунтинг.
svip | Профиль
Дата 20 Марта, 2009, 23:21
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


exn
не могу тебя второй раз понять. что значит нерабочий? с чего ты решил.?


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster
exn |
Дата 22 Марта, 2009, 3:28
Quote Post



Unregistered









Хорошо, попробую объяснить.

Что такое AAA ? Безопасный (относительно безопасный, его легко прослушать, но очень сложно подделать пакет т.к в протоколе предусмотрена подпись пакетов.) протокол для
аунтификации, авторизации и аккаунтинга.
В freeradius AAA реализован, аккаунтинг работает на порту 1813 и клиент общаеться на этом порту все время пока
клиент аунтифицирован, посылая так называемые status-request'ы. Промежутки времени (aliv'ы) конфигурируються на стороне клиента,
т.к в этом протоколе инициатором выступает именно клиент. Сервер не может запросить информацию у клиента
когда ему вдруг это всбредет в голову. В данном конкретном случае (pppd) , сервер может послать специальный
атрибут устанавливающий интервал через который клиент будет посылать данные на сервер.
И в случае с pppd это будут x-acctets, x-user которые сервер должен обрабатывать следуя инструкциям в конфигах.

Простой пример работающего фрирадиуса:

Код

  radiusclient user+pass <-> :1812 <- да/нет+timeout=30+ещечтонибудь
/30/
  radiusclient status -> :1813 -> чтото делает
/30/
  radiusclient status -> :1813 -> опять чтото делает
/30/
 radiusclient status(input-acctets=99999999) <-> :1813 -> ээ, зачем, да. Гиви Зураповичь абыдиться можит.
/30/
 radiusclient stop -> :[b]1813[/b] -> понял, не дурак, сохраняюсь


Так вот у тебя Гиви Зураповичь даже не напрягаеться.
Код

  radiusclient user+pass <-> :1812 <- да/нет+timeout=30+ещечтонибудь
 radiusclient stop -> :[b]1813[/b] -> понял, не дурак, сохраняюсь


Если на пальцах то у тебя работает только AA, где еще одно A ?
2/   
svip | Профиль
Дата 22 Марта, 2009, 12:34
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1537
Регистрация: 30.11.06
Авторитет: 13
Вне форума

Предупреждения:
(0%) -----


ааа. так щас то сразу доступ дается. -> accept. Стоит так щас в цлях настройки. Изучаю досконально радиус. Потом на Chap наверное перейду.




P.S. Что то я сразу не понял твое сообщение, видимо не выспался. smile.gif

Понял про аккаутинг, вот и спрашивал про него. Есть ресурсы где почитать?


____________________
Двое всегда договорятся, если хотя бы один из них не дурак.
PMEmail Poster

Topic OptionsСтраницы: (3) 1 2 3  Start new topic Start Poll 

 



[ Script Execution time: 0.0147 ]   [ 13 queries used ]   [ GZIP включён ]






Политика конфиденциальности

Top