Биллинговая система Nodeny

Главная категория => Общий раздел => Тема начата: chupyc от 16 Февраля 2010, 04:02:44



Название: ip+mac+авторизатор
Отправлено: chupyc от 16 Февраля 2010, 04:02:44
сейчас сеть на ip+авторизатор, хотим добавить mac, что можете посоветовать?


Название: Re: ip+mac+авторизатор
Отправлено: elite от 16 Февраля 2010, 06:47:46
nomake.pl в помощь
а смысл?


Название: Re: ip+mac+авторизатор
Отправлено: VitalVas от 16 Февраля 2010, 08:06:11
неплахая идея...
elite чтоб юзеры не меняли свои ип и не воровали инет у друзей


Название: Re: ip+mac+авторизатор
Отправлено: Cell от 16 Февраля 2010, 11:24:22
static arp


Название: Re: ip+mac+авторизатор
Отправлено: chupyc от 16 Февраля 2010, 12:58:08
смысл? да прикол в том что переходим на управляемое железо, там есть привязка порта к маку. То-есть со временем мы можем отказаться от авторизатора, но сделать быстро это не можем ввиду нехватки бюджета. Поэтому и страдаем такой херней... может кто напишет модуль?


Название: Re: ip+mac+авторизатор
Отправлено: boddy от 16 Февраля 2010, 13:59:57
В дополнительных полях клиента заводим текстовое _AUTHmacs, куда будем записывать разрешенные маки.

файл nol2auth.pl
1. после
Код:
 $U{$ip}{last_got_info}=$t; # запомним когда получили инфо о клиенте
вставляем
Код:
 $sth=$dbh->prepare("SELECT field_alias, field_value FROM dopfields INNER JOIN dopvalues ON (dopfields.id = dopvalues.dopfield_id)".
" WHERE dopfields.field_alias='_AUTHmacs' AND  dopvalues.parent_id = $id".
" ORDER BY revision DESC LIMIT 1");
 if( $sth->execute ) {
    while ($addp = $sth->fetchrow_hashref ())    {
$U{$ip}{$addp->{field_alias}}=$addp->{field_value};
    }
 }

2. Перед
Код:
   # --- авторизация прошла успешно ---
вставляем
Код:
        if($U{$ip}{'_AUTHmacs'} ne '') {
$mac=`arp -n $ip`;
         &Debug(" get MACinfo (\n$mac\n) from ip ($ip)\n");
# тут - получение МАСа в дебиан, для фри индекс в квадратных скобках другой (см. вывод "arp -n 127.0.0.1")
my $tmpMAC=uc((stat(split(/\s+/,$mac)))[8]);

if (index(uc($U{$ip}{'_AUTHmacs'}),$tmpMAC)<0)
{ # неудачная авторизация
         send(SOCKET,"no$U{$ip}{'id_query'}",0,$hispaddr); # т.к. длина 'no'+$zapros2 <>16, то старые клиенты не будут воспринимать это как строку для шифрования
         &Debug("2й шаг авторизации. Неудачная авторизация по MAC ($U{$ip}{'_AUTHmacs'} ne $tmpMAC)");
         &Slap_Ip($ip,2); # накажем на 5 пунктов
         next;
}}

upd: это все - для nol2auth.pl 49.32


Название: Re: ip+mac+авторизатор
Отправлено: Art от 01 Апреля 2010, 10:04:44
В дополнительных полях клиента заводим текстовое _AUTHmacs, куда будем записывать разрешенные маки.

файл nol2auth.pl
1. после
Код:
 $U{$ip}{last_got_info}=$t; # запомним когда получили инфо о клиенте
вставляем
Код:
 $sth=$dbh->prepare("SELECT field_alias, field_value FROM dopfields INNER JOIN dopvalues ON (dopfields.id = dopvalues.dopfield_id)".
" WHERE dopfields.field_alias='_AUTHmacs' AND  dopvalues.parent_id = $id".
" ORDER BY revision DESC LIMIT 1");
 if( $sth->execute ) {
    while ($addp = $sth->fetchrow_hashref ())    {
$U{$ip}{$addp->{field_alias}}=$addp->{field_value};
    }
 }

2. Перед
Код:
   # --- авторизация прошла успешно ---
вставляем
Код:
        if($U{$ip}{'_AUTHmacs'} ne '') {
$mac=`arp -n $ip`;
         &Debug(" get MACinfo (\n$mac\n) from ip ($ip)\n");
# тут - получение МАСа в дебиан, для фри индекс в квадратных скобках другой (см. вывод "arp -n 127.0.0.1")
my $tmpMAC=uc((stat(split(/\s+/,$mac)))[8]);

if (index(uc($U{$ip}{'_AUTHmacs'}),$tmpMAC)<0)
{ # неудачная авторизация
         send(SOCKET,"no$U{$ip}{'id_query'}",0,$hispaddr); # т.к. длина 'no'+$zapros2 <>16, то старые клиенты не будут воспринимать это как строку для шифрования
         &Debug("2й шаг авторизации. Неудачная авторизация по MAC ($U{$ip}{'_AUTHmacs'} ne $tmpMAC)");
         &Slap_Ip($ip,2); # накажем на 5 пунктов
         next;
}}

upd: это все - для nol2auth.pl 49.32

У кого-то работает по данной схеме авторизация?
Я пробовал сделать но ничего не вышло...
Код:
&Debug(" get MACinfo (\n$mac\n) from ip ($ip)\n");
# тут - получение МАСа в дебиан, для фри индекс в квадратных скобках другой (см. вывод "arp -n 127.0.0.1")
my $tmpMAC=uc((stat(split(/\s+/,$mac)))[8]);
индекс я ставил 3

Может кто-то подсказать где могут быть не точности?


Название: Re: ip+mac+авторизатор
Отправлено: Fredik от 01 Апреля 2010, 13:19:56
а если маки не совпадают? че оно делает?


Название: Re: ip+mac+авторизатор
Отправлено: nops от 02 Апреля 2010, 15:03:25
Тут я понял, что правила задаются в клиенте достапа, в авторизаторе, а если без него? в этом случае не в nol2auth.pl нужно добавлять...... в соседней теме вопрос....