Fremde Welten

04.04.2014 16:14

Der Remote-Desktop-Zugriff zwischen Windows und Linux verbraucht normalerweise eine ganze Menge Bandbreite, Zeit und Nerven. Wäre es nicht schön, wenn Windows-Benutzer genauso einfach grafisch auf Linux-Systeme zugreifen könnten wie auf andere Windows-Maschinen, und zwar am besten noch mit ein und derselben Anwendung. Mit Xrdp, das dieser Artikel näher vorstellt, rückt dieses Ziel in erreichbare Nähe.

Bei Xrdp handelt es sich um eine Open-Source-Implementierung des Remote-Desktop-Protokolls, das die Windows Terminal Services verwenden, um sich mit Windows-Desktops zu verbinden. Das Xrdp-Paket bringt das RDP-Protokoll auf den Linux-Rechner, indem es einen X-Server bereitstellt, der Verbindungen vom Rdesktop-Programm [1] und Windows-Terminalserver-Clients annimmt.

Hat sich der Anwender verbunden und authentifiziert, bekommt er auf der Windows-Maschine einen ganz normalen Linux-Desktop präsentiert. Der Vorteil an der RDP-Lösung ist, dass sie keinen X-Server auf dem Windows-Rechner erfordert und das Linux-Display nicht exportiert werden muss.

Einen RDP-Server mit Linux aufzusetzen, ist einfach und dauert nur ein paar Minuten. Der frischgebackene Linux-Benutzer oder Windows-Administrator braucht nur Folgendes:

  • einen Benutzer-Account auf dem Linux-System
  • Remote-Zugang zum Linux-System, zum Beispiel über Secure Shell.
  • Root-Berechtigungen auf dem Linux-System.

Nach dem Herunterladen des Pakets von [2] und dem Entpacken genügt es, in das Verzeichnis zu wechseln und dort mit »make« die Übersetzung zu starten. Als Administrator installieren Sie die fertigen Programme mit »make install« . Die ausführbaren Dateien, Skripts und Bibliotheken wandern nach »/usr/local/xrdp« , die Konfigurationsdateien landen in »/etc/xrdp« .

Aus der Dokumentation wird nicht ganz klar, was nun als nächstes zu tun ist. Einiges Herumprobieren und der Email-Support durch einen der XRDP-Entwickler verhalfen im Test schließlich aber doch zum Erfolg. Wenn alles installiert ist, geben Sie als Administrator die folgenden Befehle ein:

cd /usr/local/xrdpcp xrdp_control.sh /etc/init.d/xrdp_controlchkconfig --add xrdp_controlchkconfig xrdp_control onservice xrdp_control start

Das Skript »xrdp_control« ist dafür zuständig Xrdp zu starten und zu stoppen. Die Chkconfig-Aufrufe richten den automatischen Start im Rahmen des System-Boots ein. Der letzte Befehl startet schließlich die »sesman« - und »xrdp« -Dienste.

Um von einem Windows-Rechner aus auf den Linux-RDP-Dienst zuzugreifen, wählen Sie Start | Programs | Accessories | Communications | Remote Desktop Connection. Geben Sie dann den Hostnamen oder die IP-Adresse des Linux-Rechners ein, wie in Abbildung 1 zu sehen.

 

Abbildung 1: Herstellen einer Verbindung vom Windows-Rechner aus.

Es folgt ein Dialog, der zur Eingabe von Benutzername und Passwort auffordert (Abbildung 2). Hier geben Sie die Account-Daten auf dem Linux-Rechner ein. Selbst wenn Ihre Linux-Rechner Teil einer Active-Directory-Domain sind, müssen Sie jeden RDP-Benutzer extra anlegen. Dazu erzeugen Sie zuerst eine passende Benutzergruppe und fügen dann einzelne Accounts hinzu:

Abbildung 2: In diesem Windows-Dialog muss der Anwender seinen Benutzernamen und das Passwort auf dem Linux-Server eingeben.

