Перейти до

Перенаправление должников в кабинет


Рекомендованные сообщения

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

Давайте будем считать что это делается элементарно и раз и навсегда закроем этот вопрос. Хорошо? :)

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

Linux version of redirect debtors :)

Начнем.

 

1. Делаем саму заглушку. Создаем виртуалхост.

Listen 85
<VirtualHost 172.16.0.1:85>
DocumentRoot /var/www/debtors
ServerName debtors.isp
ServerAlias debtors.isp
DocumentRoot "/var/www/debtors"
<Directory  /var/www/debtors>
allow from all
Options -Indexes
</Directory>
CustomLog "/var/log/apache2/debtors.isp.log" combined
</VirtualHost> 

2. Создаем собственно директорию /var/www/debtors и кидаем туда 2 файла

index.php

<?php
        function rcms_redirect($url, $header = false) {
                if($header){
                    @header('Location: ' . $url);
                           } else {
                                  echo '<script language="javascript">document.location.href="' . $url . '";</script>';
                                  }
                           }
                  $userip=$_SERVER['REMOTE_ADDR'];
               if (strpos($userip,'172.32.')===false)  {
          rcms_redirect("http://172.16.0.1/billing/userstats/");
                   } else {
                       rcms_redirect("http://172.32.0.1/");
                       }
?>

.htaccess

ErrorDocument 404 /index.php

3.Фаер. Рисуем в конце /etc/firewall.sh следующую радость: (Причем понадеемся, что в системе установлены пакеты iptables и ipset).

#Debtors forwarding
/sbin/iptables -I FORWARD -o eth1 -p udp --dport 53 -d 8.8.8.8  -j ACCEPT #разрешаем ходить на DNS
#создаем таблички в ipset
/usr/local/sbin/ipset -F DEBTORS 
/usr/local/sbin/ipset -X DEBTORS 
/usr/local/sbin/ipset -N DEBTORS ipmap --network 172.16.0.0/24 #Тут возможно у Вас своя подсеть
/sbin/iptables -t nat -I PREROUTING -m set --set DEBTORS src -p tcp -d ! 172.16.0.0/24 --dport 80 -j DNAT --to-destination 172.16.0.1:85 #у меня виртуалхост висит на 85 порту 

4. Надо загнать должников в эти правила. В этом вам должен помочь, вот такой вот скриптик /etc/stargazer/debtors.php в автозагрузке:

#!/usr/local/bin/php
<?php
 
$config=parse_ini_file(dirname(__FILE__)."/config");
$link = mysql_connect($config['host'], $config['username'], $config['password']);
mysql_select_db($config['database']);
$data_q='SELECT `ip` FROM `users` WHERE `Cash`< -`Credit`';
$data=mysql_query($data_q);
           while ($row = mysql_fetch_array($data, MYSQL_ASSOC)) {
                shell_exec("/usr/local/sbin/ipset -A DEBTORS ".$row['ip']);
           }
 
?>

5. Ну собственно и все. Должники при открытии любой страницы попадают в личный кабинет. Но по идее они когда-нибудь оплотят =) и им нужно дать инет. Чтобы выкинуть их из таблички должников есть множество способов. Один из них в OnConnect прописать :

/usr/local/sbin/ipset -D DEBTORS $IP

или мониторить файл OnChange и в случае положительного баланса делать это там или .... в общем уже на Ваш суд.

 

ЗЫ. Напоследок. В этих наших Линуксах нужно провериьт пути к бинарникам iptables и ipset (так как от дистра к дистру они могут отличаться) ну и соответственно оратить на доменные имена и ваши подсети - ибо как они тоже могут быть разными =)

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

 

3.Фаер. Рисуем в конце /etc/firewall.sh следующую радость: (Причем понадеемся, что в системе установлены пакеты iptables и ipset).
#Debtors forwarding
/sbin/iptables -I FORWARD -o eth1 -p udp --dport 53 -d 8.8.8.8  -j ACCEPT #разрешаем ходить на DNS
#создаем таблички в ipset
/usr/local/sbin/ipset -F DEBTORS 
/usr/local/sbin/ipset -X DEBTORS 
/usr/local/sbin/ipset -N DEBTORS ipmap --network 172.16.0.0/24 #Тут возможно у Вас своя подсеть
/sbin/iptables -t nat -I PREROUTING -m set --set DEBTORS src -p tcp -d ! 172.16.0.0/24 --dport 80 -j DNAT --to-destination 172.16.0.1:85 #у меня виртуалхост висит на 85 порту 

у меня сделано так:

и соответственно п.4 и п.5 - неактуальные

.....
/sbin/iptables -t filter -A FORWARD -m set --match-set internet src,dst -j ACCEPT
/sbin/iptables -t filter -A FORWARD -m set --match-set internet dst,src -j ACCEPT
.....
# для неподключенных - на 10.1.1.1:81
/sbin/iptables -t nat -N park
/sbin/iptables -t nat -A park -m set --match-set internet src -j RETURN
/sbin/iptables -t nat -A park -m set --match-set internet_mac_10_1 src -j RETURN
/sbin/iptables -t nat -A park -d $INT_NET -j RETURN
/sbin/iptables -t nat -A park -d $EXT_IP -j RETURN
/sbin/iptables -t nat -A park -p TCP --dport 80 -j DNAT --to 10.1.1.1:81
/sbin/iptables -t nat -A park -p TCP --dport 443 -j DNAT --to 10.1.1.1:81
/sbin/iptables -t nat -A PREROUTING -s $INT_NET -j park
Ссылка на сообщение
Поделиться на других сайтах
  • 7 months later...

Всем привет я как нубина думаю имею право спросить, а на Ubuntu-server 12.04 LTS всё также делаетса как описано здесь http://wiki.ubilling.net.ua/doku.php?id=debtredir

 

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

 /usr/local/www/apache22/data/index.php  

 

может мне ево просто нужно создать и заполнить ?

 

отпишыте плиз на понятном человеческом 

 

 

я использовал мс для поиска етого файла и нашол кучу index.php но штоб в папке data к сожелению такого не нашлось 

 

 

Ссылка на сообщение
Поделиться на других сайтах
 /usr/local/www/apache22/data/index.php  

 

 

этот файлик находится в рабочей директории вэб-сервера.

для debian например это 

 

/var/www/

 

ето описание для фри?

 

 

да это описание для фри. поищите в ветке   там рассматривался этот вопрос.

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

Спс Felixio, меня просто удивляет ход мысли разработчиков типа чо вы все тупите ето нуна делать так и так вот вы все такии тупые а мы умные и т.д у меня вопрос почему ето не встроено ??? даже в самых древнейшых билингах ето могли встроить а здесь бери и допишы )))

я канешн понимаю што бесплатно и т.д но ето же просто функцыя как к примеру днцп сервер ето должно быть но нету (((

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

Спс Felixio, меня просто удивляет ход мысли разработчиков типа чо вы все тупите ето нуна делать так и так вот вы все такии тупые а мы умные и т.д у меня вопрос почему ето не встроено ??? даже в самых древнейшых билингах ето могли встроить а здесь бери и допишы )))

я канешн понимаю што бесплатно и т.д но ето же просто функцыя как к примеру днцп сервер ето должно быть но нету (((

Извините, но наш продукт изначально не рассчитан на олигофренов, неспособных осилить базовую орфографию.

 

 

вот вы все такии тупые а мы умные и т.д

это хорошо, что вы адекватно осознаете уровень своего интеллекта.

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

Спс Felixio, меня просто удивляет ход мысли разработчиков типа чо вы все тупите ето нуна делать так и так вот вы все такии тупые а мы умные и т.д у меня вопрос почему ето не встроено ??? даже в самых древнейшых билингах ето могли встроить а здесь бери и допишы )))

я канешн понимаю што бесплатно и т.д но ето же просто функцыя как к примеру днцп сервер ето должно быть но нету (((

 

Fatal Error

 

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

 

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

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

ой зара ногами забьють  :wacko:  але запитаю.

 

є BSD NAS rscriptd 172.16.1.1/16

 

 

 

firewall.conf 



${FwCMD} add 6 fwd 127.0.0.1,80 ip from table\(47\) to not me dst-port 80

index.php

<script type="text/javascript">
<!--
window.location = "http://172.16.0.1/billing/userstats/"
//-->
</script>

перенаправлення  відбуваэться але

172.16.0.1 != 172.16.1.1 

і перенаправлення відбувається ще раз .... зациклились.

${FwCMD} add 6 fwd 127.0.0.1,80 ip from table\(47\) to not me, 172.16.0.1 dst-port 80

так ніфіга не їде(

 

які ще є варіянти?

Ссылка на сообщение
Поделиться на других сайтах
${FwCMD} add 6 fwd 127.0.0.1,80 ip from table\(47\) to not me dst-port 80

Ткну носом. to not me, або зробіть табличку з адресами, або вкажіть явно, назразок

to not me and not my_billing_ip

або to not table\(111\)

 

Але у нот-енд не впевнений, що моя логіка тут правильна.

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

 

to not me and not my_billing_ip

кома між me і 172.16.0.1  малаб бути  отим and

 

я би спробував винести not 127.0.0.1, 172.16.1.1, 172.16.1.1 в окрему табличку замість not me

 

(17) - адреса 80-й порт которых будет доступен всегда по-умолчанию (зарезервировано)

 

ну доступ на білінг і на вебсервер наса потрібен завжди, думаю мона юзнути 17 табличку

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

Тут навіть без варіантів.

Припустим захтів пускати бідного юзера у банк, додав сайт банку в 17 табличку, а тут редірект замість банку :blink: .

 

Усе добре завертає через табличку, спасибі!

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

До речі, хтось реалізовував доступ до Приват24 при заблокованому доступі до Інтернет?

Ресурси привата додав у дозволені, але враховуючи що велика частина п24 крутиться в хмарі google - всі виловити не зміг.

Як результат не відбувається авторизація.

Буду вдячний за повний список.

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

Це добре, добре що є мануал: http://wiki.ubilling.net.ua/doku.php?id=debtredir , але там нічого не сказано про редірект https (я вже піднімав цю тему http://local.com.ua/forum/topic/58455-%D1%80%D0%B5%D0%B4%D1%96%D1%80%D0%B5%D0%BA%D1%82-%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87%D1%96%D0%B2-https/)

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
але там нічого не сказано про редірект https

Тому, що забудьте.

 

Він для того і є HTTPS (secure)  аби контролювати валідність сертифікату та унеможливити фішинг. Всі ці завороти тим і займаються, що підміняють оригінальну сторінку лівою.

Можна звісно погратись і нагородити упороту проксю, котра буде підміняти сертифікати на льоту... але маразм це, котрий не вартий тих ресурсозатрат.

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

я то розумію для чого HTTPS, але як це пояснити юзверу чо в нього нічого не відкривається, який (на гугл каже - гугля, а на скайп - скупе  :) ), - йому не розкажеш шоб не пробував свої контактіки відкривати через пошук в гуглі, а на пряму в адресній строці писав вк.сом (більшість навіть не знає де адресна строка) і тоді в нього відкриється сторінка де напише шо в нього нема грошей, і буде ссилка в кабінет де може взяти собі в борг.

 

Та менше з тим я собі замутив і в мене працює редірект. 

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

 

Та менше з тим я собі замутив і в мене працює редірект.

Ну це поки юзерів небагато і насів менше декількох стійок ;)

 

Потім приходить розуміння, що юзерам продається інтернет а не фігурні редіректи, і воно того не вартує.

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

До речі, хтось реалізовував доступ до Приват24 при заблокованому доступі до Інтернет?

Ресурси привата додав у дозволені, але враховуючи що велика частина п24 крутиться в хмарі google - всі виловити не зміг.

Як результат не відбувається авторизація.

Буду вдячний за повний список.

я забиваю разрешенную таблицу с помощью скрипта и на вот эти адреса:

cap.attempts.securecode.com

24money.com.ua

24nonstop.com.ua

static.liqpay.com

fonts.googleapis.com

ajax.googleapis.com

themes.googleusercontent.com

www.liqpay.com

liqpay.com

ecommerce.liqpay.com

www.google-analytics.com

google-analytics.com

ssl.google-analytics.com

widget.siteheart.com

static.siteheart.com

 

скрипт : ipfw table 22 flush

dig +short -f /home/pay_host | grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' | xargs -L1 ipfw table 22 add

была тема тут где-то.

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від FantoM_EscapE
      Хочу перенести свій білінг NODENY із фізичного сервера на віртуальний. Шукаю адміна який зможе допомогти у цьому питанні, так як нашого адміна банально призвали до війська. Вся схема на даний момент робоча, маю доступи до всього. Потрібно проінсталити на новішу версію FREEBSD, бо на моїй 10 річній вже не працюють нові SSL сертифікати. Кого зацікавила дана пропозиція - прошу у приватні повідомлення. обсудимо ціну і строки. або пишіть на будь-який месенджер 0677792091
×
×
  • Створити нове...