LINUX.ORG.RU

2
Всего сообщений: 29

RPC and security (MitM)

Как обеспечивается защита от MitM для RPC-протоколов?

 , ,

Mirage1_ ()

Вопрос по libtirpc, libnsl

Так и не смог найти толкового объяснения, для чего нужен RPC. И что за NIS...
Нужны ли мне в моей сборке CRUX библиотеки libtirpc и libnsl? Что без них не будет работать?

Пока в моей сборке от них зависят только perl, python и lsof.

Пробовал собрать perl без libnsl, подправив configure, но она всё-равно прилинковалась.(не тот configure правил, ща вроде должно собраться без них) Научите патчить, чтобы собирать с возможностью отключать линковку выборочно.

UPDATE: perl собрался без них. Т.е. они мне не нужны? Они типо по сути нужны только для распределённых по сети вычислений, правильно я понимаю? Или для чего ещё они нужны?

 ,

teod0r ()

ищется протокол удалённого вызова процедур

Клиент - C++, Сервер - программа на языке со сборкой мусора. Вызов только локальный. Нужно уметь описывать интерфейсы, хранить ссылки на удалённые объекты, генерировать обёртки и всё вот это вот.

Основное требование - это простота реализации и независимость от библиотек, т.к. придётся портировать на новый язык, в котором ничего нет (даже json).

Поэтому ищется какая-то компактная многоязычная библиотечка.

Второе требование - пермиссивная лицензия.

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

Посмотрел:

  • SOAP - на базе XML = тормоза.
  • Protobuf - формат можно рассмотреть, хотя у меня нет цели слишком сжимать данные, а они там похоже на это запарились.
  • grpc - оказывается, там какое-то http/2, заточенное под оптимизацию веба. Мне это абсолютно не нужно
  • erpc - только Си
  • CORBA - вроде громоздкая?

Фавориты:

 

den73 ()

python - распределенные вычисления

Подскажите, это уже где-то реализовано:

Задача - Конвеерная распределенная обработка данных. в данный момент - реализация на python (воркер) + tarantool queue (очереди - хранение параметров шагов) т.е. грубо говоря скачай видео (аудио, еще что-то), обработай, посчитай показатели, залей куда-то результаты. вся обработка предполагает использование разных ресурсов и разумно делать разные типы заданий на разных железяках так-же нужно горизонтально масштабироваться так-же хотелось бы имлементировать логику конвеера в одном месте.

т.е. что-то вроде
список_урлов = получить_список() # вызывается где угодно
цикл по список_урлов:
список_файлов_скачаных += скачай_файл() # вызывается на машинах с сетью и дисками
склейка =склей_файлы(список_файлов_скачаных ) # вызывается на машинах с толстым процом
расчитай_показатели(склейка ) # вызывается на машинах с gpu

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

 , , ,

pumpurumer ()

Samba4 не входит в домен с Windows Server2012R2

Здравствуйте! Есть контроллер домена на Windows Server 2012R2. Хочу поднять еще один контроллер на Ubuntu с Samba4 на борту. Делаю все согласно мануалу https://wiki.samba.org/index.php/Joining_a_Samba_D... Но при попытке зарегистрироваться как DC

samba-tool domain join my.domain DC -U"MYDOMAIN\admin" --dns-backend=BIND9_DLZ 
получаю ошибку
Failed to commit objects: WERR_GEN_FAILURE
На контроллере домена нашел ошибку
"8524 The DSA operation is unable to proceed because of a DNS lookup failure."
Вылечил через
samba-tool dns add MYPDC my.domain samba-dc A 10.1.1.15 -U"MYDOMAIN\admin"
Теперь ошибка
"1722 The RPC server is unavailable."
Не понимаю, как эту ошибку побороть. Может быть какие-то пакеты доставить? Может на контроллере домена нужны дополнительные манипуляции? Нужно ли устанавливать дополнительно LDAP-сервер?

Дополнительная информация

Устанавливал следующие пакеты

apt update && apt full-upgrade -y && apt install -y samba winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user krb5-kdc bind9 acl dnsutils ntp ntpdate
Версия Ubuntu - Ubuntu 20.04.1 LTS

