skeletor Опубликовано 18 февраля, 2011 · Жалоба Есть настроенный сервер на mpd5.5. Всё работает. Но хотелось бы в логах видеть IP с которого подключается клиент. В логах он не пишется почему-то, зато его можно посмотреть через консоль и через web-ку. Пробовал включать debug level 1/2 - но IP адрес всё равно не пишется. Как решить эту проблему? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 18 февраля, 2011 · Жалоба А почему в биллинге не смотрите? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 18 февраля, 2011 · Жалоба У меня нет биллинга. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 18 февраля, 2011 · Жалоба Стандартными средствами нельзя никак. Вот вариант, предложенный одним человеком: 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" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 18 февраля, 2011 · Жалоба Но хотелось бы в логах видеть IP с которого подключается клиент. В RADIUS-accounting он пишется Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
andryas Опубликовано 18 февраля, 2011 · Жалоба У меня некоторое время работало так: #!/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/ Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 18 февраля, 2011 · Жалоба А подробнее? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
andryas Опубликовано 18 февраля, 2011 · Жалоба А подробнее? Не понятен вопрос. В конфиг mpd добавить строчку set auth extacct-script \путь к скрипту\скрипт.pl естественно, должен быть установлен perl. Логи читаем в папке /var/log/acct/, по пользователям и общий. Общий создаётся ежемесячно. Подробней логи можна сделать, добавив чтение и запись нужных переменных. Описание переменных есть в мануале. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 19 февраля, 2011 · Жалоба +1 за up-script. Если без занудства, то в нём достаточно одной строки: logger -p ppp.info -t mpd-up "$@" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 21 февраля, 2011 (изменено) · Жалоба Это понятно. Я имел ввиду пост terrible Изменено 21 февраля, 2011 пользователем skeletor Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 21 февраля, 2011 (изменено) · Жалоба Если 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 сервера. Изменено 21 февраля, 2011 пользователем terrible Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skeletor Опубликовано 21 февраля, 2011 · Жалоба Если MPD является клиентом RADIUS сервера А если нет? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 21 февраля, 2011 · Жалоба А что у вас в конфиге указано логировать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...