Jump to content
Local
garik_ziv

Ubilling+Mikrotik PPP отключение юзеров и кабинет пользователя

Recommended Posts

Ситуация такая - есть   Ubilling+Mikrotik, там работают ppp пользователи и когда они уходят в минус их учетка на микротике  уходит в disable (соотв пользователь не проходит авторизацию и курит бамбук).

При этом хочется использовать кабинет пользователя для юзеров ушедших в минус - с какой стороны зайти (учитывая что используется только ppp)?

По форуму нашел только решения использующие dhcp ...

upd: есть ли возможность делать чтото с пользователем кроме отключения - менять пакет и тд?

Edited by garik_ziv

Share this post


Link to post
Share on other sites

 

 

с какой стороны зайти

Попробуйте radius. Всем пользователям давать access-accept. В качестве address-list давать состояние абонент. И рулить правилами фафервала в кабинет или на страницу напоминалку 

Share this post


Link to post
Share on other sites

 

с какой стороны зайти

Попробуйте radius. Всем пользователям давать access-accept. В качестве address-list давать состояние абонент. И рулить правилами фафервала в кабинет или на страницу напоминалку 

 

 

Ну radius це зрозуміло, а чи ніхто не реалізовував без radius?

Share this post


Link to post
Share on other sites

 

 

а чи ніхто не реалізовував без radius?

Прочитал почти весь форум, но ничего похожего не увидел. 

Share this post


Link to post
Share on other sites
При этом хочется использовать кабинет пользователя для юзеров ушедших в минус - с какой стороны зайти (учитывая что используется только ppp)? По форуму нашел только решения использующие dhcp ...

Значит или  возможно вы единственный у кого остались продвинутые пользователи  для PPP !  У меня например мало кто знает о существовании настроек сетевых адаптеров

 

 

 

При этом хочется использовать кабинет пользователя для юзеров ушедших в минус

Важность этой функции такова, что без нее биллинг вообще не нужен , имхо пришла пора поработать микротику свитчем

Edited by zaza12

Share this post


Link to post
Share on other sites

Может учетке ставить другой профиль с другим пулом ? Но прийдется рвать коннект при переходе через 0.

Share this post


Link to post
Share on other sites

Может учетке ставить другой профиль с другим пулом ? Но прийдется рвать коннект при переходе через 0.

Весь вопрос как это автоматизировать? Если есть возможность менять пакет на другой при переходе через 0 (не руками) то остальное не так страшно.

Edited by garik_ziv

Share this post


Link to post
Share on other sites
когда они уходят в минус их учетка на микротике  уходит в disable

Это автоматизированно ? Как ?

Share this post


Link to post
Share on other sites

 

когда они уходят в минус их учетка на микротике  уходит в disable

Это автоматизированно ? Как ?

 

Это работает по умолчанию (инструкции на сайте - работа с микротиком через апи)

Share this post


Link to post
Share on other sites

PPP непотрібно відключати.

Користувачам потрібно зробити 2 ексес ліста: один з доступом до інтернету, другий без.

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

Share this post


Link to post
Share on other sites

Вся логика находится в файле mikrotik.drv, функция ppp. Можете переделать чтобы вместо enable/disable менять профиль.

Share this post


Link to post
Share on other sites

Вся логика находится в файле mikrotik.drv, функция ppp. Можете переделать чтобы вместо enable/disable менять профиль.

    $template['disabled']  = ( isset( $template['disabled'] ) && ENVIRONMENT != 'OnConnect' ) ? 'yes' : 'no';

строку нашел, подскажите пожалуйста как сменить профиль к примеру (либо подсеть, либо еще с какой стороны зайти чтоб зацепится и начать делать)

этож придется костыль прямо сюда вписывать с конечными данными в виде сети ...? 

Edited by garik_ziv

Share this post


Link to post
Share on other sites

Выше в строке выставляется профиль

 

$template['profile']   = !empty( $profile ) ? $profile[0]['name'] : $template['profile'];
 
берется из базы, если есть, иначе default из темплейта
для каждого профиля создайте парный, с суффиксом '-blocked', строку
 
$template['disabled']  = ( isset( $template['disabled'] ) && ENVIRONMENT != 'OnConnect' ) ? 'yes' : 'no';
 
комментируйте, и добавьте новую
 
if( ENVIRONMENT == 'OnDisconnect' ) { $template['profile']  .= '-blocked'; }
 
тут же можно добавить команду на разрыв pppoe сессии

