VPN through only http

I have got two machines. One running behind an HTTP proxy which only allows http connections to internet. (FTP, SSH everything else is not allowed through this network).

Second machine is a server with a public IP connected to internet. I can install any software on both these machines. Is there any tool that will help me access second machine from the first?

I would like do do things such as FTP transfer, remote login and so on.


Solution 1:

Openvpn supports operation over an http proxy. Its client is available on most desktop platforms; the server is available on most unixes. Pro: you can use any network protocol transparently (including UDP and streaming). Con: some setup required; the overhead is noticeable in some applications; you need admin rights on both sides.

Httptunnel and Httptunnel each let you set up one TCP connection (e.g., ssh) over HTTP. Pro: you don't need admin rights on either side. Con: you need special software on the server side; expect noticeable overhead; ease of setup and use can vary.

If you're only interested in ssh, you can tell it to operate via the proxy by using a program such as corkscrew. Pro: little setup required; no special server-side setup; no connection overhead. Con: doesn't work if the proxy is too restrictive (e.g. doesn't let https through); specific to ssh.

It may help to run the server on port 80 or 443.

Solution 2:

If your proxy doesn't support CONNECT (which is the case in most corporate envs), you are looking for software that uses plain GET&POST to encapsuate your traffic.

Take a look at chisel and crowbar, you may also want use openvpn as a additional layer. There is also softether which is quite promising.

  • Corkscrew needs CONNECT.
  • plain openvpn also uses CONNECT
  • Httptunnel is no longer maintained (last release 2008)
  • Httptunnel is also not maintained (last release 2010)

Solution 3:

See http://www.nocrew.org/software/httptunnel.html or http://http-tunnel.sourceforge.net/