Der Pilgermaske Blog

der andere blog - Willkommen!

RDP: Remotedesktopverbindung mit Linux

- Veröffentlicht unter Systeme von

Die letzten Tage habe ich mit einen Arbeitskollegen verschiedene Möglichkeiten gesucht, schnell und einfach, eine Remotedesktopverbindung zu einen Linux Server herzustellen. Ziel war es, ohne viel Konfiguration, auf den Desktop eines Kubuntu 12.04.4 LTS Servers, von einen Windows 7 Client, über das Internet zu zugreifen. Anforderung war, dass wir eine sehr performante Verbindung wollten, wobei wir uns deswegen für das RDP und NX Protokoll entschieden hatten. VNC als ein weiteres Protokoll steht zu sehr in dem Ruf, ein sehr lahmes Protokoll zu sein und wurde hier nicht berücksichtigt. Ein neuerer und kürzerer Artikel – speziell zu X2Go – ist hier zu finden.

Folgende Szenarien wurden getestet:

  1. Zugriff mit ‘Remotedesktopverbindung’ von Windows 7 auf: Ubuntu Linux

  2. Zugriff mit X2Go Windows Client auf: Ubuntu Linux mit X2Go Server Dienst

  3. Zugriff mit dem KRDC Client unter Kubuntu auf: Windows 7

Grundsätzlich ist es nicht schwierig eine solche Verbindung einzurichten. Vielmehr fand ich die verschiedenen Produkte an einigen Stellen etwas unausgereift. Starten wir einfach!

Umsetzung: 1.Szenario

Installiere das Paket xrdp auf dem Linux Server und prüfe danach, ob der port 3389 aktiv ist. Ob der port aktiv ist, kannst Du mit folgenden Befehl nach einem service xrdp start auf der console nachschauen:

netstat -tulpe

Entsprechende Regeln sollten diesen port in der Firewall für den Zugriff über das Internet oder dem Heimnetzwerk öffnen. Wenn keine Firewall eingesetzt wird, muss natürlich nichts konfiguriert werden.

Prüfe in /etc/default/xrdp ob dort sesman_start=yes steht. Mit folgenden Aufruf in /etc/alternatives kannst Du die (natürlich installierte) GUI (z.B. kde, lxde, gnome,…) festlegen, mit der Du arbeiten möchtest:

update-alternatives --config x-session-manager

Der Remotedesktop auf Windows 7 ist unter Start -> Alle Programme -> Zubehör -> Remotedesktopverbindung zu finden. Starte diesen, gib die IP-Adresse oder den dyndns Namen von deinen Linux Server ein – ein Anmeldenamen ist nicht notwendig! – und dann sollte ein Login Fenster erscheinen, in dem die gewünschte Verbindungsart abgefragt wird.

Wir wählen rdp-any und tippen für die IP-Adresse 127.0.0.1 oder localhost. Danach wechselt das Eingabefenster und wir geben einen Benutzer des Linux Server’s mit Passwort ein. Ignoriere in diesen Fenster die neuerliche angebotene Modul- Wahl! In der Datei /etc/xrdp/xrdp.ini kannst Du port=3389 und ip=127.0.0.1 für name=rdp-any festlegen, damit der Anwender diese Werte bei der Anmeldung nicht eingeben muss.

Wenn dann ein connection log runterrasselt und eine grafische Oberfläche erscheint, hast Du es geschafft! Das zuständige Logfile bezeichnet sich mit /var/log/xrdp-sesman.log. Der LogLevel kann in /etc/xrdp/sesman.ini festgelegt und in der /etc/xrdp/xrdp.ini sollte der crypt_level auf high (128bit) gesetzt werden, weil die low(40bit)- Verschlüsselung der Verbindung etwas sehr schwach ist.

Zusätzlich würde ich in der sesman.ini aus Sicherheitsgünden das root- Login mit AllowRootLogin=0 abschalten und die Anmeldeversuche mit MaxLoginRetry=0 nicht limitieren. Die Option KillDisconnected=1 beendet am Server alle Verbindungen, die der Anwender unsachgemäß beendet, also z.B. einfach das Fenster ohne Abmeldung schließen.

Übrigens haben nach einen update von Ubuntu die lib- Angaben in der /etc/xrdp/xrdp.ini nicht mehr gepaßt. Zur Kontrolle: Die von xrdp genutzen lib’s liegen unter /usr/lib/xrdp.

Umsetzung: 2.Szenario

X2Go ist eine Anwendung welche NX Bibliotheken einsetzt, die schon immer im Ruf standen, stabile und performante Bedingungen für eine grafische Remoteverbindung anzubieten. Die Installation möchte ich hier eigentlich gar nicht weiter beschreiben, weil die Projektseite schon eine tolle Installationsbeschreibung bereithält. Die X2Go Client Installation ist z.B. für Windows 7 wie gewohnt: downloaden, durchklicken, fertig. Die Installation von X2Go Server (siehe Installationsbeschreibung: Ubuntu – “Quick”) auf einen Ubuntu Server, erfordert vier Zeilen in einen Terminal: Fertig.

Beachte: X2Go baut seine Verbindung standardmäßig über SSH/port22 zum Linux Server auf. Achte also vorher darauf, dass openssh-server installiert ist und auch läuft. Zusätzlich muss die Option AllowTcpForwarding mit yes in der /etc/ssh/sshd_config aktiviert werden. Entsprechend muss auch der gewählte SSH port (default: 22) bei einer vorhandenen Firewall offen sein!

Eine Verbindung aufbauen ist sehr easy: Starte den X2Go Client, klicke im Menü auf das erste Symbol und fülle im erscheinenden Formular folgende Punkte aus: Sitzungsname (frei wählbar), Host (also Servername/IP-Adresse), Login (also Anwender auf Server) und SSH-Port (wenn nicht der Standard SSH Port 22). Weiter unten kann noch die Sitzungsart gewählt werden – bei einem Kubuntu wird Admina wohl KDE auswählen. Nach einem klick auf den OK Button liegt nun die Verbindung in X2Go zum Aufruf bereit. Klicke auf den Sitzungsname und gib Name/Passwort eines Server Logins an und warte. Beim ersten Mal kann der Verbindungsaufbau einige Sekunden dauern. Nach mehrmaligen Verwenden der Anwendung scheint sie schneller zu werden. Fertig.

Umsetzung: 3.Szenario

Dieses Szenario beschreibt den Aufbau eines Remotedesktop auf dem Linux Server – also einen Zugriff auf den Windows Desktop von Linux aus. Dazu installiere das Paket KRDC und klicke im Startmenü unter -> Anwendungen -> Alle Programme -> Internet auf ‘Verbindung zu Fremdrechner (KRDC)’. Direkt im Blickfeld liegt mit ‘Wähle Verbindung’ die Protokollwahl. Wie oben schon begründet, wählen wir rdp und geben die IP-Adresse vom Windows Rechner ein. Prüfe vorher, ob der port 3389 in eventuell vorhandenen Firewalls offen ist. Im erscheinenden Konfigurationsfenster sollte Admina erstmal eine vordefinierte Auflösung zum testen auswählen und nicht gleich mit eigenen Auflösungen experimentieren! Auch die Farbtiefe würde ich erst einmal konservativ (16bit) auswählen und das passende Tastatur- Layout auswählen ist wohl selbst-redend. Die folgende Benutzername und Passwort Abfrage muss natürlich mit einen Benutzer auf dem Windows Rechner übereinstimmen.

Beachte! Damit aber dieser Benutzer auch die Berechtigung für den Remote Zugang auf diesen Windows Rechner hat, muss dieser erst freigeschaltet werden: Klicke auf das Windows-Startmenu, mache einen rechten Mausklick auf den Eintrag “Computer” und wähle im Kontextmenü den Eintrag “Eigenschaften”. In dem erscheinenden Fenster klickst Du auf “Erweiterte Systemeinstellungen” und in dem dann folgenden Fenster auf den Reiter “Remote”. Wähle die Option “Verbindung von Computern zu lassen, auf denen eine beliebige Version …”. Etwas tiefer liegt der Button “Benutzer auswählen”. Standardmäßig ist der erste Benutzer im System berechtigt – weitere Anwender können dort hinterlegt werden. Fertig.

Diverses

  • Sollte der Windows RDP Client nach der Anmeldung am Linux Server nur ein schwarzes Bild liefern, kann es Sinn machen, in den Optionen der RDP Verbindung (‘Optionen einblenden’ -> ‘Anzeige’) die Farben erstmal auf 16bit zu reduzieren.
  • Mit dem Befehl netstat -an | grep 3389 (alternativ port 22 wie oben beschrieben) kannst Du RDP/SSH Verbindungen anzeigen lassen.
  • Manchmal nerven die Fenster und zeigen nicht die Taskleiste vom Remote Desktop an. Maximiere das Fenster mal, spiele mit der Auflösung (16/24bit, Einstellungen im jeweiligen RDP Client), konfiguriere die Leiste so, dass sie oben erscheint oder nutze eine andere GUI.
  • Ich würde über so eine Verbindung nicht unbedingt schwere GUI’s schleusen, wie z.B. KDE. Als funktionale und performante GUI kann ich LXDE empfehlen. Ist sehr flott, ist im X2Go Client auswählbar und arbeitet problemlos mit Xrdp zusammen. Einen kleinen Vergleich gibt es hier.

Screenshots habe ich mir mal für diesen Artikel gespart – auf den verlinkten Projektseiten sind screenshots hinterlegt.

Have fun

Comments