The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Шлюз в Интернет через VPN-сервер"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Шлюз в Интернет через VPN-сервер"
Сообщение от ELSE Искать по авторуВ закладки on 31-Мрт-05, 17:42  (MSK)
ПЛЗ, ткните где почитать как сделать на FreeBSD VPN-сервер, который должен подключать клиентов к Интернету и вести учет трафика в MySQL.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Шлюз в Интернет через VPN-сервер"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 31-Мрт-05, 18:04  (MSK)
1.mpd + freeradius + mysql (postgre)
2.poptop + freeradius + mysql (postgre)

совсем не vpn
pppoe + freeradius + mysql (postgre)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Шлюз в Интернет через VPN-сервер"
Сообщение от ELSE Искать по авторуВ закладки on 31-Мрт-05, 18:32  (MSK)
>1.mpd + freeradius + mysql (postgre)
>2.poptop + freeradius + mysql (postgre)
>
>совсем не vpn
>pppoe + freeradius + mysql (postgre)


Скажите а почему пишут вот такую связку:
mpd + freeradius + FREENIBS+ mysql
Я так почитал и понял что Freeradius и Freenibs - это два радиус сервера.
Так?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Шлюз в Интернет через VPN-сервер"
Сообщение от Stant Искать по авторуВ закладки on 01-Апр-05, 09:30  (MSK)
>Я так почитал и понял что Freeradius и Freenibs - это два
>радиус сервера.
>Так?
Нет, Freenibs - это модуль для Freeradius (см. http://nibs.net.ua)


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Шлюз в Интернет через VPN-сервер"
Сообщение от denn emailИскать по авторуВ закладки(??) on 01-Апр-05, 11:30  (MSK)
>>1.mpd + freeradius + mysql (postgre)
>>2.poptop + freeradius + mysql (postgre)
>>
>>совсем не vpn
>>pppoe + freeradius + mysql (postgre)
>
>
>Скажите а почему пишут вот такую связку:
>mpd + freeradius + FREENIBS+ mysql
>Я так почитал и понял что Freeradius и Freenibs - это два
>радиус сервера.
>Так?

там специализированные функции биллинга добавлены.
но вобщем, если привязать простенький скрипт на перле для отключения
пользоватедя по истечению лимита, можно обойтись и без него.
проверено: mpd3.18+freeradius+DropUser+pgsql - работает на ура.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Шлюз в Интернет через VPN-сервер"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 01-Апр-05, 11:57  (MSK)
denn
DropUse можно глянуть?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Шлюз в Интернет через VPN-сервер"
Сообщение от denn emailИскать по авторуВ закладки(??) on 01-Апр-05, 12:12  (MSK)
>denn
>DropUse можно глянуть?

привожу весь скрипт. из него нужно не все, тк я тут добавил пересчет
трафика из октетов в гривны по курсу доллара, обновление таблицы просмотра своего баланса пользователями и отключение по истечению лимита как
входящего  так и исходящего трафика. тоесть это специфика.  
главноя строка - это $RAD_REPLY{'Drop-User'} = 'Yes' if ($limB[0]<=$B);

#cat DropUser.pl

#!/usr/bin/perl
use strict;
use vars qw(%RAD_REQUEST %RAD_REPLY %RAD_CHECK);
use Data::Dumper;
use DBI;

use constant    RLM_MODULE_REJECT=>    0;#  /* immediately reject the request */
use constant    RLM_MODULE_FAIL=>      1;#  /* module failed, don't reply */
use constant    RLM_MODULE_OK=>        2;#  /* the module is OK, continue */
use constant    RLM_MODULE_HANDLED=>   3;#  /* the module handled the request, so stop. */
use constant    RLM_MODULE_INVALID=>   4;#  /* the module considers the request invalid. */
use constant    RLM_MODULE_USERLOCK=>  5;#  /* reject the request (user is locked out) */
use constant    RLM_MODULE_NOTFOUND=>  6;#  /* user not found */
use constant    RLM_MODULE_NOOP=>      7;#  /* module succeeded without doing anything */
use constant    RLM_MODULE_UPDATED=>   8;#  /* OK (pairs modified) */
use constant    RLM_MODULE_NUMCODES=>  9;#  /* How many return codes there are */

sub accounting {
my ($db, $dbh, $sql, $sth, $ref, @limB, $user, $inB, $B, $outB);
$db="dbi:Pg:dbname='vpn'";
$dbh=DBI->connect($db,'vpn','********');
$user="'".$RAD_REQUEST{'User-Name'}."'";
$inB="$RAD_REQUEST{'Acct-Input-Octets'}";
$outB="$RAD_REQUEST{'Acct-Output-Octets'}";
$B=$inB;
$B=$outB if ($inB < $outB);
$sql="select limitoctets from radcheck where username=$user";
$sth=$dbh->prepare($sql);
$sth->execute();
$ref=$sth->fetchrow_arrayref();
@limB=@$ref;
##$limup=int($lim[0]-int($ino);
$dbh->do("update radcheck set active=false where username=$user") if ($limB[0]<=$B);
#$dbh->do("update radcheck set active=false where username=$user") if ($limB[0]<=$inB);
$dbh->do("update radcheck set limitoctets=limitoctets-$B where username=$user") if ($RAD_REQUEST{'Acct-Status-Type'} eq "Stop");
#$dbh->do("update radcheck set limitoctets=limitoctets-$RAD_REQUEST{'Acct-Input-Octets'} where username=$user") if ($RAD_REQUEST{'Acct-Status-Type'} eq "Stop");
$dbh->do("select recalc2($user, 5.4)") if ($RAD_REQUEST{'Acct-Status-Type'} eq "Stop");
$sth->finish();
$dbh->disconnect();
$RAD_REPLY{'Drop-User'} = 'Yes' if ($limB[0]<=$B);
#$RAD_REPLY{'Drop-User'} = 'Yes' if ($limB[0]<=$inB);
return RLM_MODULE_OK;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру