ppoe + минусовый баланс+личный кабинет

Технические вопросы по UTM 5.0
dixanl
Сообщения: 16
Зарегистрирован: Вс май 19, 2013 18:08

ppoe + минусовый баланс+личный кабинет

Сообщение dixanl »

Умные люди подскажите может кто знает как сделать такую схему!
используем ppoe радиус
хотелось чтобы когда у абонента нет или отрицательный баланс ppoe соединение подключалось но интернет не работал а при попытке зайти на сайт абонент редиректился на страницу личного кабинета!

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

utm5_rfw + настройка соответствующая сервера авторизации

dixanl
Сообщения: 16
Зарегистрирован: Вс май 19, 2013 18:08

Сообщение dixanl »

utm5_rfw у нас запушен если комму не трудно может подскажите что и где надо сделать

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

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

mrmix25
Сообщения: 104
Зарегистрирован: Вт июн 07, 2011 11:43

Сообщение mrmix25 »

у себя настроил такую штуку. Используем коммутируемый доступ версия УТМ 009 (в версиях ниже не работает этот функционал) в ней создаем 2 пула один для не заблокированных абонентов второй для заблокированных далее в настройках радиуса разрешаем авторизовывать заблокированных абонентов и прописываем им пул для заблокированных. На насе(freebsd) для заблокированного пула настраиваем редирект все запросы от абонентов на 80 порта на страницу у вас закончились Деньги и через 60 секунд в личный кабинет, а все остальное блокируем.. если подходить моя схемка пишите расскажу поподробнее ..

dixanl
Сообщения: 16
Зарегистрирован: Вс май 19, 2013 18:08

Сообщение dixanl »

mrmix25 писал(а):у себя настроил такую штуку. Используем коммутируемый доступ версия УТМ 009 (в версиях ниже не работает этот функционал) в ней создаем 2 пула один для не заблокированных абонентов второй для заблокированных далее в настройках радиуса разрешаем авторизовывать заблокированных абонентов и прописываем им пул для заблокированных. На насе(freebsd) для заблокированного пула настраиваем редирект все запросы от абонентов на 80 порта на страницу у вас закончились Деньги и через 60 секунд в личный кабинет, а все остальное блокируем.. если подходить моя схемка пишите расскажу поподробнее ..
большое спасибо да ваша схема подходит сами решили так и сделать! если нетрудно опишите процедуру

taf
Сообщения: 309
Зарегистрирован: Вс янв 30, 2005 11:41

Сообщение taf »

mrmix25 писал(а):у себя настроил такую штуку. Используем коммутируемый доступ версия УТМ 009 (в версиях ниже не работает этот функционал) в ней создаем 2 пула один для не заблокированных абонентов второй для заблокированных далее
I. Клиент, завернутый в л/к, произвел оплату через карту предоплаты. И....? Только не говрите, что ему придется переподключаться. Дополним ситуацию роутером. Заставлять клиента дергать его по питанию это не дело.

II. У клиент кончились деньги на л/с, но сессия все еще живая. Как быть?

Все-таки идеологически правильнее будет не менять клиентам адреса. На БРАСе просто создаем заворот на л/к всем адресам. Клиенты, у которых интернет включен/плюсовой баланс, обходят этот заворот через разрешительное правило. Клиенты с отрицательным балансом/выключеным интернетом в разрешенных отсуствуют, и по-умолчанию попадают на редирект.

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

Пример.

Создаем правила для заворота:

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

-A PREROUTING -t nat -m set --match-set station src -j ACCEPT
-A PREROUTING -t nat -m set --match-set station dst -j ACCEPT
-A PREROUTING -t nat  -i ppp+ -p tcp -m tcp --dport 80 -j DNAT --to-destination IP_ADDR_BILLING
Создаем правила фильтрации:

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

-A FORWARD -i ppp+ -m set --match-set mandatory dst -j ACCEPT
-A FORWARD -i ppp+ -m set --match-set station src -j ACCEPT
-A FORWARD -i ppp+ -j DROP
в set'е mandatory прописываем все адреса, на которые клиент должен иметь доступ при любом состоянии баланса. У нас это сервера DNS, адрес сервера с личным кабинетом и адреса онлайновых платежных систем, по которым клиент может произвести оплату (сбербанки всякие и еще какая-то шняга)

в set'е station перечисляются IP клиентов. Адреса туда заносит utm_rfw. У нас клиентам назначаются фиксированные адреса, но все должно так же работать и при использовании динамических пулов + utm5_radius

Manjur
Сообщения: 30
Зарегистрирован: Ср июн 02, 2010 00:02
Откуда: Казахстан

Сообщение Manjur »

Пул "блокированных адресов" приходится делать, если пользуешь динамические адреса.
Если статика, то все решается тем, что написано в предыдущем сообщении и настройкой utm_radius.

У меня все сделано примерно также: при любой блокировке счета абоненты не блокируются, а редиректятся на заданную страничку, при пополнении счета\разблокировке аккаунта редирект не производится.

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

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

taf
Добрый день! У меня UTM core стоит на 1 машине там Debian 7.0 amd64. Сервер впн на другой там Freebsd 9.1 + mpd+pf.

Если бы биллинг был на том же Freebsd я тогда пишу к примеру в pf

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

rdr inet proto tcp from <CLIENTS_POOL> to any port &#123; 80, 81, 443, 1080, 3128, 8080, 8081 &#125; -> X.X.X.X port X.X.X.X
где CLIENTS_POOL - подключенные клиенты на мой сервер авторизации. Заворачиваем всех клиентов на нужную мне страничку.

Понимаю что идея состоит в том что файрволл настраивается на той же машине где биллинг? И правила не меняем мы на брасах.


Сначала ставлю в утм радиусе radius_auth_vap=1

Вероятная схема работы:

На той же машине где UTM Core

1)Настраиваем rfw на работу локально.

2)В админке утм Список брандмауэеров пишу ip UTM Core - я так понимаю нужен настроеный rfw - так как там указывается логин.?

3) )В админке утм Правила firewall там что писать надо можно скрин?

4) Вкатываем ваши правила которые вы описали ниже в iptables на тачке с UTM Core.

5) Что то дописывать необходимо в iptables кроме Ваших описаных ниже правил - у меня на машине с билингом iptables не использовался никогда?

6) Поправьте меня - буду признателен!

taf
Сообщения: 309
Зарегистрирован: Вс янв 30, 2005 11:41

Сообщение taf »

Manjur писал(а):А с теми, кто в заблокированном состоянии подключился - да, костыль с реконнектом, так уж биллинг устроен.
Погодите. При динамическом распределнии адресов, после авторизации клиента на него навешивается сервисная связка с текущим IP. Эта связка удаляется при получении Radius-Stop. Все это с применением родного радиуса. В случае использования FreeRADIUS это все приходится проделывать через вызов внешнего скрипта с urfa-client.

Эти эволюции utm-rfw видит, и его можно научить на них реагировать.

taf
Сообщения: 309
Зарегистрирован: Вс янв 30, 2005 11:41

Сообщение taf »

ZeM писал(а):taf
Понимаю что идея состоит в том что файрволл настраивается на той же машине где биллинг? И правила не меняем мы на брасах.
Нет, неправильно понимаете. У меня пример как раз для случая когда биллинг и BRAS это физически разные машины. Я вряд ли что-то смогу посоветовать для фряхи и ее четырех недо-фильтров, соррь.
Сначала ставлю в утм радиусе radius_auth_vap=1

Вероятная схема работы:

На той же машине где UTM Core

1)Настраиваем rfw на работу локально.

2)В админке утм Список брандмауэеров пишу ip UTM Core - я так понимаю нужен настроеный rfw - так как там указывается логин.?
Сейчас посмотрел у себя. Где-то стоит логин, где-то нет. И там и там работает. Вообще логин-пароль задается в системных пользователях и в конфиге rfw на месте.
3) )В админке утм Правила firewall там что писать надо можно скрин?

4) Вкатываем ваши правила которые вы описали ниже в iptables на тачке с UTM Core.
На BRAS'е

Таки почитайте документацию. В настройках правил файрвола бллинга можно задать реакцию на множество различных действий с клиентом: включение-выключение интернета, добавление-удаление связок и тд.

У меня на действия вида "Включить интернет, Добавление пользователя, Изменение пользователя" назначено правило

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

on UID UIP UBITS ULOGIN
На действия "Выключение интернета, Удаление пользователя"

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

off UID UIP UBITS ULOGIN
На действие "Изменение ширины входящего канала"

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

change_in ACCOUNT_ID BANDWIDTH
На действие "Изменение ширины исходящего канала"

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

change_out ACCOUNT_ID BANDWIDTH
На брасе имеется скрипт-враппер такого вида:

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

#!/bin/sh

# Internet
# 1 - on/off
# 2 - UID &#40;Billing&#41;
# 3 - UIP
# 4 - UBITS
# 5 - ULOGIN &#40;PPPoE&#41;
# Turbo
# 1 - change_in/change_out
# 2 - ACCOUNT_ID &#40;Billing&#41;
# 3 - Speed &#40;kbit/s&#41;


if &#91; "$3" != "0.0.0.0" &#93;
then
    case "$1" in
        on&#41;
            /sbin/ipset add station $&#123;3&#125;/$&#123;4&#125;
            ;;
        off&#41;
            /sbin/ipset del station $&#123;3&#125;/$&#123;4&#125;
            ;;
        change_in&#41;
            CLASS=`grep "^$&#123;2&#125; " < shape.db | cut -f2 -d " "`
           tc class change dev eth1 parent 1&#58; classid 1&#58;$&#123;CLASS&#125; est 1sec 8sec hfsc sc umax 1500b dmax 10ms rate $&#123;3&#125;kbit ul rate $&#123;3&#125;kbit
            echo "\n" > /tmp/shape.old
            ;;
        change_out&#41;
            CLASS=`grep "^$&#123;2&#125; " < shape.db | cut -f2 -d " "`
           tc class change dev eth0 parent 1&#58; classid 1&#58;$&#123;CLASS&#125; est 1sec 8sec hfsc sc umax 1500b dmax 10ms rate $&#123;3&#125;kbit ul rate $&#123;3&#125;kbit
            echo "\n" > /tmp/shape.old
            ;;
    esac
fi
exit 0

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

taf
Спасибо уже яснее.
Редирект сделать на фре не проблема.

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

sudo_path=/usr/local/bin/sudo 
 firewall_path=/sbin/pfctl 
 rfw_name=127.0.0.1 
 core_host=127.0.0.1 
 core_port=11758 
 rfw_login=init 
 rfw_password=init 
 log_level=3 
 log_file_main=/netup/utm5/log/rfw.log 
 log_file_debug=/netup/utm5/log/rfw.log 
 log_file_critical=/netup/utm5/log/rfw.log
Закидываю с тачки с дебианом ./utm5_rfw
ELF binary type "0" not known.
./utm5_rfw: Exec format error. Binary file not executable.
Видимо надо качать UTM под freebsd разворачивать его и выдергивать utm5_rfw. + rfw5.cfg должны быть одинаковы на брасах и UTM Core в части логина и пароля.

taf
Сообщения: 309
Зарегистрирован: Вс янв 30, 2005 11:41

Сообщение taf »

Линуксовые бинарники пытаетесь запустить под фряхой? Скачайте фряшную инсталляшку и используйте бинарники из нее.

mrmix25
Сообщения: 104
Зарегистрирован: Вт июн 07, 2011 11:43

Сообщение mrmix25 »

taf писал(а): I. Клиент, завернутый в л/к, произвел оплату через карту предоплаты. И....? Только не говрите, что ему придется переподключаться. Дополним ситуацию роутером. Заставлять клиента дергать его по питанию это не дело.
После оплаты скрипт ребутит клиенту сессию. После оплаты клиенту делать ни чего не надо для включения интернета.....
taf писал(а): II. У клиент кончились деньги на л/с, но сессия все еще живая. Как быть?
так как используем только безлимитные тарифы и расчетный период с 1 по 1 + настроил не уходить в минус(тут на форуме есть тема), то после блокировки 1 числа в 0-15 скриптом рвем заблокированные сессии
taf писал(а): Все-таки идеологически правильнее будет не менять клиентам адреса. На БРАСе просто создаем заворот на л/к всем адресам. Клиенты, у которых интернет включен/плюсовой баланс, обходят этот заворот через разрешительное правило. Клиенты с отрицательным балансом/выключеным интернетом в разрешенных отсуствуют, и по-умолчанию попадают на редирект.
я не говорил что у меня единственное правильное решение :), но для наших нужд оно подходит...
taf писал(а): Никаких двойных пулов, никаких требований по переподключению для клиентов, никаких костылей по принудительному прерыванию сессий клиентов в случае включить/выключить интернет.
Повторюсь используем коммутируемый доступ, в УТМ нельзя авторизовываться заблокированным клиентам использующим услугу коммутируемый доступ, есть только один способ их авторизовать = это второй пул по другому ни как!


Задача от руководства изначально была сделать чтоб клиенты не уходили в минус, то есть блокировать их когда у них не хватает средств для списания на следующий месяц собственно без костыля ни как ... :(

Аватара пользователя
ZeM
Сообщения: 371
Зарегистрирован: Чт фев 17, 2011 08:38

Сообщение ZeM »

taf
Верил в опцию в ядре COMPAT_LINUX))

Ответить