If you are Googling for software that allows you to use remote desktop from a Linux OS through a RD Gateway to another server – Stop! I spend hours doing the same with no luck. I tried out a bunch of tools with no luck either. Here is some of the tools I tried, which does NOT support this function:
- Remotedesktop Client
- Remote Desktop Viewer
- Remmina Remote Desktop Client
- 2X Client / Remote Desktop
- Jump Desktop
- Running MS mstsc through Wine
I have previously used iTap Mobile to set up connections through a Remote Gateway (also known as RD Gateway or TS Gateway) from a Mac. I read this could also be used for Linux OS’s. But when I went to their site, it turns out that iTap mobile has been discontinued because Microsoft released a new Microsoft Remote Desktop app. This Desktop App works for Windows, Mac and Android, but Linux is not mentioned anywhere. So I wrote the iTap team asking them for advice:
Hi iTap team
I’m looking for software which can connect me through an RD Gateway
(or TS gateway) to a terminal server. I can see you are referring to the new “Microsoft Remote Desktop app”
for Macs and Android.
But what about Linux users like myself, is there an alternative to iTap now that you guys discontinued iTap?
This was their reply:
Thank you very much for your interest in iTap mobile RDP.
Unfortunately, not that I know of. As far as I know iTap mobile RDP was the only RDP client for Linux that offered RD Gateway support.
We are very sorry for the inconvenience.
So what did I do ? turned to the wonderful world of opensource software. FreeRDP is an awesome project started by Awake Coding aka Marc-André Moreau. It is still in development so bugs and missing documentation is to be expected. This tutorial will show you how to compile and use FreeRDP to connect to through a RD Gateway to a terminal server from Ubuntu 13.10 32 bit.
First thing is to install Git, if you already have this installed you can skip this step.
1. Open a terminal an type sudo apt-get install git
Ones we have Git installed, let?s get the source files from GitHub
2. Type git clone git://github.com/FreeRDP/FreeRDP.git
3. Type cd FreeRDP
We also need a bunch of dependencies for compiling and running FreeRDP
4. Type the following and press Enter
sudo apt-get install build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev \
libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev libxml2 libxml2-dev \
libxrandr-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
Now that we have all we need, the makefile must be generated.
5. Type cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON .
Finally start the build
6. Type make
Ones the installer had been build we can start installing the software itself
7. Type sudo make install
It will take a while to install but hopefully will without any errors. Ones FreeRDP is installed, there is just a little tweaking needed. We need to create a config file for FreeRDP which tells it where the FreeRDP library is placed.
8. Type sudo nano /etc/ld.so.conf.d/freerdp.conf
9. Inset the line /usr/local/lib/freerdp
10. Save and exit the file
11. Type sudo ldconfig
12. Type which xfreerdp
13. Start FreeRDP by typing xfreerdp
FreeRDP should now be installed correctly. If you have any problems doing this, please check the wiki a GitHub.
Let’s try using FreeRDP to connet to a terminal server though a RD Gateway server. The syntax is like this:
xfreerdp /v:WORKSTATION /d:DOMAIN /u:USERNAME /p:PASSWORD /g:GATEWAY /gd:GATEWAYDOMAIN /gu:GATEWAYUSERNAME /gp:GATEWAYPASSWORD
But since I?m using then same account to identify myself to the RD Gateway, and the terminal server I only need to give one username and password.
14. Type xfreerdp /v:WORKSTATION /d:DOMAIN /u:USERNAME /p:PASSWORD /g:GATEWAY
15. When asked if you trust the certificate press y
So I get error that the Gateway certificate has changed. Someone has suggested that it is a bug in FreeRDP, because it has to handle both the RD gateways certificate and the terminal servers certificate. Anyway it is an easy fix since we can just use the /cert-ignore option.
16. Type xfreerdp /cert-ignore /v:WORKSTATION /d:DOMAIN /u:USERNAME /p:PASSWORD /g:GATEWAY
Success ! we have connected though the RD gateway to a Terminal server in a protected environment. Remember though that FreeRDP is still in development, so it might be buggy. If anybody knows other software or an easier way to connect to a Terminal Server though an RD Gateway please let me know.