I’ve been working back and forth from one of my PCs running a Windows XP (note: I’m in no way promoting the use of Windows here 🙂 ) for some tests I’m doing, and this has continued for many days already. Then (unfortunately, this took me several days to realize) I hit an epiphany: Why don’t I do something so that I won’t have to get up from my seat everytime I need to check up on my Windows PC? The solution? Why rdesktop in Linux of course! Not VNC and not virtualization. Actually I already had a virtual machine running Window$ (the dollar sign there isn’t accidental) but I needed a real machine/PC which will run Window$ [sic], since software such as DirectX require specific hardware which cannot usually be duplicated by virtual machines. rdesktop is particularly useful if you want to graphically control your Windows machine remotely, that is, control your own desktop and computer just like you were sitting in front of it. You can also use it to help others diagnose their PCs for example.
To install it in a machine running Ubuntu or Debian, just do a
$ sudo apt-get install rdesktop
The way to use it is actually very simple:
$ rdesktop host
And then just replace the host part with the network or IP address of the PC you want to connect to. In your Windows PC, right-click on your My Computer and then click Properties. Then on the Remote tab, you can then enable there the Remote Desktop functionality. This will then allow people who have user accounts on that Windows machine to remotely connect and control/view their Windows desktops. Of course, since we’re talking about Windows here, might as well talk about security. One of the most obvious ways is to always create accounts with passwords, unless you have a very good reason to allow no password logins. Another is if you’re going to use remote desktop over the Internet, better setup a firewall with port forwarding to the Windows PC you’re connecting to (by default it’s port 3389 for remote desktop).
$ man rdesktop
Will give you a load of other options such as compressing your data before transmitting them over the network, which conserves bandwith albeit with the added computing resource cost, for example.
Lastly, don’t think that us Linux users, with the built-in (down to the kernel level) security, can sleep calmly at night. There is a vulnerability in rdesktop (particularly in Ubuntu) as stated below:
It was discovered that rdesktop did not properly validate the length of packet headers when processing RDP requests. If a user were tricked into connecting to a malicious server, an attacker could cause a denial of service or possible execute arbitrary code with the privileges of the user. (CVE-2008-1801)
==Ubuntu Security Notice USN-646-1 September 18, 2008rdesktop vulnerabilities CVE-2008-1801, CVE-2008-1802, CVE-2008-1803== A security issue affects the following Ubuntu releases: Ubuntu 6.06 LTSUbuntu 7.04Ubuntu 7.10Ubuntu 8.04 LTS
In order to fix this dilemma, it is advised to upgrade to the following (depending on what Ubuntu version you’re using):
Ubuntu 6.06 LTS: rdesktop 1.4.1-1.1ubuntu0.6.06.1 Ubuntu 7.04: rdesktop 1.5.0-1ubuntu1.1 Ubuntu 7.10: rdesktop 1.5.0-2ubuntu0.1 Ubuntu 8.04 LTS: rdesktop 1.5.0-3+cvs20071006ubuntu0.1
Check your installed rdesktop version with the ones above in order to fix the vulnerability. Click here for more information on the vulnerability.
And again, while I’m at it, I’ll include another not so new but pretty alarming vulnerability in Debian based distributions which use ssl for encryption. The vulnerability and fix for Debian is here, as for Ubuntu, click here.