Подтвердить что ты не робот

Туннель любого вида трафика TCP через HTTP/s

Я ищу программное обеспечение для туннелирования RDP или другого двоичного TCP-трафика через туннель HTTPS. Поскольку многие клиенты имеют только HTTP/S, разрешены (только порт 80 и 443 открыты в брандмауэре).

Но есть необходимость пересылать RDP (и другие протоколы) с машин в DMZ на клиентов.

Function description 7 Просмотр описания больших функций

Есть ли какое-либо программное обеспечение с открытым исходным кодом или корпоративное программное обеспечение для этой проблемы?

Плохие решения

Решения, такие как F5 большой ip, имеют проблемы с созданием конфигурации соединения с этим программным обеспечением. Если бы это было возможно сделать с помощью api, это было бы хорошим решением. Но я бы предпочел только получить компонент туннеля без использования всего программного обеспечения шлюза. Beacuse мне нужно создать туннели (1000ds) из моего собственного программного обеспечения и его необходимо ограничить доступ туннелей к разрешенному пользователю (идентифицировано с помощью cookie сеанса)

Хорошие решения

http://http-tunnel.sourceforge.net/

Если бы было возможно, что клиент туннеля не будет выделенным сервером, а java-апптом флэш-памяти, запущенным в браузере клиентов, он будет соответствовать 100% моим потребностям.

4b9b3361

Ответ 1

Существует огромное количество проектов, которые туннелируют TCP через HTTP (S). Вам нужно будет немного поработать, чтобы выбрать тот, который наилучшим образом соответствует вашим потребностям (и, вероятно, немного измените его).

  • SuperTunnel (Java). Похоже, они, похоже, подумали о том, как иметь дело с не-хорошо себя зарекомендовавшими себя прокси.

  • JHttpTunnel (Java). Порт gnu httptunnel, я думаю, использует тот же сетевой протокол.

  • Netty HTTP-туннель (Java, часть Netty, очень хорошая сетевая библиотека; пример кода). Я думаю, для этого требуется, чтобы клиент и сервер использовали Netty, но помимо этого, это замена для обычных сокетов в Netty.

  • ProxyChains (C, Unix, очень популярный)

  • GNU httptunnel (C, без поддержки HTTPS, это, вероятно, дедушка всех http-туннелей)

  • node-http-tunnel (Node.js), Net:: HTTPTunnel (Perl), nRedir (Python), штопор, htunnel,...

Я думаю, что SuperTunnel и JHttpTunnel могут быть включены в апплет или Java-приложение на клиентской стороне, они не должны запускаться как автономные прокси.

Netty также сделает это, но (я думаю) это требует, чтобы ваш сервер также использовал Netty: другими словами, он позволяет заменить обычный TCP connect() на сервер, используя Netty с TCP-over-HTTP connect(), но не проксирует произвольные подключения к другим серверам (если вы не написали свой собственный простой прокси).

Ответ 2

Если вы находитесь в мире Windows, я настоятельно рекомендую взглянуть на службу SSTP VPN в Windows 2008/2008R2/2012. Он использует порт 443 и может быть совместно с IIS (на 443). Он работает как прелесть в Windows Vista/7/8. Я слышал о Mac OSX решениях, но еще нет.

Однако есть хорошее старое решение SSH.

Если на linux просто установите openssh-сервер. Если в окнах получить и установить сервер OpenSSH (например, copSSH из itefix https://www.itefix.no/). Измените порт, который будет использовать 443 вместо значения по умолчанию 22.

На стороне клиента можно использовать Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) или котенка (http://kitty.9bis.net/) в Windows или любом виде SSH-клиента в любой ОС для подключения к вашему серверу через порт 443 (где слушает ваш сервер SSH).

Инструкции по туннелированию через putty, например, можно найти на нескольких сайтах:

Всегда помните, что вы должны указать на свой локальный узел, чтобы сделать это.

В Windows есть также MyEnTunnel (http://nemesis2.qx.net/pages/MyEnTunnel), чтобы упростить процедуру настройки и обслуживания туннелей.

Использование этого туннеля в браузере чрезвычайно просто: просто сообщите своему браузеру, что у вас есть прокси-сервер socks на локальном порту (eh localhost 8080), который вы только что настроили на своем клиенте (шпатлевка, котенок, myentunnel или что-то еще).

Ответ 3

Я написал одно имя sshh.  http://sourceforge.net/projects/sshh/

Я немного пошатнулся, и на самом деле это позволяет вам делать соединения обратно через него.