10

I have setup a Remote Desktop Gateway server using Windows Server 2012 R2. I am using the Remote Desktop Gateway as an intermediary between to provide the remote desktop session over 443 since 3389 is blocked at many client locations.

However, I ran into a problem with a client who's network seems to be using an web proxy.

Is is possible to configure Remote Desktop to connect via web proxy? If so, how? If not does any one have any suggestions on how to provide a Remote Desktop session via 443 over proxy for situations where you don't control the client's PC or network? Does RemoteApps allow for access via web proxy when using RD Gateway?

The error message is below:

Your computer can't connect to the remote computer because the web proxy server requires authentication. To allow unauthenticated traffic to an RD Gateway server through your web proxy server, contact your network administrator.

Thanks for any help!

1
  • I would expect that the TMG Firewall client would work to provide credentials to the proxy before the connection is made.
    – user257100
    Dec 4, 2014 at 13:20

4 Answers 4

5

As of 2008 a Microsoft employee indicated there was "no official way" to accomplish this. Given the six intervening years you'd like to think there has been progress, but I'm not seeing that there has been.

If I were in your situation I'd try to find a small Win32 HTTP/HTTPS proxy that can be "pointed" at an upstream proxy and configured to provide authentication. I don't have an immediate recommendation for such a thing. (I'd probably just throw something together with Perl or Python, personally.)

1
  • Thanks! I saw that article too! I was hoping that something had changed in this time. I have been looking for alternatives and have found Guacamole which delivers RDP via the web browser, we may pivot to this although its not quite a full RDP session.
    – tcj123
    Jul 1, 2014 at 17:44
2

Another option is to use an SSH tunnel. PuTTY, to name names, has an easily-configured proxy option, so it can work through the proxy server and then provide a local tunnel through which you can connect to the RDP destination.

This does assume that the client has something to login to via SSH, and more specifically something that can communicate with the RDP server.

2

As Omaha's answer suggested, another option is an SSH tunnel. If you had SSH installed on your windows box [possibly not trivial] then you may be able to connect to that box, creating an SSH tunnel for a port, then connect your rdp client to that port (putty can create tunnels, or ssh can something like https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy, ex:

ssh username@intermediary_box -o "ProxyCommand=nc -X connect -x proxy_host_name:80 %h %p" -L:3389:remote_rdp_box:3389 then point your rdp client to localhost like normal, I've had this way work for me over an HTTP proxy).

FreeRDP-WebConnect may be an option [it appears to be a web server backend to interface with RDP behind it, with HTML5 client front end] then you could open the port through to your box [whichever one it's serving on] and hopefully access that using HTTP. Assuming websockets aren't blocked. Guacamole appears similar (you setup a service and web server on the RDP server box, it provides an HTML5 front end).

Barring that, if you have an external 3rd box (not behind any firewalls) that has an SSH server you could create a port forwarding through that intermediary box, via SSH (same mechanism https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy).

For newer RDP clients, you might be able to setup an extra RDP "gateway" then connect to that using HTTP http://sengstar2005.hubpages.com/hub/How-to-Remote-Desktop-to-a-Terminal-Server-via-a-Web-Proxy

0

Guacamole and FreeRDP-WebConnect are Linux based gateways. For Windows Servers (I saw you are using Windows Server 2012 R2), you can try Myrtille, a comparable solution (equally using FreeRDP as rdp client), also open source.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .