Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Необходимо взять готовое решение socks5-прокси с открытым исходным кодом и доработать до необходимого функционала. А также разработать две небольших программы для взаимодействия с доработанной программой.

===== Основные требования =====

Серверная программа с функционалом socks5-прокси.

Реализация предположительно на базе программы 3proxy socks5.

Программа не должна вносить никаких изменений в систему.

Программа должна представлять собой один исполняемый файл и конфиг-файл. (Мобильность)

Программа в идеале должна простой командой (например, /usr/bin/socks5) запускаться на linux, freebsd системах. Если реально, то и на windows (в виде службы). (Кроссплатформенность)

===== Алгоритм работы доработанной программы =====

(шаг 1) При первом запуске программа обращается к API (API-метод инициализация) и в ответ:

0 (инициализация пройдена);

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

(шаг 2) После успешной инициализации программа начинает слушать указанный в конфиг файле порт.

(шаг 3) При попытке подключения программе, происходит запрос логина-пароля (должны настраиваться через конфиг-файл):

если логин = sadmin, программа работает в режиме выполнения команд;

если логин != sadmin, программа работает в режиме socks5-прокси;

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

(шаг 4) Режим выполнения команд - необходима возможность выполнять стандартные консольные команды от имени пользователя, который запустил программу. Обязательно использование шифрования команд и результатов команд!

(шаг 5) Режим socks5-прокси - стандартный функционал socks5-прокси.

===== Первая дополнительная программа (под linux) =====

Вместе с программой необходимо реализовать API-метод инициализация (программа, которая слушает определенный порт и добавляет запись в базу данных MySQL).

На вход принимает:

-IP-адрес, который слушает программа

-порт, который слушает программа

-идентификатор из конфиг файла

Таблица в базе данных MySQL:

CREATE TABLE `proxies` (

ip BIGINT(20) UNSIGNED NOT NULL,

port INT(11) UNSIGNED NOT NULL,

identity CHAR(40) NOT NULL,

first INT(11) UNSIGNED NOT NULL,

last INT(11) UNSIGNED NOT NULL,

PRIMARY KEY(ip)

) ENGINE = InnoDB;

поле ip - ip-адреса получаемые от mysql-функции вида: INET_ATON('127.0.0.1');

поле port - понятно;

поле identity - идентификатор из конфиг файла;

поля first, last - текущее время в формате TIMESTAMP.

Ошибки:

1 - Некорректный ip-адрес;

2 - Некорретный порт;

3 - Некорректный идентификатор, регулярка: ^[a-f\d]{32}$;

4 - Существующий ip-адрес в базе (при получении ошибки от mysql типа ~"дублирующееся поле ip" происходит вызов сторонней программы и повторная попытка записи в базу в случае неудачи, которой возвращается ошибка);

===== Вторая программа дополнительная программа (под linux) =====

Необходимо реализовать интерфейс для работы в режиме выполнения команд.

Эта программа запускается примерно так: /usr/bin/interface ip-адрес порт

Логин sadmin подставляется автоматически, а пароль берется из конфиг файла (для данной программы!).

Визуально не должно отличаться от обычной SSH-консоли.

===== Примерный конфиг файл =====

[main]

api = 8.8.8.8:43021;

identity = sha1('secret key');

[users]

sadmin = sha1('password-sadmin');

user1 = sha1('password-user1');

...

usern = sha1('password-usern');

9 лет назад
Belyi92
Игорь 
32 годаБеларусь
11 лет в сервисе
Был
9 лет назад
4 отзыва
  • Похожие заказы
  • Необходимо написать программу которая должна из предоставленного списка ID пользователей данной социальной сети удалить: -аккаунты в описании которых указано ссылку на сайт; -аккаунты в описании которых указано номер телефона; -аккаунты описание которых написано НЕ украинскими/русскими буквами; -аккаунты в описании ...

    Закрыт
    9 лет назад
  • $50

    Не имею опыт работы с Git, необходимо добавить сеть публичных проектов на GitHub и 1 приватный проект на bitbucket Необходим человек, который поможет наладить инфраструктуру и научит пользоваться TortoiseGit и стандартным агентом GitHub Минимальное требование к кандидату ...

    Закрыт
    9 лет назад
  • Написание ПО(или же доп. настроек браузера) для автоматического проставления ставок на спортивные события в различных букмекерских конторах(БК). Информацию о спортивном событии, размере ставки, букмекерской конторе выдает уже существующий сервис, с собственным встроенным браузером. Основной фильтр для ставок, ...

    Закрыт
    9 лет назад
  • Нужен исходник простого проекта, который делает следующее: при нажатии заданного нами клавиатурного сокращения копирует выделенный текст из приложения, которое сейчас является активным, и вставляет скопированный текст в контрол нашего приложения (выводя при этом наше приложение ...

    Закрыт
    9 лет назад
  • Необходимо создать сортировщик списка улиц. Есть список улиц, каждой улице нужно привязать вес (значение). Когда мы вводим названия этих улиц в разбросанном порядке, программа должна их отсортировать по весу (значению).

    Прикладное ПО1 исполнитель
    Закрыт
    9 лет назад
  • $200

    И так суть программы, я указываю диапазон или список диапазонов IP адресов, программа ищет по диапазону IP адреса на 22 порт. При нахождение такового, выполняет определенные действия с ним, они описаны в прикрепленном тех задании. По ...

    Закрыт
    9 лет назад
  • $70

    Есть модули на Delphi, которые получают cookies из всех известных браузеров - Google Chrome, Firefox и т.п. Но они устарели и на данный момент не работают. Необходимо обновить их, под современные версии данных браузеров. Задача - в ...

    Закрыт
    9 лет назад
  • Добрый день! есть анкеты, они в ворде, нужно их либо перевести в excel, что бы можно было формулами информацию вставлять, либо предлагайте варианты. на первой странице пишем необходимую информацию, а дальше она размещается по необходимым полям

    Закрыт
    9 лет назад