А ip у пользователей постоянные (прописанные в secret'e), или выдаются из пула микротиком ?

Share this post


Link to post
Share on other sites

Выше в строке выставляется профиль

 

$template['profile']   = !empty( $profile ) ? $profile[0]['name'] : $template['profile'];
 
берется из базы, если есть, иначе default из темплейта
для каждого профиля создайте парный, с суффиксом '-blocked', строку
 
$template['disabled']  = ( isset( $template['disabled'] ) && ENVIRONMENT != 'OnConnect' ) ? 'yes' : 'no';
 
комментируйте, и добавьте новую
 
if( ENVIRONMENT == 'OnDisconnect' ) { $template['profile']  .= '-blocked'; }
 
тут же можно добавить команду на разрыв pppoe сессии

А ip у пользователей постоянные (прописанные в secret'e), или выдаются из пула микротиком ?

ip отдается биллингом по апи, мне кажется что смена подсети путь более интересный

ну и по терминологии, в морде биллинга есть понятие тарифа и есть сети, что подразумевается под профилем?

Edited by garik_ziv

Share this post


Link to post
Share on other sites

Профиль - это термин микротика, для каждого secret он прописан, конфигурится в закладке profile. Среди прочих настроек можно выставить пул адресов. Но, похоже, вам предложенная схема не подойдет, поскольку ip выдается с биллинга.

Думаю проще будет сделать address list на микротике, например с названием inet.allow, и по событиям OnConnect/OnDisconnect добавлять/удалять ip клиента в этот список. В файерволе настроить доступ в интернет только для ip с этого списка, остальных перебрасывать на заглушку биллинга.

Share this post


Link to post
Share on other sites

Профиль - это термин микротика, для каждого secret он прописан, конфигурится в закладке profile. Среди прочих настроек можно выставить пул адресов. Но, похоже, вам предложенная схема не подойдет, поскольку ip выдается с биллинга.

Думаю проще будет сделать address list на микротике, например с названием inet.allow, и по событиям OnConnect/OnDisconnect добавлять/удалять ip клиента в этот список. В файерволе настроить доступ в интернет только для ip с этого списка, остальных перебрасывать на заглушку биллинга.

Вот это и хочу, но в моем понимании сеть дожна отдаваться биллингом, а как отправить юзера с такой сетью в ... это уже задача попроще

как отдать юзеру нужную сеть вместо отключения учетки ?

какой кусок кода скармливает микротику новую сеть для учетки юзера, когда это делается штатно - меняеш сеть с морды биллинга?

Edited by garik_ziv

Share this post


Link to post
Share on other sites

Покажите настройки рабочей учетки на микротике, одну строку с вывода команды ppp secret export

Share this post


Link to post
Share on other sites

Покажите настройки рабочей учетки на микротике, одну строку с вывода команды ppp secret export

 [adminroot@MikroTikNAS3] > ppp secret export

# nov/03/2016 08:37:00 by RouterOS 6.37.1
# software id = zzzzzzz
#
/ppp secret
add name=aaaaaa password=zzzzzz remote-address=10.10.16.12
add name=ssssss password=xxxxxx remote-address=10.10.16.4
Edited by garik_ziv

Share this post


Link to post
Share on other sites

Ип для пользователей выставляет биллинг, схема с таблицей в файерволе будет работать. Даже коннект рвать не нужно. В функции ppp для параметра disabled уберите условие, он должен быть всегда 'no'. Добавьте там же команды микротика для внесения/удаления ип пользователя в таблицу в зависимости от события OnConnect или OnDisconnect.

Share this post


Link to post
Share on other sites

Ип для пользователей выставляет биллинг, схема с таблицей в файерволе будет работать. Даже коннект рвать не нужно. В функции ppp для параметра disabled уберите условие, он должен быть всегда 'no'. Добавьте там же команды микротика для внесения/удаления ип пользователя в таблицу в зависимости от события OnConnect или OnDisconnect.

Не могли бы ткнуть пальцем в кусок кода, который отрабатывает при изменении ип клиента в биллинге, я могу завести нужную сеть (172...) и вместо disable  скормить это микротику, соотв в учетке на микротике появится другой ип, которы можно рулить по другому ...

Share this post


Link to post
Share on other sites

Я не пользуюсь этим биллингом и не смогу сходу указать нужное место. Я предложил рабочее решение, дописать всего 10-20 строк кода в одном месте.

Share this post


Link to post
Share on other sites

Выше в строке выставляется профиль

 

$template['profile']   = !empty( $profile ) ? $profile[0]['name'] : $template['profile'];
 
берется из базы, если есть, иначе default из темплейта
для каждого профиля создайте парный, с суффиксом '-blocked', строку
 
$template['disabled']  = ( isset( $template['disabled'] ) && ENVIRONMENT != 'OnConnect' ) ? 'yes' : 'no';
 
комментируйте, и добавьте новую
 
if( ENVIRONMENT == 'OnDisconnect' ) { $template['profile']  .= '-blocked'; }
 
тут же можно добавить команду на разрыв pppoe сессии

А ip у пользователей постоянные (прописанные в secret'e), или выдаются из пула микротиком 

 
                                if( ENVIRONMENT == 'OnDisconnect' ) { $template['remote-address'] = str_replace("10.10", "172.16", $template['remote-address']);}
                                else $template['remote-address'] = str_replace("172.16", "10.10", $template['remote-address']);
грубо конечно, но то что уже получилось...
Edited by garik_ziv

Share this post


Link to post
Share on other sites

Тоже вариант. Но ип меняется не у пользователя, а у соответствующей записи secret. Чтобы сменить ип пользователю необходимо со стороны микротика разорвать соединение, а со стороны пользователя восстановить, тогда будет выдан новый ип. Оставлять старый не ок, у меня роутеры сутками на ппп висят. После пополнения счета опять придется рвать коннект. И это все ради изменения ип, по которому в файерволе будет построена фильтрация должников. Для разрыва сессии надо на микротик отправить команду, т.е. дописать несколько строк в программе.

 

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

Share this post


Link to post
Share on other sites

Тоже вариант. Но ип меняется не у пользователя, а у соответствующей записи secret. Чтобы сменить ип пользователю необходимо со стороны микротика разорвать соединение, а со стороны пользователя восстановить, тогда будет выдан новый ип. Оставлять старый не ок, у меня роутеры сутками на ппп висят. После пополнения счета опять придется рвать коннект. И это все ради изменения ип, по которому в файерволе будет построена фильтрация должников. Для разрыва сессии надо на микротик отправить команду, т.е. дописать несколько строк в программе.

 

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

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

Share this post


Link to post
Share on other sites

 

 

теперь можно не спеша разобраться теперь с таким вариантом как вы говорите

 

Ну ведь есть же уже готовый инструмент. Radius. Раскатайте на виртуалке, оттестируйте и переводите пользователей. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×