Комментарии 64
А почему не использовать брокер для межпроцессового взаимодействия RabbitMQ например? Библиотеки есть под множество языков, формат сообщений — бинарный (см AMQP), маршруты сообщений, приоритеты и прочие прелести в наличии.
0
Что-то я не пойму… xmpp — это уровень приложений, а на сетевом-то уровне машины как связаны? учитывая, что «способ связи компьютеров не должен базироваться на TCP\IP, UDP» — если не айпи, то что?
+2
На сетевом — хоть через Modbus. Вопрос не в этом. Как обеспечить связь компьютеров находящихся чёрт знает где.
0
Ну, чтобы отправить сообщение по XMPP, компьютеры уже должны быть соединены, разве нет? Если они уже подключены к интернету, то они уже соединены, хотя бы опосредовано через сервер.
В статье озвучивается задача — «Есть несколько компьютеров, которые необходимо соединить в одну сеть». Данная задача не решается, вместо этого предполагается, что компьютеры уже подключены к интернету и мы шлём сообщения на джаббер-сервер. Технически это ничем не отличается от посылания tcp пакета с произвольными данными на сервер, т.е. тут не совсем понятно, как выполняется условие «способ связи компьютеров не должен базироваться на TCP\IP, UDP»…
В статье озвучивается задача — «Есть несколько компьютеров, которые необходимо соединить в одну сеть». Данная задача не решается, вместо этого предполагается, что компьютеры уже подключены к интернету и мы шлём сообщения на джаббер-сервер. Технически это ничем не отличается от посылания tcp пакета с произвольными данными на сервер, т.е. тут не совсем понятно, как выполняется условие «способ связи компьютеров не должен базироваться на TCP\IP, UDP»…
0
Вот этого опосредованного сервера — нет!!!
И не будет!!!
А выезжать из дома, ради того, чтобы тупо сбросить контроллер — конечно можно, но совершенно не хочется. Особенно в 2 часа ночи.
И не будет!!!
А выезжать из дома, ради того, чтобы тупо сбросить контроллер — конечно можно, но совершенно не хочется. Особенно в 2 часа ночи.
0
И каким образом XMPP решает проблему отсутствия сервера? В статье про это не сказано (либо я не нашёл)
Предполагается использовать в продакшн публичный сервер типа jabber.ru?
Предполагается использовать в продакшн публичный сервер типа jabber.ru?
0
По исходному коду — именно это и следует.
0
Я думал, это для примера… т.е. для предприятия приемлемо, что публичный бесплатный сервер периодически отключается, а сообщения на корпоративный компьютер может отправлять любой произвольный пользователь jabber.ru (если он узнает jid)?
0
даже не jabber.ru, а вообще любого XMPP сервера в интернете
в т.ч. подложного, который может подставить фальшивый jid отправителя
в т.ч. подложного, который может подставить фальшивый jid отправителя
0
Подложный сервер может прислать сообщение. Пароль? Логин? Команда?
А критическую команду по второму каналу?
Информация тупо в ответ на «Хелло, Ворлд!» — от бота не пойдёт!
А критическую команду по второму каналу?
Информация тупо в ответ на «Хелло, Ворлд!» — от бота не пойдёт!
0
Ну, идея не в том, чтобы послать «Хелло, Ворлд!». В скрипте имеются минимум два вектора атаки:
1. Переполнение буфера
2. ДДоС
1. Переполнение буфера
2. ДДоС
0
Ну и ладно. В цикле отдельного процесса перезапускаем бот, который будет принудительно завершаться при любой ошибке. Заваливание бота — не критично. Это дополнительная возможность («третья рука»). И я сильно сомневаюсь, что сервер пропустит диких размеров сообщение.
Опять же — python — интерпретатор, и проконтролировать длину сообщения едва ли что-то помешает.
Опять же — python — интерпретатор, и проконтролировать длину сообщения едва ли что-то помешает.
0
1) Если отключится один сервер — ничто не мешает подключить автоматически другой. Или сообщения присылать сразу по трём серверам. Программно организовать — это меньше всего проблема.
2) Произвольный пользователь — может слать всё что угодно. Бот всё-равно не воспримет, так как произвольный пользователь не будет знать формат сообщения, и вообще сами сообщения отправляются только тем, кому надо, а на приём — jid не совпадает, да ещё пароль на саму команду в сообщении нужно указать. попробуйте реализовать? ;)
2) Произвольный пользователь — может слать всё что угодно. Бот всё-равно не воспримет, так как произвольный пользователь не будет знать формат сообщения, и вообще сами сообщения отправляются только тем, кому надо, а на приём — jid не совпадает, да ещё пароль на саму команду в сообщении нужно указать. попробуйте реализовать? ;)
0
В целом — при использовании такого подхода возникает ряд проблем, которые в стандартых схемах давно решены.
Я не имел в виду, что произвольный пользователь сразу получает возможность управлять корпоративный компом. Просто чтобы проанализировать команду и пароль, скрипт уже должен принять сообщение, таким образом открывается дополнительный вектор атаки. В этом смысле любая VPN всё же на порядок безопасней, т.к. даже полное заДДоСивание смотрящего наружу VPN-сервера не приведёт к отказу компьютеров внутри сети…
Я не имел в виду, что произвольный пользователь сразу получает возможность управлять корпоративный компом. Просто чтобы проанализировать команду и пароль, скрипт уже должен принять сообщение, таким образом открывается дополнительный вектор атаки. В этом смысле любая VPN всё же на порядок безопасней, т.к. даже полное заДДоСивание смотрящего наружу VPN-сервера не приведёт к отказу компьютеров внутри сети…
0
Безусловно заДДОСить таким образом можно, именно поэтому я даже не рассматриваю вариант расположения бота на том же компьютере, что и АРМ (это вообще будет швах).
Предлагаемый вариант — как раз сводится к тому, что есть развязка между критической частью, и не критической. Флуд можно устроить и на VPN-сервере через ICMP. VPN точно так же пользуется механизмами TCP/IP/UDP, и зачастую преодолеть NAT, когда и пароля от роутера нет — кругом засада.
Вот в этом проблема — стндартные средства — или стоят денег, а начальство на такие вещи смотрит криво, да и, думаю, не против устроить структуру «РегионБаблоПопил». Соответственно — дешёвые решения начальство не устроят. ;)
В принципе, сам сервер, если настроен не криво — должен увидеть аномальную активность клиента, и отключить его. За таким сервером, как jabber.ru точно админы будут смотреть лучше, чем за самопальным, который смотрит мальчик из фирмы раз в неделю.
И не нужно забывать, про такую вещь, как квитирование, например номер сообщения. Атакующий должен будет его передать. Или ответную часть от сгенерированного ботом проверочного кода. Подобрать нужную последовательность не реально.
Предлагаемый вариант — как раз сводится к тому, что есть развязка между критической частью, и не критической. Флуд можно устроить и на VPN-сервере через ICMP. VPN точно так же пользуется механизмами TCP/IP/UDP, и зачастую преодолеть NAT, когда и пароля от роутера нет — кругом засада.
Вот в этом проблема — стндартные средства — или стоят денег, а начальство на такие вещи смотрит криво, да и, думаю, не против устроить структуру «РегионБаблоПопил». Соответственно — дешёвые решения начальство не устроят. ;)
В принципе, сам сервер, если настроен не криво — должен увидеть аномальную активность клиента, и отключить его. За таким сервером, как jabber.ru точно админы будут смотреть лучше, чем за самопальным, который смотрит мальчик из фирмы раз в неделю.
И не нужно забывать, про такую вещь, как квитирование, например номер сообщения. Атакующий должен будет его передать. Или ответную часть от сгенерированного ботом проверочного кода. Подобрать нужную последовательность не реально.
0
Компьютеры вовсе не обязаны быть соединены через TCP\IP. По крайней мере, на заводе с площадью с полтора десятка гектар — это не элементарное решение.
0
Если компьютер не подключен к сети через айпи, как до него дойдёт XMPP сообщение из интернета?
0
Не холивара ради, а в ответ на «В промышленных целях крайней не рекомендуется использовать операционные системы семейства Windows», я бы написал, что «в промышленных целях крайне не рекомендуется использование всякого рода подобных прослоек». Максимум на что подобная система может сгодиться, это оповещение о событиях, не требующих оперативного реагирования.
+2
Например, VPN. В указанном случае неудобно то, что придётся перелопатить прошивку промышленного компьютера, или вмешаться в логику работы АРМа.Эмм, зачем? Автор не слышал о VPN-шлюзах? Ставим на каждой площадке маленькое vpn-устройство, в условном «центре» — побольше, получаем единую L3-сеть (при желании хоть L2). Нет, мы придумаем свой велосипед с квадратными колесами и специальную дорожку для него, ага.
+7
)))) VPN-устройство — ключевое слово. Где его ставить? Где нельзя? Его видимо придётся купить? А устройство сертифицировано для промышленного применения? А VPN-сервер бесплатно и пожизненно к нему идёт?
-3
Ок, твое решение сертифицировано, как я понял? И написал ты его забесплатно и поддерживать будешь бесплатно пожизненно?
0
Моё решение не вмешивается во внутреннюю логику работы АРМа и контроллеров, а отдача команд узаконенными способами — не наказуемо.
Решение, главным образом — для меня, а не для дяди.
В конечном итоге, не вижу ничего зазорного в том, чтобы дяд заплатил за обслуживание, если ему понравится. почему нет?
Решение, главным образом — для меня, а не для дяди.
В конечном итоге, не вижу ничего зазорного в том, чтобы дяд заплатил за обслуживание, если ему понравится. почему нет?
0
Мое решение тоже никуда не вмешивается. И является стандартом.
У тебя наколенный колхоз с задействованием чужих публичных серверов.
Теперь пойди и спроси владельцев бизнеса, какой вариант они хотели бы применять.
У тебя наколенный колхоз с задействованием чужих публичных серверов.
Теперь пойди и спроси владельцев бизнеса, какой вариант они хотели бы применять.
+1
Владельцы бизнеса хотят вообще не вкладывать ни копейки в оборудование, софт и зарплаты. И хотят извлекать прибыль. (Спрашивать не буду, я вижу ответ по текущей ситуации).
(Собственно, владелец на предприятии появляется раз в пятилетку, ему некогда он бабло осваивает).
(Собственно, владелец на предприятии появляется раз в пятилетку, ему некогда он бабло осваивает).
-1
Ты просто не умеешь правильно преподнести задачу и методы ее решения. Потому так и будешь фигачить шаткие поделия за одну зарплату, пока не поменяешь свой подход к этим вопросам.
0
Не вижу чего-то такого, чтобы не преодолеть эту шаткость. Я в тексте указал, что если решение плохое — была плохая постановка вопроса. Чтобы доказать, что постановка вопроса, не такая уж и плохая, я запускаю бота на сутки, jid не меняю. Просто подберите пароль. ;)
Что касается вообще моего образования — я не программист, и лезть в такие сферы по большому счёту — мне никак не можно. Поэтому, логичное продолжение — надо мне закруглиться обсуждать эту тему. В любом случае, мне интересны дельные предложения.
Что касается вообще моего образования — я не программист, и лезть в такие сферы по большому счёту — мне никак не можно. Поэтому, логичное продолжение — надо мне закруглиться обсуждать эту тему. В любом случае, мне интересны дельные предложения.
0
Какая-то феерическая херня. Я так и не понял, что мешает использовать уже сделанное ранее, например ipsec? Для обеспечения времени доставки (оперативности) существует rrtp… Есть куча разных rpc от сана до майкрософта, есть сотни разных технологий обеспечения быстрой передачи данных даже по tcp.
К чему весь этот кошмар?
К чему весь этот кошмар?
+2
В обосновании, вроде кое-какие соображения дал. Написать отдельный развёрнутый топик, почему инженер АСУТП будет ходить битый, если весь завод зарплаты не получит?
-1
Не дали. Вообще, задача не с того конца рассматривается, происходит неадекватное прыгание с уровня на уровень, а когда решение предлагается, не анализируются результаты (нафига использовать xmpp over tcp, когда можно просто по tcp?)
+1
Нельзя. В этом вся проблема.
-1
А вообще выражения «феерическая херня», «полный бред» и т.д. — это тролль детектед.
Я понимаю, что что-то может не нравться, или совсем не нравтися. Обычно в таких случаях грамотные оппоненты поступают так:
Высказывание А.
Возражение А.
Высказывание Б.
Возражение Б.
— Итого, сходите, почитайте -сюда-, -сюда-, и -сюда-. Будет полезно.
Вот вам работающий технически-правильный пример: -профит-.
А напихать умных слов «от сана до майкрософта» — это скорее минус, чем вообще никаких комментариев.
И кстати,
Я понимаю, что что-то может не нравться, или совсем не нравтися. Обычно в таких случаях грамотные оппоненты поступают так:
Высказывание А.
Возражение А.
Высказывание Б.
Возражение Б.
— Итого, сходите, почитайте -сюда-, -сюда-, и -сюда-. Будет полезно.
Вот вам работающий технически-правильный пример: -профит-.
А напихать умных слов «от сана до майкрософта» — это скорее минус, чем вообще никаких комментариев.
И кстати,
-3
Негодование комментатора можно понять. Статья называется «Способ связать разные компьютеры в одну сеть» (т.е. фактически обещается некая новая реализация VPN), а речь в ней идёт про то, как послать джаббер-сообщение из питона через библиотеку xmpppy.
Если бы статья называлась «Простейший пример отправки XMPP-сообщения» и размещалась бы в блоге Python — никто бы не назвал её «хернёй».
Если бы статья называлась «Простейший пример отправки XMPP-сообщения» и размещалась бы в блоге Python — никто бы не назвал её «хернёй».
+1
) Я думаю, размести статью в разделе «Python», рецензия была бы та же.
Автор, ни в одном месте, по заголовку не обещал реализацию VPN.
А именно способ связи компьютер-компьютер в любой точке мира.
По факту — реализация есть. Не вижу повода к претензиями по отношению к заявленной тематике.
Что касается раздела — два компьютера — это уже _система_ компьютеров.
По второму доводу, имхо, претензия также не обоснована.
И называть «хернёй» даже плохие вещи можно, но опять же — не в публичном обсуждении.
Это даже не моё имхо. Хотя, если есть желание опустить Хабрахабр до уровня городской канализации (а можно и глубже) — почему бы и нет?
Автор, ни в одном месте, по заголовку не обещал реализацию VPN.
А именно способ связи компьютер-компьютер в любой точке мира.
По факту — реализация есть. Не вижу повода к претензиями по отношению к заявленной тематике.
Что касается раздела — два компьютера — это уже _система_ компьютеров.
По второму доводу, имхо, претензия также не обоснована.
И называть «хернёй» даже плохие вещи можно, но опять же — не в публичном обсуждении.
Это даже не моё имхо. Хотя, если есть желание опустить Хабрахабр до уровня городской канализации (а можно и глубже) — почему бы и нет?
0
Статья называется «Способ связать разные компьютеры в одну сеть». «Сеть» предполагает использование стандартного протокола. Например, соединив компьютеры в VPN, можно слать айпи пакеты, инкапсулировав в них что угодно — хоть тот же XMPP, хоть RDP, хоть свой протокол.
У вас же связь между компьютерами наличествует, но стандартного протокола нет (вместо этого вы придумываете свой протокол, инкапсулированный внутрь сообщений XMPP). Следовательно, говорить про то, что вы таким образом «связываете компьютеры в одну сеть» нельзя, вы просто описываете способ как послать произвольное текстовое сообщение с одного компьютера на другой и обработать его скриптом на питоне. Что, впрочем, не даёт людям права грубить в комментариях…
У вас же связь между компьютерами наличествует, но стандартного протокола нет (вместо этого вы придумываете свой протокол, инкапсулированный внутрь сообщений XMPP). Следовательно, говорить про то, что вы таким образом «связываете компьютеры в одну сеть» нельзя, вы просто описываете способ как послать произвольное текстовое сообщение с одного компьютера на другой и обработать его скриптом на питоне. Что, впрочем, не даёт людям права грубить в комментариях…
0
Формально, в олдскульных книжках описывали message-based networks, но это было где-то в 70ые и возвращаться к этой технологии смысла нет.
0
В каком месте я написал _предлагаю_протокол_???
Я говорю — _способ_связи_. Вы, уважаемый, передёргиваете заявленную тему.
Я говорю — _способ_связи_. Вы, уважаемый, передёргиваете заявленную тему.
0
Вы обещали «способ связать в сеть», а «сеть» — это как среда, так и протокол связи. Без протокола не будет сети. Говоря формально, протокол у вас есть, но ваш собственный, поверх XMPP. Инкапсулировать в него другой протокол уровня приложения (например, RDP) штатными средствами невозможно.
0
RDP? Можно. А штатные средства это обязательно?
Но лично мне — RDP — не нужен.
Давайте посмотрим на википедию:
ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D1%8C_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
— Компьютерная сеть (вычислительная сеть, сеть передачи данных) — система связи компьютеров и/или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут быть использованы различные физические явления, как правило — различные виды электрических сигналов, световых сигналов или электромагнитного излучения.
— Как видно из приведённого определения сетевое оборудование включено через связку «или», что позволяет не включать последнее в состав сети. Формально, я требования выполнил. В приведённом определении ни слова нет про протокол. Ваше замечание не по теме.
Но лично мне — RDP — не нужен.
Давайте посмотрим на википедию:
ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D1%8C_%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
— Компьютерная сеть (вычислительная сеть, сеть передачи данных) — система связи компьютеров и/или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут быть использованы различные физические явления, как правило — различные виды электрических сигналов, световых сигналов или электромагнитного излучения.
— Как видно из приведённого определения сетевое оборудование включено через связку «или», что позволяет не включать последнее в состав сети. Формально, я требования выполнил. В приведённом определении ни слова нет про протокол. Ваше замечание не по теме.
0
Я лишь попытался объяснить, почему заметка вызвала негативную реакцию.
По определению из википедии назвать «сетью» можно любую чушь. Например, возьмём два компьютера, закрепим мышь одного над сидиромом другого. Теперь напишем программку, которая по изменению положения курсора мыши будет определять, был ли открыт сидиром на втором компьютере.
Система связи компьютеров есть? Есть. Физические являния для передачи информации используются? Используются. Но можно ли это назвать «сетью» и отправлять на хабр «способ связать компьютеры в сеть с помощью сидирома и мыши»? Я бы не стал.
По определению из википедии назвать «сетью» можно любую чушь. Например, возьмём два компьютера, закрепим мышь одного над сидиромом другого. Теперь напишем программку, которая по изменению положения курсора мыши будет определять, был ли открыт сидиром на втором компьютере.
Система связи компьютеров есть? Есть. Физические являния для передачи информации используются? Используются. Но можно ли это назвать «сетью» и отправлять на хабр «способ связать компьютеры в сеть с помощью сидирома и мыши»? Я бы не стал.
0
Херню надо называть херней, если она таковой является.
Ты можешь сколько угодно смотреть на собаку и говорить, что это не собака, ведь на собаку она совсем не похожа, но кто в итоге будет прав?
© Нянюшка Ягг
0
Может он и тролль (что очень сомнительно), но он прав. Задача поставлена одна, решение представлено для другой задачи совершенно… и с безопасностью ситуация интересная =).
+1
Когда я пишу «феерическая херня» это обычно значает, что предложение собеседника не прошло первичную валидацию, то есть я не могу говорить о частностях, ибо всё предложение сформулировано неверно.
Я напихал не «умных слов», я написал, что существуют быстро работающие RPC стеки авторства Сан и Майкрософт (и, наверняка, много других).
Я напихал не «умных слов», я написал, что существуют быстро работающие RPC стеки авторства Сан и Майкрософт (и, наверняка, много других).
0
Сервера у него нет, а клиенты с обеих сторон сидят за NATом.
0
Ну. И что из этого следует?
0
Я ответил amarao на его вопрос «что мешает использовать уже сделанное ранее, например ipsec».
0
Чтобы его использовать (и уже написал выше) — нужно настраивать роутер. Он запаролен, пароля нет, и никто не знает. Сбросить роутер — значит оставить предприятие без связи. Догадайтесь сами, что будет дальше.
0
Если там нет каких-то специфичных конфигураций, то я эту задачу смогу решить с помощью обычного компьютера с лагом секунд в пять на переключении. После этого дылинк (или что у них там висит) можно ковырять сколько душе влезет.
0
В смысле, нет? Он xmpp-сервер за сервер не считает?
0
он предлагает использовать бесплатный jabber.ru (см. комментарии выше)
0
И это предлагается считать индустриальным решением? И после ЭТОГО решения задают многозначительные вопросы о применимости dlink'ов на промышленных объектах?
0
В целом такой подход ясен. И я склонен с ним согласится. Для этого интернет и нужен.
Но, в данном случае вопрос о надёжности и безопасности нужно раскрыть как можно более подробно. Публичные, открытые сервера — это часто ненадёжно и небезопасно.
Предыдущие комментаторы, видимо, искренне не понимают что значит «приведёт к потери гарантии» или «потребуется провести проектные мероприятия, лицензирование, перерегистрацию».
«РегионБаблоПопил». :'-(
Но, в данном случае вопрос о надёжности и безопасности нужно раскрыть как можно более подробно. Публичные, открытые сервера — это часто ненадёжно и небезопасно.
Предыдущие комментаторы, видимо, искренне не понимают что значит «приведёт к потери гарантии» или «потребуется провести проектные мероприятия, лицензирование, перерегистрацию».
«РегионБаблоПопил». :'-(
+1
По безопасности тему не заявлял. Я, наверное, ещё пару статей попробую тут разместить, если реакция будет такой же — не вижу смысла здесь дальше находиться.
Что касается вопросов взаимодействия с госорганами, наверно да. Комментирующие плохо себе представляют. Ну, что делать. Счастливые люди. Я им по хорошему завидую.
Что касается вопросов взаимодействия с госорганами, наверно да. Комментирующие плохо себе представляют. Ну, что делать. Счастливые люди. Я им по хорошему завидую.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Способ связать разные компьютеры в одну сеть