• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Организация соединения удалённой системой

  • Автор темы AvasKvas
  • Дата начала
A

AvasKvas

Добрый день!

Есть такое ТЗ (начало):

1. Программа-сервер (далее сервер) должна принимать входящие подключения по протоколу TCP/IP на TCP-порт 3696 (должна быть возможность задать другой порт при необходимости).
2. Инициатором соединения является удаленное устройство.
3. При подключении устройства происходит установления соединения путем приема запроса на установление TCP-соединения и занесения его в динамический пул соединений...


Вопрос,можно ли это реализовать только на Lotus Domino? То есть следить за портом, устанавливать соединения и и в дальнейшем принимать и отправлять запросы, ну и соответственно инфу в БД клала.


Или тут нужно внешнее приложение использовать?Например на java выполненное. Но тогда как сделать чтоб оно на сервере работало и к БД лотуса коннектилось?

Заранее спасибо!
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
В "Босс Референте" есть БД "Транспорт", она этим и занимается. Там есть агент на java, который слушает порт, вроде как 4000, но это не важно, оно там жёстко в коде было пробито...
В общем, ищите и найдёте.
 
A

AvasKvas

Это хорошо!Вот только где бос референт найти теперь!
 
A

Akupaka

VladSh,
шутник, блин )) Что ты человека посылаешь на БР? :( Это же ком.решение.

AvasKvas,
а domino http не устраивает? Порт по-умолчанию 80, но можно и другой установить, работа по стандартному протоколу, ничего выдумывать не надо, останется написать правильно запросы и сформировать правильные ответы.
Правда, не знаю умеет ли domino держать более одного http на разных портах. Но, если не принципиально разграничивать или есть возможность поднять отдельный сервер для этой задачи, то это наверняка будет удобнее, чем писать свой клиент-сервер. Ну, если задача не в написании своего клиент-сервера, конечно.

А так к домино можно прикрутить java addin (или addon, или как оно там называется). Поищи, например, вот
Этот аддон будет слушать порт, обрабатывать соединения.
 
H

hosm

Там есть агент на java, который слушает порт, вроде как 4000, но это не важно, оно там жёстко в коде было пробито...
нет, какой порт слушать-это в БР настраивается давно уже :(
Akupaka расписал правильно, т.е. задача реализуема на лотусе, например, с помощью языка Java.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
домина интегрируется в ОС и без неё она какбэ не существует ;)
у ОС есть файрвол, и в "нормальных" случаях никто не мешает им рулить (делая редайрект портов), в т.ч. пущая скрипты из домины...
в линухах:
кладем ключ (авторизация по ключу) для ssh в опред. каталог нотусни и делаем ssh команду (с рутовыми полномочиями) по изменению редайректа, используя настройки из базы
с портом разобрались ;)
что надо делать с соединением - я так и не понял
по поводу адынов и портов...
надо помнить, что не все порты доступны для bind юзеру (под кот. домина пущается), так чта хотеть слушать порт и иметь возможность - не одно и тоже и без ОС это какбэ не решаемо (в общем случае)
не ну если есть желание похачить секурити сервера - то можно :(
как там в винде принято - запускаем с правами админа и херачим всё подряд, делая дыры и рассадник вирусни
 
A

AvasKvas

Спасибо всем!
Значит задача реализуема!Это хорошо.

Я вижу тут два способа - Java и http. Вот только что лучше?!


Может стоит использовать вообще Xpage?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
ТЗ настолько странное и абстрактное, что советовать невозможно
 
A

AvasKvas

ТЗ всегда такое.)) Вот полный его вариант:

1. Программа-сервер (далее сервер) должна принимать входящие подключения по протоколу TCP/IP на TCP-порт 3696 (должна быть возможность задать другой порт при необходимости).
2. Инициатором соединения является удаленное устройство.
3. При подключении устройства происходит установления соединения путем приема запроса на установление TCP-соединения и занесения его в динамический пул соединений.
4. Устройство после успешного подключения выдает свой идентификатор в виде @IDxxxxxxx$$$VBATzzzz$$$ где xxxxxxx – идентификатор – семь знаков таблицы ASCII (заранее запрограммированных в устройство), zzzz – 4 знака таблицы ASCII которые являются обозначением переменной типа WORD (MSB-first) и обозначают напряжение батареи устройства, которое вычисляется по формуле 0.6*1023/zzzz(dec).
5. Передача пакетов к устройству имеет формат $BFxxyy&zz&zz…&zz где xx – количество передаваемых байт в формате текстового представления BYTE, yy – количество ожидаемых байт ответа от конечного устройства в формате текстового представления BYTE, &zz – байт данных с разделителем ”&” в формате текстового представления BYTE (например $BF0305&FF&05&A3 – пакет с 3-мя байтами данных FF05A3 и ожидание 5 байт ответа).
6. Ответ от устройства имеет формат $RFxx&zz где xx - количество передаваемых байт в формате текстового представления BYTE, &zz – байт данных с разделителем ”&” в формате текстового представления BYTE
7. Динамический пул соединений должен содержать информацию о подключенном устройстве (идентификатор), напряжение батареи на момент подключения, IP-адрес удаленного устройства, состояние обмена данными (подключение/передача запроса xx (запросов много – хх номер запроса)/ожидание ответа xx/разбор пакета/простой (idle)). Также должна быть возможность отслеживания соединений и ведение журнала соединений.