groupadd rdpusersuseradd -g rdpusers ajonespasswd ajones

Existiert der User-Account »ajones« bereits, fügen der folgende Befehl ihn der Gruppe »rdpusers« hinzu:

usermod -G rdpusers ajones

Obwohl eine solche Gruppe keine echte Voraussetzung für RDP ist, vereinfacht sie die Administration.

Nach erfolgreicher Anmeldung erscheint der Bildschirm aus Abbildung 3, die im Log des Session-Managers die Verbindungsaufnahme zwischen Client und Server zeigt. Man kann dort sehen, dass der Session-Manager erst den RDP-Port kontaktiert, dann den VNC-Port, um schließlich den Desktop anzuzeigen.

Abbildung 3: Die Log-Datei des Xrdp-Session-Managers gibt einige Details über die Verbindungsaufnahme preis.

Unter der Haube

Auf dem Linux-Server laufen »xrdp« und »sesman« und warten auf eingehende Verbindungen. Wenn ein Windows-Terminalserver-Client sich verbindet, verhandeln Server und Client ein Verschlüsselungs-Level und tauschen schließlich kryptographische Schlüssel aus. Der Client gibt die Farbtiefe und die Auflösung des Desktops vor.

Gibt der Benutzer einen Benutzernamen und ein Passwort ein, startet die Authentifizierung. Das Modul »libvnc« wird geladen und eine Verbindung zur lokalen Adresse 127.0.0.1 oder der in »/etc/xrdp/xrdp.ini« spezifizierten Adresse aufgebaut. Die Authentifizierungsdaten sowie Bildschirmauflösung und Farbtiefe wandern an »sesman« weiter. Findet er eine passende Sitzung mit der angegebenen Auflösung/Farbtiefe, zeigt er sie dem Benutzer an. Andernfalls startet er eine neue Xvnc-Session mit den geforderten Werten.

Fazit

Xrdp ist leicht zu installieren, einzurichten und zu benutzen. Um damit zu arbeiten, braucht man keine jahrelange Linux-Erfahrung. Auf der Windows-Seite kommt man sogar ganz ohne Installation zusätzlicher Software aus.

Auch ohne aufwändige Analyse und Messungen gibt es einige Erfahrungswerte mit RDP-Sitzungen. Bei ungefähr zwei Dutzend gleichzeitig ist ein Maximum erreicht und die Arbeitsgeschwindigkeit sinkt spürbar. Davon abgesehen ist Xrdp eines der nützlichsten Tools in jedem Cross-Platform-Werkzeugkasten.

Infos

  1. Rdesktop: http://www.rdesktop.org
  2. Xrdp: http://xrdp.sourceforge.net

Der Autor

Ken Hess ist freier Technikredakteur und Journalist. Seine Themen reichen von Open Source über Linux, und Datenbanken bis hin zur Datenvisualisierung und Virtualisierung. Er bedankt sich bei Jay Sorg von Xrdp and Matt Chapman vom Rdesktop-Projekt für ihre Hilfe bei diesem Artikel.

Ähnliche Artikel

Artikel der Woche

Workshop OpenLDAP-Server

Zentrale Benutzerverwaltung mit LDAP oder Active Directory ist heute Standard. Dennoch schrecken viele vor dem Aufbau einer solchen Infrastruktur zurück und verwalten Benutzerdaten lieber von Hand. Dieser Workshop zeigt, wie es mit OpenLDAP besser geht. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Ausgabe /2014

Cloud Computing

Cloud Computing ist für mich

  • ein Buzzword ohne konkrete Auswirkungen auf meine Arbeit.
  • eine sinnvolle Technologie, die ich allerdings so bald nicht einsetzen werde.
  • eine interessante Technologie, die ich bereits praktisch evaluiere.
  • Alltag - ich setze heute bereits Clouds produktiv und erfolgreich ein.
  • alter Wein im neuen Schlauch. Was ist der Unterschied zu Virtualisierung?

Microsoft Azure