Saturday, January 1, 2011

Installing XRDP on CentOS Redhat Linux

Linux Remote Desktop with XRDP

This Article will explain how to install and configure XRDP on CENTOS. The document will included both GUI and CLI references. The version of XRDP used for this installation is xrdp-0.4.1.

XRDP is a Linux program that allows you to terminal in to Linux from Windows using Remote Desktop Connection (RDP). No additional software is needed on the windows machine. You just put the Linux servers IP address in and press connect. This will take you to the XRDP login screen where you enter you Linux user name and password.

To install and test XRDP you need to complete the following steps.
1 - Install prerequisite software
2 - Install XRDP
3 - Add users
4 - Configure the firewall
5 - Start the XRDP server
6 - RDP to Linux from Windows XP


Step 1 - installing prerequisite software

In the XRDP intall.txt file it list the below prerequisite software that must be installed.
XRDP - Prerequisites
gcc and make
Header files for pam
Header files for openssl

One prerequisite software is missing in the install.txt for XRDP to work on Centos. This is the VNC-Server software. If VNC-Server software package is not installed you get to XRDP screen but when you log in, it will give you errors.

You can use the add/remove software utility in centos it install the prerequisite software. To do this go to System>Administration>Add/Remove Software. From here you can search for the software packages by typing the software package name into the search box and pressing enter. The search box is labeled with a binocular icon. Once you find the package place a check in box to left of it and continue searching. Once all packages are found press the Apply button. Below are the centos software package equivalents that need to be installed.

centos packages
gcc
make
pam-devel
openssl-devel
vnc-server

If you prefer to install the software via the command line use the below commands. I recommend using the su - command. The dash (-) changes you to the root users home directory and allows you to use the root users path variable. i.e. it will let you use the ifconfig command.

Log in as root:
su -
Enter the following to dowload and install all of the above packages.
yum install gcc make pam-devel openssl-devel vnc-server


Step 2 - installing XRDP

To install XRDP you need to download the current version, extract, make and make install it. To download go to Firefox, enter XRDP in the search box, and press enter. You should see the XRDP site first on the list. Click on it to go to the XRDP site. Next click on the download link. This will take you to the source forge XRDP site. it will list the xrdp package. Click on the download link. This takes you to XRDP package download site. Click on xrdp-0.4.1-tar.gz. When the opening xrdp-0.4.1-tar.gx windows comes up select the save to disk radio button and press OK. This will download XRDP.

Below is the link to the XRDP homepage.
http://xrdp.sourceforge.net/

Locate the xrdp tar.gz file. I found mine in my Download directory. Right click on the xrdp-0.4.1-tar.gz and select extract here. This will extract the file in the current directory.

Open a terminal session. Applications>System Tools>Terminal. You will need to log in as the root and change to extracted XRDP directory. Once here run the make and them the make install command. Below are the commands.
Log in as root:
su -
Enter the following code to make and install XRDP.
cd /home/{user name}/Download/xrdp-0.4.1
make
make install


Step 3 - Add users

In order to login through xrdp the user must be a member of the users group. A user can be added to the user group through the Users and Groups utility. To do this go to System>Administration>Users and Groups. From here you can go to the groups tab.

The users group is a system group and by default system users and groups are hidden. To unhide system users and groups go to Edit>Preferences and unselect the hide system users and groups check box and click close. This will display all the groups.

Find the users group, group number 100. Double click it to open the properties window and then select the Group Users Tab. This will list the user in the users group. To add a new user, scroll down until you find the user you want and select the check box next to it and click OK. This will add the selected user to the user group.


Step 4 - Configure the firewall

By default the RDP port 3389 is block by the firewall. In order to access the XRDP login screen the TCP and UDP port 3389 need to be allowed through the firewall. These ports can be enable through the Firewall utility.

To open the Firewall utility goto System>Administration>Firewall. On the left hand side select Other Ports. This with take you to the other ports window where you can add the TCP 3389 and UDP 3389 ports so they will be allowed through the firewall. Select the add+ button to open the add port window. Scroll down until you see port 3389 TCP ms-wbt-server select it and press OK. Next select the add+ button again and select the port 3389 UDP ms-wbt-server and select OK. You should now see both TCP and UDP 3389 port in the allow other port list. Select the Apply button to apply the changes. Select Yes on the conformation screen and then close Firewall utility.

Step 5 - Start the XRDP server

The XRDP program is a stand alone program so you have to start it manualy. Below are the commands to start, stop, and reload the xrdp server. To start the XRDP server at startup you will need to create a script.

To access the xrdp_control.sh command you must be in the /usr/local/xrdp directory.

To start XRDP:
cd /usr/local/xrdp
./xrdp_control.sh start

To stop XRDP:
cd /usr/local/xrdp
./xrdp_control.sh stop

To Reload XRDP:
cd /usr/local/xrdp
./xrdp_control.sh start

STARTUP Service :

cp xrdp_control.sh /etc/init.d/xrdp_control
chkconfig --add xrdp_control
chkconfig xrdp_control on
service xrdp_control start

6 - RDP to Linux from Windows XP

Now that the xrdp server is up, a user in the users group, and the RDP ports have been allowed, you can RDP in to Linux (Centos). To RDP in to centos from Windows all you need is RDP (Remote Desktop connection), no other software needs to be installed.

Open RDP, Start>All Programs>Accesories>Remote Desktop Connection, enter the IP address of the Linux server and press connect. This will open the XRDP screen. Enter you Linux user name and password and press OK. This will take you to your Fedora desktop terminal.

If you are currently logged on to fedora this is OK. Fedora treats them as different terminals. So if you open a program on the RDP session the the program will not open on the Linux computer that you are logged into. It treats them totally separate, more like a terminal session and not a desktop sharing session.

On Linux client machine install rdesktop client software

#Yum install rdesktop

#Rdesktop –u user1 –p- 192.168.15.119

Full screen

#Rdesktop –u user1 –p- 192.168.15.119 -f

Enter user password to get the remote desktop displayed.



9 comments:

  1. Great! tested on Centos 5.6 x64. That's all that I have wanted, thanks!

    ReplyDelete
  2. Very handy. Thanks. It was what I needed to get started. You might want to update it for xrdp 0.5.0, however. I had to install a couple of extra rpm's, and run ./bootstrap and ./configure before make and make install.

    ReplyDelete
  3. Como instalar XRDP en Linux Centos

    http://neipool.blogspot.com/2012/04/como-instalar-xrdp-en-linux-centos.html

    ReplyDelete
  4. =====================
    1) Add EPEL Repo
    --------------
    a. Download EPEL RPM
    wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

    b. Import KEY
    wget http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

    rpm --import RPM-GPG-KEY-EPEL-6

    c. Install EPEL
    rpm -i epel-release-6-7.noarch.rpm
    --------------
    2) Install xrdp
    yum install xrdp

    3) Start xrdp

    /etc/init.d/xrdp start
    chkconfig xrdp on
    =====================
    Done........!!!!!!

    ReplyDelete
  5. Great.
    I tested it in CentOS 6.3 and worked.

    ReplyDelete
  6. Thank you very much. I were able to configure and connect to XRDP (on CENTOS) successfully. Thanks again for detailed and precise steps for the configuration.

    ReplyDelete
  7. Great stuff. Very easy to follow.

    How would you connect this to authenticate with an LDAP server?

    ReplyDelete
  8. how many session will work without issue in XRDP

    Kindly advice me

    ReplyDelete
  9. I have used 16 sessions without problem. There should not be limit as such.

    ReplyDelete