Jump to content

Recommended Posts

Posted

Есть настроенный сервер на mpd5.5. Всё работает. Но хотелось бы в логах видеть IP с которого подключается клиент. В логах он не пишется почему-то, зато его можно посмотреть через консоль и через web-ку. Пробовал включать debug level 1/2 - но IP адрес всё равно не пишется.

Как решить эту проблему?

Posted

Стандартными средствами нельзя никак. Вот вариант, предложенный одним человеком:

 

mpd.conf:

...

set iface up-script /usr/local/etc/mpd5/1_up.sh

...

 

 

/usr/local/etc/mpd5/1_up.sh:

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin

 

 

_if=$1;

_if_gw=$4;

_if_user=$5;

_if_ip=$3;

_if_src_ip=$8;

 

/usr/bin/logger "mpd: user $_if_user logged from $_if_src_ip on iface=$_if with iface_ip=$_if_gw"

Posted

У меня некоторое время работало так:

 

#!/usr/local/bin/perl

my %hash;

while (<STDIN>) {
    last if ($_ eq "\n");
    chomp;
    my ($k, $v) = split ':', $_, 2;
    $hash{$k} = $v;
}


($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();

$year+=1900;
$mon+=1;

$LOGLINE=sprintf("%4d.%02d.%02d %02d:%02d:%02d",$year,$mon,$mday,$hour,$min,$sec)."    $hash{ACCT_STATUS_TYPE}    $hash{IFACE}    $hash{FRAMED_IP_ADDRESS}    $hash{USER_NAME}    $hash{PEER_ADDR}    $hash{ACCT_SESSION_TIME}    $hash{ACCT_INPUT_OCTETS}    $hash{ACCT_OUTPUT_OCTETS}    $hash{ACCT_TERMINATE_CAUSE}    $hash{PEER_IDENT}\n";


open LOG, ">> /var/log/acct/$hash{USER_NAME}" or die "\n";
print LOG $LOGLINE;
close LOG;


open LOG, ">> /var/log/acct/".sprintf("%4d.%02d.",$year,$mon)."vpn.log" or die "\n";
print LOG $LOGLINE;
close LOG;


printf "\n";

 

Перед подключением скрипта создайте папку /var/log/acct/

Posted
А подробнее?

Не понятен вопрос.

В конфиг mpd добавить строчку

set auth extacct-script \путь к скрипту\скрипт.pl

естественно, должен быть установлен perl. Логи читаем в папке /var/log/acct/, по пользователям и общий. Общий создаётся ежемесячно.

 

Подробней логи можна сделать, добавив чтение и запись нужных переменных. Описание переменных есть в мануале.

Posted (edited)

Если MPD является клиентом RADIUS сервера, то при общении MPD и RADIUS они обмениваются вот такими сообщениями аккаунтинга:

Старт сессии:

 

Mon Feb 21 15:54:29 2011
    NAS-Identifier = "mpd"
    NAS-IP-Address = 10.16.33.109
    Acct-Session-Id = "8292971-N-1580"
    NAS-Port = 1580
    NAS-Port-Type = Virtual
    Service-Type = Framed-User
    Framed-Protocol = PPP
    Calling-Station-Id = "192.168.28.10"
    mpd-link = "N-1580"
    Tunnel-Type:0 = PPTP
    Tunnel-Medium-Type:0 = IPv4
    Tunnel-Server-Endpoint:0 = "10.10.89.70"
    Tunnel-Client-Endpoint:0 = "192.168.28.10"
    Acct-Status-Type = Start
    Framed-IP-Address = 172.16.153.90
    User-Name = "brood"
    Acct-Multi-Session-Id = "8292971-N-812"
    mpd-bundle = "N-812"
    mpd-iface = "ng810"
    mpd-iface-index = 848
    Acct-Link-Count = 1
    Acct-Authentic = RADIUS
    Acct-Unique-Session-Id = "130bb29bb056bce6"
    Timestamp = 1298292869
    Request-Authenticator = Verified

 

Завершение сессии:

Mon Feb 21 15:54:31 2011
    NAS-Identifier = "mpd"
    NAS-IP-Address = 10.16.33.109
    Acct-Session-Id = "8292971-N-1580"
    NAS-Port = 1580
    NAS-Port-Type = Virtual
    Service-Type = Framed-User
    Framed-Protocol = PPP
    Calling-Station-Id = "192.168.28.10"
    mpd-link = "N-1580"
    Tunnel-Type:0 = PPTP
    Tunnel-Medium-Type:0 = IPv4
    Tunnel-Server-Endpoint:0 = "10.10.89.70"
    Tunnel-Client-Endpoint:0 = "192.168.28.10"
    Framed-IP-Address = 172.16.153.90
    User-Name = "brood"
    Acct-Multi-Session-Id = "8292971-N-812"
    mpd-bundle = "N-812"
    mpd-iface = "ng810"
    mpd-iface-index = 848
    Acct-Link-Count = 1
    Acct-Authentic = RADIUS
    Acct-Status-Type = Stop
    Acct-Terminate-Cause = User-Request
    Acct-Session-Time = 4
    Acct-Input-Octets = 3631
    Acct-Input-Packets = 14
    Acct-Input-Gigawords = 0
    Acct-Output-Octets = 116
    Acct-Output-Packets = 6
    Acct-Output-Gigawords = 0
    Acct-Unique-Session-Id = "130bb29bb056bce6"
    Timestamp = 1298292871
    Request-Authenticator = Verified

 

Соответственно мы видим, что:

абонент, с адреса 192.168.28.10 дозваливался до VPN сервера на адрес 10.10.89.70 (именно на этот) и получил IP на PPTP тоннель 172.16.153.90

VPN сервер в свою очередь в сторону радиуса смотрит IP адресом 10.16.33.109

Вполне исчерпывающая информация для мониторинга.

 

Вся вышеперечисленная информация вытащена из логов RADIUS сервера.

Edited by terrible

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.