Версия Samba - Version 4.11.6-Ubuntu

Версия Bind - BIND 9.16.1-Ubuntu (Stable Release)

Upd. Лог log.samba

[2020/08/31 12:14:10.003694,  0] ../../source4/smbd/server.c:622(binary_smbd_main)
  samba version 4.11.6-Ubuntu started.
  Copyright Andrew Tridgell and the Samba Team 1992-2019
[2020/08/31 12:14:10.074587,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: dsdb_schema_from_db() failed: 32:No such object: dsdb_schema: failed to search attributeSchema and classSchema objects: No such Base DN: CN=Schema,CN=Configuration,DC=my,DC=domain
[2020/08/31 12:14:10.074763,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: dsdb_get_schema: refresh_fn() failed
[2020/08/31 12:14:10.074817,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: schema_load_init: dsdb_get_schema failed
  ldb: module schema_load initialization failed : Operations error(ldb_wrap_debug)
[2020/08/31 12:14:10.074903,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: module dsdb_notification initialization failed : Operations error
[2020/08/31 12:14:10.074945,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: module rootdse initialization failed : Operations error
[2020/08/31 12:14:10.074996,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: module samba_dsdb initialization failed : Operations error
[2020/08/31 12:14:10.075040,  0] ../../lib/ldb-samba/ldb_wrap.c:79(ldb_wrap_debug)
  ldb: Unable to load modules for /var/lib/samba/private/sam.ldb: schema_load_init: dsdb_get_schema failed
[2020/08/31 12:14:10.075370,  0] ../../lib/util/become_daemon.c:121(exit_daemon)
  exit_daemon: daemon failed to start: Samba failed to prime database, error code 22

UPD2: Не может применится следующая запись

Failed to apply records: Failed to locally apply remote add of CN=owa (Default Web Site),CN=HTTP,CN=Protocols,CN=DCSRV,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=my,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=my,dc=domain: attribute 'msExchOWATranscodingFileTypes': value 'S:8:       .:<GUID=45f73348-c0d2-456b-8efc-a3d3d6e7f6bc>;CN=owa (Default Web Site),CN=HTTP,CN=Protocols,CN=DCSRV,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=my,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=my,dc=domain' on 'CN=owa (Default Web Site),CN=HTTP,CN=Protocols,CN=DCSRV,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=my,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=my,dc=domain' provided more than once in ADD object: Operations error

 , ,

veryoldadmin ()

Сокрытие исходников - подскажите RPC-решение для пайтоновской программы

Есть функция на python, исходники которой необходимо закрыть от внешнего пользователя. Рассматриваем вариант решения с web-сервером, предоставляющим api типа «объект на входе-объект на выходе». Выполняться вызов при этом может до 10 минут.

Вопрос - подскажите решение для огранизации такого вот «сервиса»? Смотрим на https://grpc.io/

UPD: вопрос, надо или не надо закрывать исходники - решается не мной и, к сожалению, обсуждению не подлежит. Вопрос к техническим специалистам, которые в состоянии работать в режиме «дано менять нельзя» (полезный, кстати, в реальной жизни режим).

 , , , ,

omegatype ()

Проверить баланс любого кошелька в bitcoind?

Собственно как? юзаю https://github.com/jgarzik/python-bitcoinrpc для общения через rpc со своей нодой, каким образом я могу чекать другие адреса с балансом не созданные в моей кошельке bitcoind?

 , ,

noname_user ()

Современный быстрый RPC

Хочу написать программу. Идеологически хочу её сделать как пачку микросервисов, но не хочу привязываться к конкретному языку программирования.

Поэтому нужен протокол для общения между микросервисами. Нашёл https://github.com/hprose : высокая скорость, много поддерживаемых языков. Но хочу уточнить, может есть уже что-то более популярное.

 , ,

monk ()

Авторизация RPC

Пишу прогу, которая общается с другой по RPC, собственно вопрос - Как обезопасить такое от постановки, или только шифрование? TLS??? Просто с сертификатами много гемора.

 ,

AUX ()

Легкий асинхронный встраиваемый в приложение HTTP сервер

Нужно обернуть библиотеку в HTTP RPC сервис. Что сейчас модно и в проде без проблем работает? Спасибо.

 , , ,

Oxdeadbeef ()

Коммуникации между микросервисами

Добрый день! Хочется начать новый домашний, но довольно таки масштабный проект. Приглянулась идея микросервисов - модно, все в контейнерах, удобно, но есть вопрос о best practices микросервисного взаимодействия. Делать каждый запрос поверх http - да ну... Redis неудобно. Есть ли уже готовые имплементации «очередей с ожиданием ответа», RPC основанного на очередях? Делается все на java.

 , ,

matroskin ()

Разработан новый проект, нужны идеи применения и единомышленники.

Привет ребята, уже как 2 года я разрабатываю свой проект, который позволяет осуществлять связь между компьютерами не важно где они находятся, в пределах одной сети или же на разных континентах. По своей сути это система межПРОЦЕССного взаимодействия(IPC - RPC), при этом процессы могут находится как на локальном компьютере так и на разных компьютеров. Связь между компьютерами предоставляется как путем создания прямого туннеля между компьютерами без использования сервера(сервер нужен только на момент создания туннеля), так и через сервер. Моя библиотека работает протестирована, есть версия для винды и для линуха, проект полность open source. Но я до сих пор не могу придумать как применить эту библиотеку. Думал различные варианты, но либо получалось слишком специализированно, либо глобально и требовались веб разработчики и единомышленники, которые были бы согласны принимать участие в развитии проекта. Я буду очень рад если кто то изъявит заинтересованность, и предоставит идеи для дальнейшего развития со своим участием. Для ознакомления проект находится на github.com вот ссылка: https://github.com/volok-aleksej/twainet

 , , ,

volok-aleksej ()

Выключение windows из linux | Connection failed: NT_STATUS_ACCESS_DENIED

Коллеги, ситуация: хочу с Linux машины выключать Win машины. Нашёл простой способ через RPC:

net rpc SHUTDOWN -C «enter a comment to display at shutdown» -f -I 10.18.10.7 -U login%password

Оно прекрасно работает на машине с Debian, при выполнении данной операции на Centos 6 получаю:

Could not connect to server 10.18.10.7
Connection failed: NT_STATUS_ACCESS_DENIED
Could not connect to server 10.18.10.7
Connection failed: NT_STATUS_ACCESS_DENIED

Iptables исходящие соединения не запрещает, на 10.18.10.7 ничего не менялось.

Selinux отключен.

 , ,

yellowboy ()

Как проводить замеры производительности RPC?

Всем привет.

Вот такое вопрос назрел. Есть библиотечка реализующая RPC и нужно как-то понять на сколько она производительна. Есть какие-то практики и вообще что за это почитать?

Что я делал:

Сначала просто поднял на одной машине точку на локальном сокете (/home/test/rpc.sock, например) и в цикле выполнил несколько тыщ запросов с ожиданием (запросил, подождал, получил ответ, вернул). грубо

for( int i=0; i<test_calls; ++i ) {
    make_call( );
}

замерил время исполнения и поделил на количество. Среднее получилось в районе 35 микросекунд (как понять хорошо это или плохо?).

Потом сказал серверу использовать несколько потоков для обработки запросов и натравил 32 таких же клиента (с локальной же машины, что, видимо, неправильно). и каждый показал среднее в районе 300 микросекунд. Как теперь, опять же, понять хорошо это или плохо?

Еще один тест. Скормил миллион сериализованных уже сообщений в процессор протокола и получил 3.5 (+-) секунды на обработку всех на 1 ядре.

Что еще такого можно придумать?

 , ,

seryoga ()

Почему все критикуют dbus?

Здравствуйте.

Почитал на лоре обсуждения про dbus. И почти в каждом встречаются люди, заявляющие, что протокол и сама технология ужасны

Читаю спеки, ничего жасного не вижу, но вижу очень крутую штуку с RMI, сериализацией, броадкастингом, и интроспекцией

 , ,

makoven ()

Использование Bitcoind RPC сервера

CentOS 7

Bitcoin core сервер (https://bitcoin.org/en/download)

Проблема в том что не получается использовать RPC сервер из php скриптов.

Ошибка при использованиии JSON-RPC PHP library :

Warning: fopen(http://...@localhost:24000/): failed to open stream: Permission denied in /usr/share/nginx/html/jsonRPCClient.php on line 132

Fatal error: Uncaught exception 'Exception' with message 'Unable to connect to http://mylogin:mypasswd@localhost:24000/' in /usr/share/nginx/html/jsonRPCClient.php:140 Stack trace: #0 /usr/share/nginx/html/tbalance.php(14): jsonRPCClient->__call('tbalance', Array) #1 /usr/share/nginx/html/tbalance.php(14): jsonRPCClient->getbalance('mywallet') #2 {main} thrown in /usr/share/nginx/html/jsonRPCClient.php on line 140

При использовании EasyBitcoin-PHP library :

Failed to connect to 127.0.0.1: Permission denied

Содержание конфига bitcoin.conf:

rpcuser=mylogin

rpcpassword=mypasswd

server=1

daemon=1

rpcport=24000

testnet=0

Пробовал вешать на порт 8332, открывал его командой :

sudo iptables -I INPUT -p tcp -m tcp --dport 8332 -j ACCEPT

Не знаю что бы ещё придумать(

 , , ,

Namestnik ()

USB WiFi не определяется как USB WiFi

Есть WiFi USB tp-link 722n

модуль подгружен


lsmod | grep -i ath
ath9k_htc              51655  0
led_class               3922  1 ath9k_htc
ath9k_common           18810  1 ath9k_htc
ath9k_hw              408279  2 ath9k_common,ath9k_htc
ath                    18322  3 ath9k_common,ath9k_htc,ath9k_hw
mac80211              325585  1 ath9k_htc
cfg80211              191150  4 ath,ath9k_common,mac80211,ath9k_htc
[code/]


firmware вкинуто в /lib/firmware


в итоге в ifconfig:
wlp0s26u1u1Link encap:Ethernet  HWaddr C4:6E:1F:24:4F:47
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0  TX bytes:0

а в iwconfig:
wlp0s26u1u1  no wireless extensions.

сеть оно не сканирует - к сети оно не подключается

в чём проблема?

 , , , ,

GGUseR ()

RPC в контексте протокола NETCONF

Разбираюсь с протоколом NETCONF (RFC6241). В стандарте написано, что протокол импользует парадигму RPC (remote procedure calls), однако из описания протокола не очевидно, что клиент запрашивает исполнение процедур/функций на удаленной системе, то есть на сервере, и нет ни слова про механизмы сериализации данных/объектов при передаче по сети (https://en.wikipedia.org/wiki/Open_Network_Computing_Remote_Procedure_Call). По описанию получается, что это XML передаваемый по TCP; также они добавили теги <rpc>, <rpc-reply> и <rpc-error> которые пересылаются как XML, и это они назвали RPC.

Вопрос скорее к тем, кто пересекался с этим или подобными протоколами, и может высказать предположения, где же там RPC?

Спасибо.

 , , ,

cruz7 ()

Transmission Rpc и отсутствие веб-морды

Всем доброго времени суток! Господа, столкнулся с проблемой, которая много, где обсуждается, а решение достаточно спорное!

Роутер с open wrt, установил на него transmission, настроил конфигурационные файл, запустил программу, роутер перегрузил. При входе на страницу 192.168.1.1:9091 сообщает: «unable to connect».

Проверил уже все, что можно! Роутер пару раз перепрошил заново, трансмишн переустановил тоже не раз, все демоны работают исправно...

Что делаю не так?

Заранее благодарен!

 ,

st-small ()

Хочу простой кроссплатформенный message passing, посоветуй

Субж, надо чтобы и по сети, и межпроцессного. И виндусь и линукс, и биндинги чтобы java, c#, c, go. В общем полный фарш, можно rpc. Смотрю в сторону zeromq. В общем, что кто пользовался, посоветуй.

 

RedPossum ()