Wednesday, April 19, 2006

RDP Server for linux

By Justin Silverton

While looking through the various open source projects on sourceforge.net, I found a very interesting application: an RDP server for linux. it's called XRDP, and it is available Here. Why do you need this? It will allow you to connect to a linux box using the RDP client built into windows.

How it works

Xrdp is the main server accepting connections from RDP clients. Xrdp contains the RDP, security, MCS, ISO, and TCP layers, a simple window manager and a few controls. Its a multi threaded single process server. It is in this process were the central management of the sessions are maintained. Central management includes shadowing a session and administrating pop ups to users. xrdp is control by the configuration file xrdp.ini.

RDP has 3 security levels between the RDP server and RDP client. Low, medium and high. Low is 40 bit, data from the client to server is encrypted, Medium is 40 bit encryption both ways and High is 128 bit encryption both ways. xrdp currently only supports low encryption. RSA key exchange is used with both client and server randoms to establish the RC4 keys before the client connect.

Modules are loaded at runtime to provide the real functionality. Many different modules can be created to present one of many different desktops to the user. The modules are loadable to conserve memory and support both GPL and non GPL modules.

Multi threaded to provide optimal user performance. One client can't slow them all down. One multi threaded process is also required for session shadowing with any module. The module doesn't have to consider shadowing, the xrdp server does it. For example, you could shadow a VNC, RDP or a custom module session all from the same shadowing tool.

Build in window manager for sending pop ups to any user running any module. Also can be user to provide connection errors or prompts.

Libvnc, a VNC module for xrdp. Libvnc provides a connection to VNC servers. Its a simple client only supporting a few VNC encodings(raw, cursor, copyrect). Emphasis on being small and fast. Normally, the xrdp server and the Xvnc server are the same machine so bitmap compression encodings would only slow down the session.

Librdp, an RDP module for xrdp. Librdp provides a connection to RDP servers. It only supports RDP4 connections currently.

Sesman, the session manager. Sesman is xrdp's session manager. xrdp connect to sesman to verify the user name / password, and also starts the user session if credentials are ok. This is a multi process / Linux only session manager. Sessions can be started or viewed from the command line.



  • hi....

    I've installed xrdp in mandriva linux free, and everything was fine...
    When I make a test connecting from localhost using rdesktop it works, but when I try to connect from another station the message "connecting to 5911 error: problem connecting"

    What can I do?


    By Anonymous Anonymous, at 10:51 PM  

  • it looks like you are trying to connect to the local loopback address. To connect from another station, to need its ethernet address (non-loopback address). You can get this address using the following command: ifconfig -a. It will most likely be listed under the if0 or eth0 device.

    By Blogger justin silverton, at 11:43 PM  

Post a Comment

Links to this post:

Create a Link

<< Home