Там внешнее устройство,которое по протоколу TCP/IP на TCP-порт 3696 конектится с компом. ну и некоторые данные нужно в БД заносить
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
хттп не подойдёт по причине незнания устройством ёваного :(, т.к. обмен происходит двухсторонний
не понятно, также, слово пул - явно архитектор передирал чужой конспект ;)
короче - java
 
A

Akupaka

не понятно, также, слово пул
Похоже, имелось в виду, что сервер должен обрабатывать несколько одновременных подключений.
хттп и вправду не подойдет. Тут нужен свой сервер. Причем, как я понял, под существующий клиент.
Остается вопрос, а зачем сюда приплетать домино? Для сбора данных? Вполне возможно реализовать данную задачу на чем-то бесплатном.
Или заказчик хочет видеть инфу в своем домино-приложении?
 
A

AvasKvas

Да ппохоже все таки java. Как я понял можно запустить java задачу на сервере. Буду разбираться как!

Может кто направит меня поконкретней!
 
A

Akupaka

Может кто направит меня поконкретней!
Ну дык, выше написано было про domino java add-in, надо искать инфу по этим кодовым словам
даже ссылка была на какой-то пример, и вообще на том сайте много интересного :(
 
A

AvasKvas

Всем огромное спасибо!Если справлюсь, результаты выложу!
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
шутник, блин )) Что ты человека посылаешь на БР? ;) Это же ком.решение.
И что с того, что коммерческое? Может и патент на идею есть? :(
Я просто указал, что решение возможно и указал пример. Если посмотреть пример кода, то от БоссРеферента от этого не убудет.
 
A

Akupaka

Так надо было сразу давать контакты ведущего конструктора в Босс-Референте, чтобы можно было официально спросить :(
Ну или дать код самому... что есть несколько неэтично ;)
К стати, я вот и не помню, но КМК код сервера транспорта (аддина) был отдельно от баз БРа.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
нужно учесть, что адын (по ссылке) не отслеживает свои копии, что нужно организовать отдельный поток на прослушку порта, и считывание символов из него
вот пример реализации типа telnet
это клиентская часть, кот. шлёт "команды" и читает ответ

др. словами - надо уметь работать с мультитредовыми приложениями и обрабатывать соединения

Добавлено: вот пример клиентской и серверной части

там идет обмен объектом...
но делается всё в одной нити, а с адыном надо вынести в отдельную нить
и обмениваться (как я понял) бинарными данными
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
Так надо было сразу давать контакты ведущего конструктора в Босс-Референте, чтобы можно было официально спросить :)
Это имеет какой-то смысл? :)
Если тебе "надо было", так давай, мне не надо было.
P.S. Правильнее сделал lmike, дав ссылки. И безо всяких "контактов ведущего конструктора".
 
E

Eremenko

Добрый день!

Есть такое ТЗ (начало):

1. Программа-сервер (далее сервер) должна принимать входящие подключения по протоколу TCP/IP на TCP-порт 3696 (должна быть возможность задать другой порт при необходимости).
2. Инициатором соединения является удаленное устройство.
3. При подключении устройства происходит установления соединения путем приема запроса на установление TCP-соединения и занесения его в динамический пул соединений...


Вопрос,можно ли это реализовать только на Lotus Domino? То есть следить за портом, устанавливать соединения и и в дальнейшем принимать и отправлять запросы, ну и соответственно инфу в БД клала.


Или тут нужно внешнее приложение использовать?Например на java выполненное. Но тогда как сделать чтоб оно на сервере работало и к БД лотуса коннектилось?

Заранее спасибо!

В босс референт это реализовано сервлетом, он стартует одновременно с хттп и слушает порт
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!