URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 53058
[ Назад ]

Исходное сообщение
"Вопросы по pptpd под Linux"

Отправлено Slimm , 03-Фев-05 16:49 
Подскажите как правильно сделать:
1) чтоб pptpd под Linux отрубал пользователя во время сессии при превышении лимита скаченного трафика
2) варьировать скоростью подключения клиента по VPN

Содержание

Сообщения в этом обсуждении
"Вопросы по pptpd под Linux"
Отправлено Lucifer , 03-Фев-05 19:50 
>Подскажите как правильно сделать:
>1) чтоб pptpd под Linux отрубал пользователя во время сессии при превышении
>лимита скаченного трафика

а откуда он знает что у пользователя есть лимит? И какого именно трафика?
Помоему лучший вариант IPCad и по SNMP (rsh с ключами showipaccounting, grep User_IP) забирать его то что он качал, фильтровать то что надо, смотреть в каком-нибудь MySQL какой у него лимит и писать скрипт на отрубание пользователя.
Короче писать Биллинг.
>2) варьировать скоростью подключения клиента по VPN

1)/etc/pppd/chap-secrets или /etc/pppd/pap-secrets (или вру(но точно близко с тем))
2)IPTables


"Вопросы по pptpd под Linux"
Отправлено Slimm , 03-Фев-05 20:03 
>>Подскажите как правильно сделать:
>>1) чтоб pptpd под Linux отрубал пользователя во время сессии при превышении
>>лимита скаченного трафика
>
>а откуда он знает что у пользователя есть лимит? И какого именно
>трафика?
>Помоему лучший вариант IPCad и по SNMP (rsh с ключами showipaccounting, grep
>User_IP) забирать его то что он качал, фильтровать то что надо,
>смотреть в каком-нибудь MySQL какой у него лимит и писать скрипт
>на отрубание пользователя.
>Короче писать Биллинг.
>>2) варьировать скоростью подключения клиента по VPN
>
>1)/etc/pppd/chap-secrets или /etc/pppd/pap-secrets (или вру(но точно близко с тем))
>2)IPTables

Спасибо за ответ, но меня интересует именно то, о чем я спрашиваю, а не обход данного решения
Точно знаю что решение есть, большое число провайдеров используют VPN
и именно на этом сервере делаю и отключение и shaping

Ну а если уж затронули IPCad - встречный вопрос чем агрегируете статистику, самописными скриптами?


"Вопросы по pptpd под Linux"
Отправлено Sampan , 03-Фев-05 22:55 
>1) чтоб pptpd под Linux отрубал пользователя во время сессии при превышении лимита скаченного трафика

Регулярно проверять /proc/net/dev на предмет pppN (Receive или Transmit bytes) и сравнивать с лимитом. При превышении, iptables -A FORWARD -i pppN -j DROP - сам отключится. А как отключится, так и статистика в /proc/net/dev сбросится. Скрипт увидит, что лимит уже не превышен и удалит это правило iptables (для разблокировки следующих сессий). А, что бы вести сводную статистику между сессиями нужно куда-то значения из /proc/net/dev сохранять (в ту же базу, где и лимиты хранятся). Привязка pppN к логину через жестко заданный IP в chap-secrets. Такой скрипт на перле для sqlite делается за пару часов.
(Можно обойтись без iptables. Просто pppN down, но перед этим заблокировать в chap-secrets этот аккаунт)

>2) варьировать скоростью подключения клиента по VPN
iproute2 (ip + tc) для конкретных pppN. Управлять из того же скрипта.
(Еще несколько часов работы)

Скрипт вызывать раз в минуту.


"Вопросы по pptpd под Linux"
Отправлено Beginner , 04-Фев-05 07:54 
Поставить radius. Большинство уже поддерживает обрыв ppp сессии по достижении лимита трафика.

Насчет ограничения скорости - более сложный вопрос. Зависит от среды где используется (езернет, АДСЛ, чистый канал, проксирование, разрешенные виды трафика, что необходимо ограничивать - скачку или трафик в обе стороны). Короче решения этого вопроса на все случаи жизни не встречал



"Вопросы по pptpd под Linux"
Отправлено Slimm , 04-Фев-05 11:07 
>Поставить radius.
Стоит Freeradius
>Большинство уже поддерживает обрыв ppp сессии по достижении лимита трафика.
Скорей не radius должен поддерживать, а pppd
так вот и вопрос какой pppd поставить
У меня стоит 2.4.3, с модулем для radius-а, вообщем-то в базу складываются начало и конец сессии, а вот промежуточные значения - нефига
На сколько понимаю pppd во время сесси обменивается keep-alive пакетами с клиентами, и каждый пакет-ответ инициирует съем статистики с интерфейса,
апосля данные передаются radius-у и тот принимает решение продлить сессию или нет

>
>
>Насчет ограничения скорости - более сложный вопрос. Зависит от среды где используется
>(езернет, АДСЛ, чистый канал, проксирование, разрешенные виды трафика, что необходимо ограничивать
>- скачку или трафик в обе стороны). Короче решения этого вопроса
>на все случаи жизни не встречал
вообщем Ethernet, думал что при подъеме конкретного pppX интерфейса можно задать ему скорость, но походу только очереди меня спасут



"Вопросы по pptpd под Linux"
Отправлено jonatan , 04-Фев-05 11:17 
Я уже написал, что используй вызов, например, tbf в /etc/ppp/ip-up, который запускается при поднятии pppN. Ему передаеются параметры, среди которых номер интерфейса (например, ppp1).

"Вопросы по pptpd под Linux"
Отправлено jonatan , 04-Фев-05 09:07 
>же базу, где и лимиты хранятся). Привязка pppN к логину через
>жестко заданный IP в chap-secrets. Такой скрипт на перле для sqlite
>делается за пару часов.
В chap-secrets можно указать ip для логина. А как привязать логин к pppN?

"Вопросы по pptpd под Linux"
Отправлено Sampan , 04-Фев-05 16:30 
>В chap-secrets можно указать ip для логина. А как привязать логин к pppN?

Мониторить вывод ifconfig на соответствие IP


"Вопросы по pptpd под Linux"
Отправлено jonatan , 04-Фев-05 09:12 
>Подскажите как правильно сделать:
>1) чтоб pptpd под Linux отрубал пользователя во время сессии при превышении
>лимита скаченного трафика
Поставить, например, netams. Ведет статистику и поддерживает квоты.

>2) варьировать скоростью подключения клиента по VPN
Настроить под свои задачи htb. Вставить его вызов (или просто tbf) в /etc/ppp/ip-up.


"Вопросы по pptpd под Linux"
Отправлено valsha , 04-Фев-05 11:30 
А никто не знает КАК заставить pptp клиенту при обрыве связи, самому соеденяЦА опять с провайдером.
Спасибо!