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

mpd4 скинуть клиента

Добавлено: 2009-01-22 17:50:46
RusBiT
Подскажите как отключить клиента от mpd сервера, mpd ng10 down , не скидывает, а только блокирует трафик

Re: mpd4 скинуть клиента

Добавлено: 2009-01-22 18:19:28
paradox

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

#!/usr/bin/perl
use IO;

# mpd.kill $ip-server $nas-port $ip-client
#

	if ($ARGV[2] eq ''){ die "Usage: mpd.kill nasip nasport userip"; }

 $nasip   = $ARGV[0];
 $nasport = $ARGV[1];
 $userip  = $ARGV[2];
 $nastelnetport = 5005;
 
	$sock = IO::Socket::INET->new(
		PeerAddr => $nasip,
		PeerPort => $nastelnetport,
		Proto => 'tcp') or die "Can not connect to mpd!\n$!";

	$sock->autoflush(1);

	print $sock "link pptp",$nasport,"\n";
	print $sock "close\n"; 
	print $sock "exit\n"; 
	close $sock;
exit 0;
нужное поправите

Re: mpd4 скинуть клиента

Добавлено: 2009-01-22 18:24:41
RusBiT
Скрипт который ты кинул , он для mpd3 (в нем нету авторизации по телнету) , а также соединение убивается по порту , а не ip

Re: mpd4 скинуть клиента

Добавлено: 2009-01-23 11:55:03
RusBiT
Подскажите как через консоль mpd зная ip клиента, можно узнать интерфейс.
По идее можно узнать через netstat , у меня есть и pptp и pppoe , которые отображаются как ng

Re: mpd4 скинуть клиента

Добавлено: 2009-01-23 15:12:45
uHk
а я через вэб-интерфейс скидывал. 5006 - порт

Re: mpd4 скинуть клиента

Добавлено: 2009-01-23 17:03:10
rmn
RusBiT писал(а):Подскажите как через консоль mpd зная ip клиента, можно узнать интерфейс.
По идее можно узнать через netstat , у меня есть и pptp и pppoe , которые отображаются как ng
Можно сохранять где-нить логин/пароль/интерфейс при подключении клиента и брать инфу оттуда. Я в mysql храню...

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

set iface up-script /usr/local/vpnman/vpnifup.php
set iface down-script /usr/local/vpnman/vpnifdown.php
все, что нужно скрипты получат в параметрах.

----
как вариант:

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

ifconfig | grep -B 1 10.0.1.100 | head -n 1 | awk '{print $1}'

Re: mpd4 скинуть клиента

Добавлено: 2009-01-23 18:05:21
RusBiT
uHk писал(а):а я через вэб-интерфейс скидывал. 5006 - порт
Вручную скинуть не проблема через консоль. Я хочу в abills при негативном депозите отключать пользователя от сервера.
В данный момент только блокирую трафик при негативном депозите

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

conf{IPN_FW_STOP_RULE}="/usr/local/bin/sudo /sbin/ifconfig `/usr/bin/netstat -rn | grep %IP | awk \'{ print \$6}\'` down";

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

ifconfig | grep -B 1 10.0.1.100 | head -n 1 | awk '{print $1}'
Я получу ng*, а в консоли mpd у меня фигурирует

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

pptp*         pptp*[Initial/DOWN]
pppoe*        pppoe*[Initial/DOWN]
Как вариант можно задать границы в номере интерфейса pppoe или pptp , или же кикать pppoe1 pptp1 :smile:

Re: mpd4 скинуть клиента

Добавлено: 2009-01-23 18:10:21
paradox
Вручную скинуть не проблема через консоль. Я хочу в abills при негативном депозите отключать пользователя от сервера.
В данный момент только блокирую трафик при негативном депозите
обычно биллинги работают по радиусу
а в базе уже лежит статистика о юзере номере интерфейса ng* и айпишнике

выбросте тот биллинг который это неумеет

тот скрипт как раз работает у меня в биллинге

Re: mpd4 скинуть клиента

Добавлено: 2009-01-23 18:49:33
RusBiT
он работает через radius , через web интерфейс все удачно скидывает, попробую разобраться :smile: