Биллинговая система Nodeny
22 Ноября 2024, 14:53:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2
1  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 28 Октября 2009, 10:14:19
вопрос с исходящей скоростью так же снят.... проблема была в моей невнимательности
2  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 28 Октября 2009, 10:09:09
Цитировать
внутри этого файла всего 1 строчка - ip адрес клиенты, который на этом интерфейсе..
тут я немного погорячился Улыбающийся там еще немного технической информации
3  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 27 Октября 2009, 20:30:49
я вот тут еще подумал... можно написать скрипт, который бы задавал интерфейсу имя, основанное на ip клиента. положить скрипт в ip-up.d... соответственно, получить имя интерфейса вообще не проблема...

Вот тут
http://www.opennet.ru/base/patch/pptpd_fix_int.txt.html
нашел решение (как в работе - не знаю, не тестил)
Код:
NEWNAME="ppp-$PEERNAME"
[ -z "$PEERNAME" ] && NEWNAME="$1"

if [ -x /sbin/ip ]; then
        /sbin/ip link set $1 down
        /sbin/ip link set $1 name $NEWNAME
        /sbin/ip link set $NEWNAME up
fi

Если кому-нить интересно подобное решение - поиграйтесь и попробуйте привязать интерфейс к id пользователю, т.к. в случае в ip могут быть проблемы
4  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 27 Октября 2009, 20:02:18
после авторизации, радиус создает файл по адресу /var/run/radarrt.pppX, где X - номер подключения, на котором висит пользователь. внутри этого файла всего 1 строчка - ip адрес клиенты, который на этом интерфейсе..
Соответственно, получить интерфейс можно примерно так:

Кусок из моего nofire.pl
Код:
$IF_PPP=`grep -il $ip /var/run/radattr* | sed 's/[/]var[/]run[/]radattr[.]//g;'`;                                    
chomp $IF_PPP;       
&Debug("User Ip: $ip; LocalIP: $LocalIp; ID: $id; PPP: $IF_PPP");

теперь с этим интерфейсом можно делать что угодно (например шейпить).
Шейпинг, предложенный в первом посту этого топика не подходит, т.к. в том случае предпологается, что у все пользователи ходят через 1 интерфейс, а не как в случае впн, где каждый клиент получает свой "фейс"...

В текущем тестовом варианте, шейпинг я вынес вообще в отдельный файл, для удобства задания нового правила... Параметры передаю примерно так:
Код:
system("sh $HTB start $IF_PPP ${speed_in} ${speed_in}");  
(здесь 2 раза указана скорость speed_in, т.к. 1 - для двух направлений скорость одна и та же, 2 - получить speed_out из тарифа не получилось, потому что ее там нет)

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

Второй вопрос к разработчикам: красивый рестайл админки может претендовать хотя бы на альтернативный шаблон в стандартной поставке nodeny?
5  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 26 Октября 2009, 22:55:36
Интересно, а как модернизировать nofire.pl, чтобы он корректно (шейпер) мог работать с динамическими интерфейсами (PPPoE)?

сейчас над этим работаю Улыбающийся
получить имя интерфейса, зная ip адрес - не проблема
6  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 25 Октября 2009, 22:33:50
Не вижу смысла разводить тут холивар по поводу ОС.
Сам лично использую везде Gentoo linux. Когда стал вопрос поднимать сервер, пришел к мысли, что изучать другую систему нет не времени, не желания, а посколько с дженту у меня опыт работы более 5ех лет, вопрос выбора как-то сам отпал.
Линукс был, есть и останется серверной ОС. Другой вопрос, что сейчас в ядро, да и саму систему, начинают тащить в сторону десктопа.

Если кому интересно производительность системы, давайте померяемся ..... зоопарк железа разнообразный, включая Xeon E5405 с рейд массивом.

Кстатит о сравнении дистров - как тут выше справедливо заметили, сравнивать разные дистры с фрей не логично....
Относительно безопасности - это проблема скорее не дистра, а программ (которые в том же виде присутствуют в фре) и кривых рук админа. Критические ошибки ядра (особенно ядра) линукса исправляются довольно оперативно, чего не скажешь о фрехе.

З.Ы. если кого обидел, не пинайте, против фряхи ничего не имею...
7  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 25 Октября 2009, 15:22:01
пришлось немного поправить npserver.pl, т.к. на функцию Add_To_All_Ip и Delete_From_All_Ip отправляется только ip адрес... соответственно получить под.данные не получалось...

З.Ы. Когда полностью закончу настройку системы, биллинга и всех дополнений, напишу тут полное хавту (или может создать отдельный топик?)
8  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 25 Октября 2009, 00:52:02
Когда вызывается событие Add_To_All_Ip ?
Нарисовал функцию, но правила в таблицу не добавляются Грустный
Код:
sub Add_To_All_Ip 
{

 my $p=$_[0];
 my ($auth,$dop_param,$i,$id,$ip,$mid,$n,$num,$num1,$num2,$opt,$options);
 my ($paket,$pipe2,$pipe_in,$pipe_out,$speed2,$speed_in,$speed_out);

 $ip=$p->{ip};
 $id=$p->{id};                  # id текущей записи (по таблице users)
 $num=$p->{num};                # виртуальный уникальный id текущей записи
 $dop_param=$p->{dop_param};    # дополнительные параметры учетки клиента

# должны быть в системе дополнительные поля с такими алиасами
$mac=$dop_param->{_mac};
$localip=$dop_param->{_localip};


# привязка мак адреса к ip
 system("$IPT -t filter -A INPUT -i $IF_INT -m mac --mac-source $mac ! -s $localip -j DROP");

}

sub Delete_From_All_Ip
{

 my $p=$_[0];
 my ($auth,$dop_param,$i,$id,$ip,$mid,$n,$num,$num1,$num2,$opt,$options);
 my ($paket,$pipe2,$pipe_in,$pipe_out,$speed2,$speed_in,$speed_out);

 $ip=$p->{ip};
 $id=$p->{id};                  # id текущей записи (по таблице users)
 $num=$p->{num};                # виртуальный уникальный id текущей записи
 $dop_param=$p->{dop_param};    # дополнительные параметры учетки клиента

# должны быть в системе дополнительные поля с такими алиасами
$mac=$dop_param->{_mac};
$localip=$dop_param->{_localip};


# УДАЛЯЕМ привязку мак адреса к ip
while (!system("$IPT -t filter -D INPUT -i $IF_INT -m mac --mac-source $mac ! -s $localip -j DROP")) {};

}
9  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 20:54:33
эм... где тогда я должен блокировать трафик пользователя? Например, я в админке заблокировал пользователя.... значит (по моим соображениям) клиент должен или не подключиться вовсле (не принимается его логин и пароль) или подключиться, но дальше сервера впн (он же шлюз) уйти не должен...

Алгоритм работы (дополните/поправте, если не прав) фаервола:
Flush - сбрасываем все цепочки, сбрасываем все правила шейпинга, разрешаем форвардинг между клиентами локальной сети, если фаервол закрытого типа, то разрешаем коннектится клиентам на порт 1723. Разрешаем для подсети впн проход через нат
Allow - шейпим интерфейс (ip) только что подключившегося клиента
Deny - удаляем правила шейпа для данного интерфейса (ip)
Add_To_All_Ip - создаем правила соответствия mac+ip

Если все так, то тогда актуальны все проблемы, описанные в моем предыдущем посту + еще один вопрос - надо как-то получить подсеть разрешенных ip

З.Ы. текущая реализация работает на скриптах, во внешку пускает только определенную подсеть, ip которой выдаются, если пользователь авторизирован... если он заблокирован, авторизацию не пройдет
10  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 20:22:36
народ, может кто поможет...? перепробовал кучу вариантов, ничего не получается Грустный
нужен правильно составленный nofire.pl...
в теории должен
- блокировать нат на внешний интерфейс (в сторону инета),
- разрешать клиентам (только из разрешенных/указанных подсетей) подключаться к pptpd по порту 1723 и форвардинг этим подсетям.
- при подключении нового пользователя и проверки, разрешен ли ему выход - создавать правило для пропуска клиента во внешку
- создавать правила, где фаервол банит всех, у кого не правильная пара ip+mac (не соответствует значению из доп.полей)

Проблемы, с которыми я столкнулся и не знаю, как решить:
- удаление правила пропуска клиента после отключени от впн
- как проверять, есть ли у пользователя доступ? на сколько я понял, событие Allow срабатывает, даже если доступ запрещен?
- как получить данные из доп полей? о_О
11  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 19:05:08
я все таки не совсем понял, как вытянуть в nofire.pl данные из доп.полей
12  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 18:21:52
судя по всему, в файле ipcad.pl ошибка (в версии, предложеной автором топика)... в логах ядро ругается вот на эту строчку:
$rsh.=" -l $1" if $dserver=~s/.+)$//;

ее надо заменить на вот эту:
$rsh.=" -l $1" if $dserver=~s/:(.+)$//;
13  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 17:02:16
всетаки nofire.pl представленный на указанной вверху ссылки не подходит для связки nodeny+pptpd Грустный
14  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 09:28:13
изначально было настроено на pptpd. к тому же легче работать если несколько подсетей. поддерживается шифрование. так же в моей реализации разная скорость у локального и внешнего трафика
15  Главная категория / Общий раздел / Re: Установка нодени на дебиан : 24 Октября 2009, 08:56:44
ок, где тогда можно задать ip, который будет выдан пользователю dhcpd сервером? напмерим, у человека локальный ip 10.1.1.20, а после авторизации через впн - 192.168.1.20?

ту да же вопрос - откуда брать локальный ip для генерации hdcpd конфига?

возможно я не правильно понимаю схему работы данного биллинга...
Страниц: [1] 2
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!