Туннелировать любой вид TCP-трафика через HTTP / s
Я ищу программное обеспечение для туннелирования RDP или другого двоичного TCP-трафика через туннель HTTPS. Поскольку у многих клиентов разрешены только HTTP/S (в брандмауэре открыты только порты 80 и 443).
но есть необходимость пересылать RDP (и другие протоколы) с машин в DMZ клиентам.
7 просмотр большого описания функции
есть ли какое-либо программное обеспечение с открытым исходным кодом или enterprise для этой проблемы?
плохо решения
решения клавишу F5 большой ИС имеет проблему, что я должен создать конфигурацию соединения с этим программным обеспечением. Если бы это можно было сделать с помощью api, это было бы хорошим решением. Но я бы предпочел только получить компонент туннеля, не связывая целое программное обеспечение шлюза. Beacuse мне нужно создать туннели (1000ds) из моего собственного программного обеспечения и его необходимость ограничить доступ к туннелю разрешенному пользователю (идентифицирован сеансом cookie)
хорошие решения
http://http-tunnel.sourceforge.net/
Если бы было возможно, что клиент туннеля не будет выделенным сервером, а Java-апплет flash, запущенный в браузере клиентов, он бы соответствовал на 100% моим потребностям.
3 ответов
существует огромное количество проектов, которые туннелируют TCP через HTTP(Ы). Вам придется немного поработать, чтобы выбрать тот, который лучше всего соответствует вашим потребностям (и, вероятно, немного изменить его).
SuperTunnel (Java). Выглядит хорошо, они, кажется, дали некоторые мысли о том, как бороться с не-хорошо себя ведут прокси.
JHttpTunnel (Java). Порт gnu httptunnel, я думаю, использует ту же сеть протокол.
Нетти http Tunnel (Java, часть Netty, очень хорошая сетевая библиотека;пример кода). Я думаю, что для этого требуется как клиент, так и сервер использовать Netty, но помимо этого является заменой обычных сокетов в Netty.
ProxyChains (C, Unix, очень популярный)
GNU httptunnel (C, без поддержки HTTPS, это, вероятно, дедушка всех http туннелей)
узел-http-туннель (узел.в JS), Net:: HTTPTunnel (Perl),nRedir (Python), штопор, htunnel,...
Я думаю, что SuperTunnel и JHttpTunnel могут быть включены в апплет или собственное приложение Java на стороне клиента, им не нужно работать как автономные прокси.
Netty также сделает это, но (я думаю) это требует, чтобы ваш сервер также используйте Netty: другими словами, он позволяет заменить обычный TCP connect()
на сервер, использующий Netty с TCP-over-HTTP connect()
, но не прокси произвольных подключений к другим серверам (если вы пишете свой собственный простой прокси).
Если вы находитесь в мире windows, я настоятельно рекомендую взглянуть на службу Windows 2008/2008R2/2012 SSTP VPN. Он использует порт 443, и может быть совместно с IIS (на 443). Он работает как шарм на Windows Vista / 7 / 8. Я слышал о решениях mac OSX, но еще не там.
однако есть старое доброе решение SSH.
Если на linux, просто установите openssh-сервер. Если в windows, получить и установить сервер OpenSSH (например, copSSH от itefix https://www.itefix.no/). Измените порт на 443 вместо 22 по умолчанию.
на стороне клиента можно использовать шпатлевку (http://www.chiark.greenend.org.uk / ~sgtatham/putty/download.html) или Китти (http://kitty.9bis.net/) в windows или любом SSH-клиенте в любой ОС для подключения к вашему серверу через порт 443 (где ваш SSH-сервер прослушивает).
инструкции по туннелированию через шпатлевку, например, можно найти на нескольких сайтах:
- http://oldsite.precedence.co.uk/nc/putty.html
- http://www.damtp.cam.ac.uk/user/jp107/xp-remote/web-tunnel/
всегда помните, что вы должны указать на свой локальный хост, чтобы сделать это.
на Windows есть также MyEnTunnel (http://nemesis2.qx.net/pages/MyEnTunnel ) упростить процедуру конфигурации тоннеля и поддержка.
использование этого туннеля в браузере чрезвычайно просто: Просто скажите своему браузеру, что у вас есть прокси-сервер socks на локальном порту (e.h. localhost 8080), который вы только что настроили в своем клиенте (putty, kitty, myentunnel или что-то еще).
Я написал один под названием sshh. http://sourceforge.net/projects/sshh/
Я немного спятил, это на самом деле позволяет вам делать соединения назад через него.