Jump to content

Пулл IP-адресов ПриватБанка для настройки АПИ (Privat24).


Recommended Posts

  • Replies 56
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Привет всем. Настраиваю возможность пополнения счета абонентами из Личного кабинета с помощью АПИ приват24. Включил, работает. Но проблема вот в чем:   1. Абоненты без интернета не могут попасть в

вот так лучше?)) поменял цвет

Почерпнул идею и список хостов отсюда, и решил здесь и поделиться. Скрипт для микротика: {     :local listname "hosts_permit";     :local newip;     :local ips;     :local globips;     :local doloop

Posted Images

Проблема всех скриптов - отсутствие диагностики. Стоит по какой-либо причине отвалиться ресолверу - до следующего запуска скрипта фишка не работает.

 

И чисто системно. Второй файл с IP стоит держать для того, что бы при очередном запуске скрипта новые полученные IP сравнивать с предыдущим списком, и обновлять фаервол только в случае его изменения.

 

Ну и чисто алгоритмический ход с ipset. Лучше создавать новую цепочку, потом свопить ее с рабочей, и удалять старую. Так-называемое "неисчезающее обновление).

Link to post
Share on other sites

Проблема всех скриптов - отсутствие диагностики. Стоит по какой-либо причине отвалиться ресолверу - до следующего запуска скрипта фишка не работает.

 

И чисто системно. Второй файл с IP стоит держать для того, что бы при очередном запуске скрипта новые полученные IP сравнивать с предыдущим списком, и обновлять фаервол только в случае его изменения.

 

Ну и чисто алгоритмический ход с ipset. Лучше создавать новую цепочку, потом свопить ее с рабочей, и удалять старую. Так-называемое "неисчезающее обновление).

 

Так помогите человеку. Понятно что мыслей и умных слов много. А по делу как обычно "0".  :huh:

Link to post
Share on other sites

 

Проблема всех скриптов - отсутствие диагностики. Стоит по какой-либо причине отвалиться ресолверу - до следующего запуска скрипта фишка не работает.

 

И чисто системно. Второй файл с IP стоит держать для того, что бы при очередном запуске скрипта новые полученные IP сравнивать с предыдущим списком, и обновлять фаервол только в случае его изменения.

 

Ну и чисто алгоритмический ход с ipset. Лучше создавать новую цепочку, потом свопить ее с рабочей, и удалять старую. Так-называемое "неисчезающее обновление).

 

Так помогите человеку. Понятно что мыслей и умных слов много. А по делу как обычно "0".  :huh:

 

 

Помочь с чем? Подсказать о существовании команды cmp, или опции swap у ipset? Или в чем помочь?

Link to post
Share on other sites

Подозреваю, что под помощью понимается показать команды. Не проблема.

 

1. Проверка изменения списка.

....
/usr/local/bin/dig +short -f файл_1 | grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' | sort > /path.to/iplist_new.dat

# Compare lists
if cmp -s /path.to/iplist_new.dat /path.to/iplist.dat ; then
  # nothing new
  rm /path.to/iplist_new.dat
  exit 0
fi

# different - process
mv /path.to/iplist_new.dat /path.to/iplist.dat
cat /path.to/iplist.dat | xargs -L1 $ADD
....
Link to post
Share on other sites

По поводу свапа можно написать так:

....
ipset create liqpaynew

[..... add to liqpaynew set ....]

ipset swap liqpaynew liqpay
ipset destroy liqpaynew
....
Edited by vop
Link to post
Share on other sites

Итак,
Имеется 2 файла: /etc/PRIVATBANK_hosts и /etc/PRIVATBANK_ips (что в файлах - итак понятно: на пару постов выше список хостов, и потом список IP'шек, которые получатся в результате отработки скрипта.
 
Фрагмент конфига pf.conf :

#Tables 
table <PRIVATBANK_ips> persist file "/etc/PRIVATBANK_ips"

скрипт, который в crontab будет вертеться каждые 30 минут, назовем его hoststoips :

#!/bin/sh
#
#pfctl -t <PRIVATBANK_ips> -T flush        
#очищаем табличку <PRIVATBANK_ips>, но в моем варианте это не нужно, 
#так как скрипт который находится ниже просто заменяет содержимое 
#файла /etc/PRIVATBANK_ips новыми IP'шками, 
#которые скрипт получает путем преобразования доменов из файла /etc/PRIVATBANK_hosts
dig +short -f /etc/PRIVATBANK_hosts | grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' > /etc/PRIVATBANK_ips 

Осталось только добавить правила в pf.conf, которые разрешат подсети 10.0.0.0\20 (предположим, что это должники) ходить на адреса из таблицы <PRIVATBANK_ips>.
Правильно все сделал?
Помогите, пожалуйста, правильно эти правила написать!
Уже кучу вариаций перепробовал, с правилами что-то не так, не пускает на IP из таблички.
Заранее благодарю за помощь!

Edited by Archy_k
Link to post
Share on other sites
  • 3 weeks later...

Дело ясное, что дело тёмное!!!

В итоге скажите мне, господа провайдеры и операторы, хоть кто-нибудь...

у Вас получилось это настроить вот чтоб система оплаты через Прива24 работала для должников путем открывания доступа на IP приватбанка???

(костыли, типа включения интернета должнику на 15 минут, при нажатии на кнопку пополнить -> Приват24 - не интересуют)

################################################################################################################

Хоть у кого-то это работает, путем обновления IP скриптом в кроне каждые сколько-то минут и открыт доступ на таблицу этих адресов?

Link to post
Share on other sites
  • 1 month later...

Почерпнул идею и список хостов отсюда, и решил здесь и поделиться. Скрипт для микротика:

{
    :local listname "hosts_permit";
    :local newip;
    :local ips;
    :local globips;
    :local doloop true;

    :local thehosts {"www.liqpay.com";
        "liqpay.com";
        "static.liqpay.com";
        "ecommerce.liqpay.com";
        "fonts.googleapis.com";
        "ajax.googleapis.com";
        "themes.googleusercontent.com";
        "www.google-analytics.com";
        "google-analytics.com";
        "ssl.google-analytics.com";
        "widget.siteheart.com";
        "client.siteheart.com";
        "clients.siteheart.com";
        "static.siteheart.com";
        "seal.globessl.com";
        "globessl.com";
        "privat24.ua";
        "www.privat24.ua";
        "privat24.privatbank.ua";
        "privatbank.ua";
        "qrapi.privatbank.ua";
        "api.privatbank.ua";
        "stats.g.doubleclick.net";
        "www.googleadservices.com";
        "fonts.gstatic.com";
        "login.privatbank.ua"};

    /ip firewall address-list remove [find list=$listname];
    :foreach hostname in=$thehosts do={
        :set ips;
        :set doloop true;
        :do {
            :set newip [:resolve $hostname];
            :if ( ("|" . [:find $ips $newip -1] . "|") = "||" ) do={
                :set ips ($ips, $newip);
            } else={
                :set doloop false;
            }
        } while=( $doloop );
        :foreach ti in=$ips do={
            :if ( ("|" . [:find $globips $ti -1] . "|") = "||" ) do={
                /ip firewall address-list add address=$ti list=$listname comment=$hostname;
            } else={
                /ip firewall address-list set [find address=$ti list=$listname] comment=( [/ip firewall address-list get [find address=$ti list=$listname] comment] . ", " . $hostname);
            }
            :set globips ($globips, $ti);
        }
    }
}
Edited by amokkatlocal
  • Thanks 1
Link to post
Share on other sites

Осторожно со скриптом, он у меня все адреслисты почистил.

Переменная в строке

/ip firewall address-list remove [find list=$list];

не резолвится.

ROS 6.30.2

Link to post
Share on other sites

Осторожно со скриптом, он у меня все адреслисты почистил.

Переменная в строке

/ip firewall address-list remove [find list=$list];

не резолвится.

ROS 6.30.2

Действительно фигня какая-то на 6 версии с "$list". Заменил в оригинальном посте имя переменной на "listname".

Link to post
Share on other sites
  • 2 months later...
Linux

# iptables -A FORWARD -m set --match-set liqpay dst -j ACCEPT
# iptables -A FORWARD -m set --match-set liqpay src -j ACCEPT
# ipset create liqpay hash:ip timeout 600


# cat /usr/net-conf/liqpay
#!/bin/bash

while IFS= read -r line; do

dig +short $line > /var/run/liqpay_tmp_ip

while IFS= read -r line2; do
ipset add liqpay -exist [$line2]
done < /var/run/liqpay_tmp_ip

done < /usr/net-conf/liqpay_list

exit 0



# cat /usr/net-conf/liqpay_list
api.privatbank.ua
login.privatbank.ua
privat24.privatbank.ua
www.privat24.ua
privat24.ua
liqpay.com
www.liqpay.com
static.liqpay.com
ecommerce.liqpay.com
fonts.googleapis.com
ajax.googleapis.com
themes.googleusercontent.com
www.google-analytics.com
google-analytics.com
ssl.google-analytics.com
widget.siteheart.com
static.siteheart.com
www.googleadservices.com
stats.g.doubleclick.net
googleads.g.doubleclick.net
qrapi.privatbank.ua
coub.com
js.honeybadger.io
coubsecureassets-a.akamaihd.net
ces.coub.com
coubsecure-a.akamaihd.net
socauth.privatbank.ua
www.googletagmanager.com
st.privatbank.ua
services.privatbank.ua
mypayments.privatbank.ua
client.siteheart.com
fonts.gstatic.com
esapi.siteheart.com
crm.privatbank.ua


# cat /etc/crontab
*/5 * * * * root /usr/net-conf/liqpay

Edited by fet4
Link to post
Share on other sites
  • 3 months later...

Можно еще и так:

 

#!/bin/sh


p=`cat /root/script/paysystem.txt`


/usr/local/bin/dig +short $p > /root/script/ipaysys.txt



  for i in `cat /root/script/ipaysys.txt`;
       do /sbin/ipfw table 24 add $i;
       done

paysystem.txt

api.privatbank.ua
login.privatbank.ua
privat24.privatbank.ua
www.privat24.ua
privat24.ua
liqpay.com
www.liqpay.com
static.liqpay.com
ecommerce.liqpay.com
fonts.googleapis.com
ajax.googleapis.com
themes.googleusercontent.com
www.google-analytics.com
google-analytics.com
ssl.google-analytics.com
widget.siteheart.com
static.siteheart.com
www.googleadservices.com
stats.g.doubleclick.net
googleads.g.doubleclick.net
qrapi.privatbank.ua
coub.com
js.honeybadger.io
coubsecureassets-a.akamaihd.net
ces.coub.com
coubsecure-a.akamaihd.net
socauth.privatbank.ua
www.googletagmanager.com
st.privatbank.ua
services.privatbank.ua
mypayments.privatbank.ua
client.siteheart.com
fonts.gstatic.com
esapi.siteheart.com
crm.privatbank.ua

Cron

*/5 * * * * root /root/script/ipaysys.sh

Ну и там

 ipfw add 24 allow ip from any to "table(24)"
 ipfw add 24 allow ip from "table(24)" to any 
Edited by loki
Link to post
Share on other sites

#!/bin/csh

# Automated resolver for domains
# PrivatBank payment service
# Allow for denied users


set DOMAINS = "secure.privatbank.ua st.privatbank.ua ecommerce.liqpay.com static.liqpay.com www.secure.privatbank.ua www.st.privatbank.ua www.ecommerce.liqpay.com www.static.liqpay.com fonts.googleapis.com www.fonts.googleapis.com"
set DNS = "@8.8.8.8"
set TABLE = 10

foreach domain ($DOMAINS)
dig -4 -t A +short $DNS $domain | grep '^[0-9]' | xargs -I {} -L 1 ipfw " -q table $TABLE add {}/32"
end

ipfw -q table $TABLE delete 0.0.0.0/0
Link to post
Share on other sites
  • 2 weeks later...

Добрий день, ніхто не пересікався з такою проблемою, коли в клієнта все заблоковано ІПТЕЙБЕЛСОМ в пулі без грошей, але відкрито всі дані домени 

 

 

ww.liqpay.com
liqpay
.com
static.liqpay.com
ecommerce
.liqpay.com
fonts
.googleapis.com
ajax
.googleapis.com
themes
.googleusercontent.com
www
.google-analytics.com
google
-analytics.com
ssl
.google-analytics.com
widget
.siteheart.com
client
.siteheart.com
clients
.siteheart.com
static.siteheart.com
seal
.globessl.com
globessl
.com
privat24
.ua
www
.privat24.ua
privat24
.privatbank.ua
privatbank
.ua
qrapi
.privatbank.ua
www
.privat24.ua
api
.privatbank.ua
stats
.g.doubleclick.net
www
.googleadservices.com
fonts
.gstatic.com

то приват 24 відкривається а лікпей біла сторінка.

НАС ДЕБІАН, конф ІПТЕЙБЕЛСА прикріпляю.

https://www.dropbox.com/sh/xrye1geg87yonam/AABUxUfFFs-TI4oR1fgS1Dm7a?dl=0

І в чому вся загадка що після ребуду наса ЛІКПЕЙ працює 2-3 дня потім біла сторінка.

По дебагу вискакує ajax.googleapis.com але він прописаний в ІПТЕЙБЕЛСІ.

Link to post
Share on other sites
  • 2 months later...

для линукса

 

#!/bin/bash


DIG=`which dig`
IPSET=`which ipset`
IPSETNAME="paysystem"


SRCDATA=`cat /opt/firewall/paysystem.txt`
RESULT="/opt/firewall/ipaysys.txt"

$DIG +short $SRCDATA > $RESULT
$IPSET -N $IPSETNAME iphash -exist
for i in `cat $RESULT`;
do
$IPSET add $IPSETNAME $i -exist 2>/dev/null;
done

результат попадает в ipset paysystem

 

на выходе 

http://joxi.ru/E2pBeovfByed5r?d=1

Edited by ldemiurg
Link to post
Share on other sites
  • 6 months later...

Ага, спасибо!  ^_^

Непонятно зачем coub.com, наверное что бы хомяки не скучали при отрицательном  :D

api.privatbank.ua
login.privatbank.ua
privat24.privatbank.ua
www.privat24.ua
privat24.ua
liqpay.com
www.liqpay.com
static.liqpay.com
ecommerce.liqpay.com
fonts.googleapis.com
ajax.googleapis.com
my-payments-p24.privatbank.ua
themes.googleusercontent.com
www.google-analytics.com
google-analytics.com
ssl.google-analytics.com
widget.siteheart.com
static.siteheart.com
www.googleadservices.com
stats.g.doubleclick.net
googleads.g.doubleclick.net
qrapi.privatbank.ua
coub.com
js.honeybadger.io
coubsecureassets-a.akamaihd.net
ces.coub.com
coubsecure-a.akamaihd.net
socauth.privatbank.ua
www.googletagmanager.com
st.privatbank.ua
services.privatbank.ua
mypayments.privatbank.ua
client.siteheart.com
fonts.gstatic.com
esapi.siteheart.com
crm.privatbank.ua
Edited by -VaSaK-
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.

  • Similar Content

    • By U.O.S.
      Є блоки в продажу. 
      Також можемо запронувати Вам сдати Ваші айпі в оренду з розрахунком в Україні.
       
    • By ADimka
      Здам в оренду  IP v4 (PA, /24 - /21).
      Безготівка з ПДВ.
      /24 - 4000 гривень на місяць,
      /22 - 15000 гривень на місяць.
    • By TRB
      Купимо IP-адреси /23 - /24 PA або PI.
      Деталі в осибистих повідомленнях. 
    • By alexeya
      Сдам в аренду 2 блока /24. Цена за один блок 750$ в год.
    • By VAndrey
      Доброго дня!
      Порадьте альтернативу -  порядного LIRa. І чи варто міняти?
      Багато років обслуговувався в LIRa НетАссіст. Ніколи нічого поганого не можу за них сказати. Тільки респект. Завжди все якісно, швидко і порядно. Тільки найкращі відгуки. Всім їх радив!
      Але окрім якісного обслуговування є ще й ціна.
      Вчора прийшов лист від них про підняття цін вдвіччі!?!? Ціна при цьому ж звісно в євро і разом із курсом також зростала щороку.
      Обгрунтування, бо за багато років зросла ціна на електроненергію,  зарплата  (так і курс евро зріс,  відповідно і відрахування LIRу).
      Ну і ще зросли відрахування в RIPE і та й комісія (15%) за перерахування коштів RIPE, бо типу тепер потрібно перераховувати виключно з українських рахунків. Тут можна десь з чимось погодитися напевно. Але знову ж таки підняття вдвіччі в Євро,  то якось,  як на мене занадто.
      Розумію, що все дорожчає. Спробував переговорити,  бо менш стрімке підняття,  але безрезультатно.
       
      Хотів почути думки колег. Варто міняти LIRa? Якщо так,  то на кого?

×
×
  • Create New...