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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: ip+mac+авторизатор  (Прочитано 7678 раз)
chupyc
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 25


Просмотр профиля Email
« : 16 Февраля 2010, 04:02:44 »

сейчас сеть на ip+авторизатор, хотим добавить mac, что можете посоветовать?
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #1 : 16 Февраля 2010, 06:47:46 »

nomake.pl в помощь
а смысл?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #2 : 16 Февраля 2010, 08:06:11 »

неплахая идея...
elite чтоб юзеры не меняли свои ип и не воровали инет у друзей
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #3 : 16 Февраля 2010, 11:24:22 »

static arp
Записан
chupyc
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 25


Просмотр профиля Email
« Ответ #4 : 16 Февраля 2010, 12:58:08 »

смысл? да прикол в том что переходим на управляемое железо, там есть привязка порта к маку. То-есть со временем мы можем отказаться от авторизатора, но сделать быстро это не можем ввиду нехватки бюджета. Поэтому и страдаем такой херней... может кто напишет модуль?
Записан
boddy
Новичок
*

Карма: 0
Offline Offline

Сообщений: 4

162944325
Просмотр профиля
« Ответ #5 : 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
« Последнее редактирование: 16 Февраля 2010, 14:05:41 от boddy » Записан
Art
Новичок
*

Карма: 0
Offline Offline

Сообщений: 1


Просмотр профиля
« Ответ #6 : 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

Может кто-то подсказать где могут быть не точности?
Записан
Fredik
NoDeny
Старожил
*

Карма: 5
Offline Offline

Сообщений: 362


Просмотр профиля
« Ответ #7 : 01 Апреля 2010, 13:19:56 »

а если маки не совпадают? че оно делает?
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #8 : 02 Апреля 2010, 15:03:25 »

Тут я понял, что правила задаются в клиенте достапа, в авторизаторе, а если без него? в этом случае не в nol2auth.pl нужно добавлять...... в соседней теме вопрос....
Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!