b) If you **must** have a GUI, then you need either an ssh-tunnel or a VPN of some kind to run a GUI client/server program inside. Google "vnc ssh tunnel" for step by step instructions. Using FreeNX and an NX client would be a good idea too. I use FreeNX whenever possible. It includes an ssh-tunnel and is much more efficient compared to either RDP or VNC protocols. For VNC, I've never tried either of those tools - I just use vncconnect myself. This requires a little setup on the "server side" so a desktop is running or a terminal is available. For any VNC connection over the internet, be certain you use a tunnel.