Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!
250 ₴

HTTP-Shell repeater

закрыт модератором


Клиентская часть программы «HTTP-Shell repeater».

Техническое задание

 Задача программы — установить соединение по схеме №2 с сайтом, при получении в качестве ответа определенной команды, - направить ее командному интерпретатору Shell-а операционной системы linux, как будто эта команда введена через TUI, а результат, возвращаемый командным интерпретатором для TUI, получить и передать исходящим HTTP-запросом на сайт. В результате связка HTTP-сервер + программа-клиент должна предоставить возможность управления linux-компьютером аналогично тому как это делает putty ssh client. При этом управляемый компьютер может находится за несколькими NAT с серым IP адресом и без всяких пробросов портов.

Shell (Оболочка операционной системы)

TUI (Текстовый пользовательский интерфейс)


Схема №1. Стандартная схема соединения HTTP-сервера с программой-клиентом, где (з) — запрос, (о) — ответ.

 1. Отправка текста с командой для shell с помощью запроса от HTTP-сервера к программе-клиенту

(з) [HTTP-сервер] –> [интернет]–> [маршрутизатор–> [NAT]]–> [порт 80]–> [программа-клиент]

 2. Ответ программы-клиента HTTP-серверу (текстовые данные, возвращаемые shell-ом после выполнения)

(о) [HTTP-сервер] <– [интернет]<– [программа-клиент]

 Схема №1 нам не подходит из-за невозможности проброса 80 порта с маршрутизатора на компьютер, в котором находится наша  программа-клиент. Поэтому необходима другая схема - схема №2.


Схема №2. Нестандартная схема соединения HTTP-сервера с программой-клиентом, где (з) — запрос, (о) — ответ.

 1. Каждые 1-2 секунды отправка исходящего запроса к серверу, цель которого получить в ответ текст с командой для shell

(з) [программа-клиент]—>[интернет]—>[HTTP-сервер]

 2. Отправка текста с командой для shell с помощью ответа от HTTP-сервера к программе-клиенту

(о) [программа-клиент]<—[порт 80]<—[маршрутизатор<— [NAT]]<—[интернет]<—[HTTP-сервер]

 3. Ответ программы-клиента HTTP-серверу с помощью отправки HTTP-запроса (текстовые данные, возвращаемые shell-ом после выполнения)

(з) [программа-клиент]—>[интернет]—>[HTTP-сервер]


 Программа-клиент также должна поддерживать все основные linux-системы и запускаться вместе с компьютером в режиме демона (службы/сервиса).

Интервал между запросами должен быть в миллисекундах равен случайному числу между 1000 и 2000, должна быть возможность переключить между плавающим интервалом или точным.

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

 Адрес сервера, токен, интервал между повторами, переключатель точное/случайное число поместить в файле настроек /etc/http-shell_repeater.conf

 Для взаимодействия программы с сервером “HTTP-console” будет предоставлена документация по API.



  1. 3 дня250 ₴Победившая ставка
    Ярослав Ерстенюк
     208   6   0

    +

    Украина Ивано-Франковск | 2 сентября 2016 |

Заказчик
Вячеслав Поспелов
Украина Мелитополь  2   0
Проект опубликован
2 сентября 2016
27 просмотров