Страница 1 из 1

mpd5.2 + привязка к IP

Добавлено: 2009-02-22 17:46:21
ArPoHoM
Есть ли возможность при подключении к mpd в качестве дополнительного параметра авторизации использовать его локальный ip или MAC ?

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 18:41:34
GRooVE
ну можно попробывать через

Код: Выделить всё

set iface up-script /path/to/script
запускать скрипт, который будет проверять ip клиента, и, в случае несовпадения, дисконектить!

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 19:04:38
Lucky SB
mpd отсылает радиусу ip клиента
или через внешний скрипт умеет авторизовать. и отдает туда кучу всяких параметров.
http://mpd.sourceforge.net/doc5/mpd29.html#29

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 19:36:00
ArPoHoM
ArPoHoM писал(а):set iface up-script /path/to/script
только как этому скрипту передать ip с которого клиент подключился?
Lucky SB писал(а):mpd отсылает радиусу ip клиента
клиенты авторизуются через файл mpd.secret, нехотелось бы, ради этого ставить радиус.

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 19:56:18
paradox
только как этому скрипту передать ip с которого клиент подключился?
марш документацию читать

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 20:17:59
ArPoHoM
mpd передает ip выданный, а не ip с которого он подключился, или я туплю? ;)

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 20:23:03
paradox
вы ошибаетесь в свое параное на авторизацию всего
вы еще статик арп вбейте
может поможет

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-22 23:13:17
schizoid
если поискать в скриптах на коленке, то можно найти. я выкладывал данную схему.

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-23 0:17:34
ArPoHoM
Всем спасибо, разобрался... что-бы привязать мак адрес логину и паролю, можно использовать авторизацию скриптом:

в # /usr/local/etc/mpd5/mpd.conf

Код: Выделить всё

set auth extauth-script /usr/local/etc/mpd5/auth.pl 
set auth enable ext-auth 
set auth disable internal
в # /usr/local/etc/mpd5/auth.pl

Код: Выделить всё

#!/usr/bin/perl -w 
use DBI;  
$db_host = '';  
$db_user = '';  
$db_password = '';  
$db_database = '';  
$file_log = '/var/log/user_auth.log'; 
$log = 1;  
$date = `date +%d.%m.%Y`; chomp($date); 
$time = `date +%H:%M`; chomp($time); 
$send_ip = "192.168.99.0";  
$db = DBI -> connect(('DBI:mysql:'.$db_database.':'.$db_host),$db_user,$db_password) || errors("Невозможно присоединиться к базе $db_host:$db_database, пользователь $db_user"); 
$sth = $db -> prepare("SELECT `ip`,`mac`,`ip2`,`mac2`,`ip3`,`mac3`,`password`,`check_mac` FROM `users` where user='$ARGV[0]' LIMIT 1; "); 
$sth -> execute () || errors("Не верный sql запрос"); 
while (my $ref = $sth -> fetchrow_hashref()) 
{ 
$ref_ip = $ref->{'ip'}; 
$ref_mac = $ref->{'mac'}; 
$ref_ip2 = $ref->{'ip2'}; 
$ref_mac2 = $ref->{'mac2'}; 
$ref_ip3 = $ref->{'ip3'}; 
$ref_mac3 = $ref->{'mac3'}; 
$ref_password = $ref->{'password'}; 
$ref_check_mac = $ref->{'check_mac'}; 
} 
$mpd_str = "none"; 
$i = 0; 
until($mpd_str eq ""){ 
if ($log == 1) { 
if ($i == 0) {my $cmd_result = `echo "Date: $date $time" >> $file_log`;} 
$i++; 
} 
$mpd_str = <STDIN>; 
chomp($mpd_str) ; 
 
if ($ref_check_mac eq "yes") { 
my $if_str = index($mpd_str, "PEER_MAC_ADDR:");  
if ($if_str != -1){ 
my $mac_from_mpd = substr($mpd_str, length("PEER_MAC_ADDR:"), (length($mpd_str)-length("PEER_MAC_ADDR:"))); 
if ($mac_from_mpd eq $ref_mac) {$send_ip = $ref_ip} 
elsif ($mac_from_mpd eq $ref_mac2) {$send_ip = $ref_ip2} 
elsif ($mac_from_mpd eq $ref_mac3) {$send_ip = $ref_ip3} 
else { 
$ref_password = "unidentified mac"; 
my $cmd_result = `echo "unidentified mac: $mac_from_mpd" >> $file_log`; 
}  
} 
} else { 
$send_ip = $ref_ip; 
} 
if ($log == 1) { my $cmd_result = `echo "$mpd_str" >> $file_log`; } 
} 
print "RESULT:UNDEF\n"; 
print "USER_NT_HASH:$ref_password\n"; 
print "FRAMED_IP_ADDRESS:$send_ip\n"; 
$sth -> finish(); 
$db -> disconnect(); 
print "\n"; 

Re: mpd5.2 + привязка к IP

Добавлено: 2009-02-23 0:22:57
paradox
что-бы привязать мак адрес логину и паролю
для этого есть pppoe
:cz2: ммда