Перейти к содержимому
Калькуляторы

Добрый день коллеги! Имеется в качестве bras-ов Freebsd 8.2 MPD5 pptp+pppoe . БД + freeradius. Трафик не считается. Подскажи, кто и как отслеживает в базе, что сессия online.

И такой вопрос. 5 этих же bras-ов. На всех service name "pppoe.123" , Авторизация Login+Password+mac. Абонент подключен к серверу A. Так же он может подключится к серверу B. Каким образом можно ему запретить доступ. Acct?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если у Вас FreeRadius - делайте Session-Limit и чекалку в radcheck.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажи, кто и как отслеживает в базе, что сессия online.

NOW() < last_update + 2 * alive_time

 

MPD5

Там есть своя WEB-морда, можно CURL-ом выбирать активные сессии.

 

Каким образом можно ему запретить доступ.

Проверять NAS-ID/NAS-IP

Изменено пользователем Deac

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Внимательно изучайте RADIUS протокол и мануал к фрирадиусу.

Можно сделать так, что определённый абонент (или определённая группа абонентов) может подключаться только на определённый сервер получая определённые параметры (шейпинга, ACL и т.п.).

PPPoE вы рулите настройкой тегерирования на узле, PPTP обычно прописано у абонента, так что имеенно там это и надо.

 

Сессия online отслеживатется по наличию пустого поля accounting stop, вроде так называется в БД. Ну и по желанию выборки по client ip и другие параметры.

 

Ещё настоятельно советую проработать перепроверку не MAC адреса, а ID свича при использовании фичи PPPoE circuit id insertion, гораздо более гибрая хрень.

 

Ну и напоследок - убейте нахер PPTP, оставляйте только PPPoE, хоть и диагностируется несколько хуже, зато гораздо более удобная в плане распределения нагрузок между серваками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По поводу веб морды - вот мой скрипт для мониторинга группы серверов на mpd5:

 

<?php
error_reporting(E_ALL & ~E_DEPRECATED);
ini_set('display_errors',1);

$vpn_url = array();
#$vpn_url[] = "172.28.200.4";
$vpn_url[] = "172.28.200.61";
$vpn_url[] = "172.28.200.62";
$vpn_url[] = "172.28.200.71";
$vpn_url[] = "172.28.200.72";

$all_pptp = 0;
$all_l2tp = 0;

foreach($vpn_url as $k => $v ) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://$v:5006/");
curl_setopt($ch, CURLOPT_USERPWD, "admin:нутутвашпаролькоторыйвконфигеmpdуменяонединдлявсехбрасовтакжекакилогин");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_HEADER, false);
$out = curl_exec($ch);
$count_pptp = count(explode('pptp', $out))-1;
$count_l2tp = count(explode('l2tp', $out))-1;
$count_sum  = $count_pptp + $count_l2tp;
$listing = str_replace("<H1>Multi-link PPP Daemon for FreeBSD</H1>\n<H2>Current status summary</H2>","<H2>VPN server $v ( pptp: $count_pptp + l2tp: $count_l2tp = $count_sum)</H2>",$out);
$all_pptp = $all_pptp + $count_pptp;
$all_l2tp = $all_l2tp + $count_l2tp;

print $listing;
curl_close($ch);
}
$all = $all_pptp+$all_l2tp;
print "<br><h2>All: $all ALL pptp: $all_pptp, ALL l2tp: $all_l2tp</h2>";
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо за подсказки. В будущем хотим съехать на pppoe. Балансирую с помощью DNS+ скрипты. Снимают по snmp нагрузку на интерфейсе и кидает на нужный сервер. Кому интересно могу выложить балансировку нагрузки с помощью DNS для pptp/lt2p.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. не знаю как все, единого мнения тут никогда не будет - я в своей сети юзаю pptp ( для больных роутеров, которые л2 не знают ) и l2tp - лучше конечно уходить на ипое но денег на замену в поле железа нет

2. с помощью днс - да всё просто - пиши в днс несколько ипов для имени и всё - у меня есть имя в днс vpn.lan и l2tp.lan - там 4 ипа ( по конфигу ж видно ) - они по кругу роунд-робином и бегают - если чо-то отваливается, после 1-2 реконнектов юзер попадает на работающий брас

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как быть с PPPoE ?. Если пользовтель может подключится с одной учетки на разные брасы с разных компов и получить инет. ПО каком отребуту запрещать или отслеживать?

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У FreeRADIUS есть поддержка Session-Limit. Вот им и отслеживайте. В случае нетиповых BRAS'ов ещё придётся подпилить radcheck, но это задача достаточно тривиальная.

Изменено пользователем Alex/AT

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сессия online отслеживатется по наличию пустого поля accounting stop, вроде так называется в БД.

Не катит для "зависших" сессий.

Вариант с неприходом двух ALIVE работает всегда.

 

ПО каком отребуту запрещать или отслеживать?

Говорю же - NAS-ID и/или NAS-IP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если пользовтель может подключится с одной учетки на разные брасы с разных компов и получить инет.

Добавляйте перепроверку порта свича при авторизации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если пользовтель может подключится с одной учетки на разные брасы с разных компов и получить инет.

Добавляйте перепроверку порта свича при авторизации

на узле упроваляемый, в подьездах плоское железо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

там, где присутствуют гирлянды тупарей - привязывайтесь к MAC-адресу, в нормальном случае авторизируйте по порту свича.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

там, где присутствуют гирлянды тупарей - привязывайтесь к MAC-адресу, в нормальном случае авторизируйте по порту свича.

с маком то понятном. Не лучший вариант. Я вот толкьо не пойму как реализвоть по NAS-IP , в radcheck добавлять? и что? подключился он, потом отклбчился и на другой сервак, а там nas-ip другой уже/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подключился он, потом отклбчился и на другой сервак, а там nas-ip другой уже/

В sql-базе биллинга должно отслеживаться состояние клиента - подключен или нет.

В таблице пользователей есть такое поле?

Проверять/устанавливать значение sql-запросом из FreeRADIUS'а.

У нас он для users.connected = 'YES' просто выдавал клиенту туннельный IP 127.0.0.1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вот толкьо не пойму как реализвоть по NAS-IP

Добавить проверку в Auth.

В биллинге добавить таблицы "nases"(заносить сюда NAS-ID/NAS-IP) и "allowed_nases"(поабонентский список разрешённых NAS).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подключился он, потом отклбчился и на другой сервак, а там nas-ip другой уже/

В sql-базе биллинга должно отслеживаться состояние клиента - подключен или нет.

В таблице пользователей есть такое поле?

Проверять/устанавливать значение sql-запросом из FreeRADIUS'а.

У нас он для users.connected = 'YES' просто выдавал клиенту туннельный IP 127.0.0.1.

биллинг самописный/ Можешь написать пример запроса. В доках перелыл не нашел.

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вот толкьо не пойму как реализвоть по NAS-IP

Добавить проверку в Auth.

В биллинге добавить таблицы "nases"(заносить сюда NAS-ID/NAS-IP) и "allowed_nases"(поабонентский список разрешённых NAS).

Они у нас есть. Авторизация для pppoe идет по Логину и Паролю. MAC привязывать не будем. Допустим абонент подключился на сервер A . Этот же абонент подключился на сервер B. И их пустило. Если сделать проверку на NAS IP , так ему же один сервер будет разрешен. ВОт и ищу каким радиус запросом можно проверить, что абонент online. В базу приходят Nas-IP .Тоесть мы знаем на каком сервере абонент.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ВОт и ищу каким радиус запросом можно проверить, что абонент online.

NOW() < last_update + 2 * alive_time

 

Неприход двух аливов гарантировано указывает на неактивность абонента.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно попытаться прочитать что такое checkrad

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно попытаться прочитать что такое checkrad

...не работает с MPD.

 

Уже при 5 NAS-ах опрос CURL-ом занимает изрядное время.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

...не работает с MPD.

Дык, допилить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дык, допилить.

=юзать CURL, с вышеуказанным результатом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо всем за помощь. Все получилось. Включи acct в mpd. Ловим начало и конец сессии. При подключении абонентов с одиноковой учеткой , проверяет на он-лайн.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообщем не получилось грамотно отслеживать на online , с помощью конца сессии. Так как зависшие сессии присутствуют. Так CURL-ом проще? у меня 16 машин. Хотим уйти на mpd+pppoe. Полностью. Какими еще способами можно не допускать поднятие второй сессии с одинаковым логином. не много отстуспления.

NAS MPD5+PPTP+PPPoE . Авторизация для pptp . Login+Password+IP. PPPoe Login+Password. Сеть сегментирована. Соотвественно на разных районах можно сидеть с одинаковыми IP. И выходит под одним логином подключаясь на разные сервера .На доме умное железо. В подъездах плоское.

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.