Remote Desktop: eigene Desktopsession mit XRDP

Im ersten Teil der Remote-Desktop Serie geht es um XRDP. Damit kann ein entfernter Benutzer eine eigenständige Desktopsession zum Server aufbauen. Andere Benutzer des gleichen Servers können parallel dazu eine eigene Verbindung aufbauen, ohne das sich die Benutzer in die Quere kommen. Allerdings darf ein User nur einmal eingeloggt sein.

Remote Desktop: eigene Desktopsession mit XRDP

Da es sich bei der Lösung um eine eigenständige Desktopumgebung abseits vom Monitor handelt, gibt es hier keine Probleme mit Waylanddesktops. XRDP bietet eine Xorg Verbindung ohne GPU Support an, was die Auswahl der eigentlichen Desktopumgebung einschränkt.

Die Installation

Debian & Ubuntu:

sudo apt-get update && sudo apt-get upgrade && sudo apt install xrdp

Fedora:

sudo dnf install xrdp-selinux xrdp

Die Desktopumgebung

Jetzt müssen wir uns für eine Desktopumgebung entscheiden, weil es bei RDP leider keine Vorauswahl seitens des Clienten gibt. Es bieten sich GPU unabhängige Desktops wie GNOME oder XFCE4 an. Zum Glück ist das total einfach:

echo „gnome“ > ~/.xsession

oder

echo „xfce4-session“ > ~/.xsession

Dies muß jeder Benutzer selbst machen oder durch den Superuseraccount regel lassen. Was nicht funktioniert ist Cinnamon, soweit ich das bisher erlebt habe.

Die Firewall öffnen

Da sich die eingesetzten Firewalls pro Distribution stark unterscheiden, hier einige Vorschläge:

Debian & Ubuntu: sudo ufw allow 3389/tcp
Fedora: sudo firewall-cmd –permanent –add-port=3389/tcp
IP-Tables: sudo iptables -A INPUT -j ACCEPT -m tcp -p tcp –dport 3389

Von Fedora abgesehen, müßtet Ihr die Regeln permanent hinzufügen z.B. also in /etc/sysconfig/iptables eintragen.

XRDP Starten

In einer Idealen Welt, würde man nun „systemctl enable –now xrdp“ ausführen und es geht. Da leben wir aber nicht 🙂

In /etc/xrdp/sesman.ini müßtet Ihr sicherstellen, daß folgendes so drinsteht:

[Xorg]
; Specify the path of non-suid Xorg executable. It might differ depending
; on your distribution and version. Find out the appropriate path for your
; environment. The typical path is known as follows:
;
; Fedora 26 or later : param=/usr/libexec/Xorg
; Debian 9 or later : param=/usr/lib/xorg/Xorg
; Ubuntu 16.04 or later : param=/usr/lib/xorg/Xorg
; Arch Linux : param=/usr/lib/Xorg
; CentOS 7 : param=/usr/bin/Xorg or param=Xorg
; CentOS 8 : param=/usr/libexec/Xorg
; FreeBSD (from 2022Q4) : param=/usr/local/libexec/Xorg
;
param=/usr/libexec/Xorg
; Leave the rest parameters as-is unless you understand what will happen.
param=-config
param=xrdp/xorg.conf
param=-noreset
param=-nolisten
param=tcp
param=-logfile
param=.xorgxrdp.%s.log

[Xvnc]
param=Xvnc
param=-bs
param=-nolisten
param=tcp
param=-localhost
param=-dpi
param=96

Damit erklärt sich auch, wieso es kein Waylandproblem mit XRDP gibt, es wird ja nicht benutzt 😉

Jetzt können wir das starten: systemctl enable –now xrdp

Mein Tip

… Ja, ich bin alt, ich schreibe Tip noch einem p :þ… können wir dann? Mein Tip für Euch: enabled es nicht per se.

Ihr könnt den Server auf 127.0.0.1 binden lassen, dann kommt Ihr nur per SSH-Tunnel oder lokal drauf. Letzteres wäre für ein „REMOTE“ Desktoptool ja eigentlich völlig unsinnig, aber es gibt Spezialfälle:

Wenn man z.B. Desktopprogramme für Spezialuser, wie einen spezialisierten Online-Bankingaccount, benutzen möchte, dann kann man sich per RDP einfach einloggen ohne den Benutzer wechseln zu müssen. Das kann z.b. auch nützlich sein, wenn man eine kleine Linux Internetshow betreibt und mit einem Nicht-Admin-User mal was zeigen will oder auch, um als Root mit einem Desktoptool etwas zu machen. Möglichkeiten dies zu verwenden gibt es viele.

Im Normalfall sollte man sich von außen auch nicht direkt per RDP einloggen können, sondern immer über einen sicheren SSH Tunnel gehen, denn RDP authentifiziert gegen PAM und das benutzt im Vergleich zu OpenSSH-Schlüsseln, schwache Passwörter als Schutz. Da ist ein OpenSSH-Schlüssel jederzeit vorzuziehen.

Vermeiden lässt sich eine direkte Erreichbarkeit nicht, wenn man im Netz einen Server betreibt, der für Benutzer per RDP erreichbar sein muß. XRDP kann hier insofern für etwas Sicherheit sorgen, wenn Rootzugriffe verboten sind. Aber auch im Netz kann ich allen Beteiligten nur dazu raten, z.b. auf VPNs zu setzen oder einen SSH-Tunnel zu nutzen. Bei den ganzen Kriminellen da draußen, muß man wirklich jede Schutzschicht aktivieren, die geht.

Blog-Stats seit Einführung des Trafficcache

Ich hatte ja letztes Jahr einen Apache Trafficserver vor das Blog geschaltet, damit die Aufrufzeit des Blogs besser wird. Das hat auch funktioniert, führte aber in den Statstools der Webseite, dazu, daß weniger angezeigt wird, weil weniger im WordPress ankommt.

Blog-Stats seit Einführung des Trafficcache

Schauen wir doch mal rein, was im März 2023 wirklich gewesen ist… 😀

Die Liste mit den TOP 30 URLS habe ich um Seiten wie Javascript, CSS, FEEDS usw. bereinigt. Da die bei allen Seiten beteiligt sind, ist klar, daß die mehr Aufrüfe als die echten Seiten haben. Daher die komischen Positionen in der TOP-Liste 😉 An Platz ein war die XMLRPC, weil die Hacker die mit Forenspam bombardieren 😀

Der Anfang des Jahres ist seit Bestehen des Blogs eher schwach besetzt, was ein Blick in die letzten 6 Monate bestätigt:

Die Zahlen für April sind logischerweise noch nicht relevant.

Falls Ihr auch ein Cache haben wollt

Gibt es da mehrere Möglichkeiten: Ihr geht zu CloudFlare, zu meiner Firma, oder setzt Euch das Cache selbst auf. Letzteres ist eine tolle Kompetenzübung in Sachen Web, weil Ihr alle den Spaß erfahren werdet, den ich auch hatte 🙂 Da Ihr den ganzen Loggingkram dann selbst bauen müßt, könnte das den einen oder anderen überfordern. Ist echt nicht für jeden was. Zum Auswerten habe ich Webalizer nutzen müssen, weil alle anderen noch komplizierter Anzubinden waren oder gar nicht erst funktioniert hätten.

Den Apache Trafficserver könnt Ihr aus dem Fedora Repo bekommen, oder bei apache.org .

Remote Desktop: Einführung

Von Remote Desktop Lösungen für Linux habt Ihr schon gehört: man startet ein Programm auf dem PC den man kontrollieren will und eins auf dem PC mit dem man auf den ersten PC drauf möchte, um diesen aus der Ferne zu steuern. Da gibt es jetzt schon min. zwei verschiedene Ansätze wie ein Benutzer das nutzen möchte.

Remote Desktop: Einführung

In dieser Artikelserie geht es um verschiedene Arten einen Remote-Desktop-Service mit VNC und RDP zu nutzen.

Zunächst müssen wir mal unterscheiden, wie ein Benutzer den Remote-Desktop nutzen will: als Spiegel der aktuelle eingeloggten Desktopsession oder als eigenständige Desktopsession.

Der Spiegel meint, daß ich mich die laufende Desktopsitzung einklinken kann. Das machen VNC, Teamviewer, Anydesk, RustDesk und Windows RDP so. Wir können aber auch eine eigene Desktopsession bekommen, die nichts mit dem zu tun hat, was auf dem Monitor zusehen ist. Das wird z.b. von XenDesktop und XRDP gemacht, wobei XenDesktop die lokale GPU benutzt um von den Grafikfähigkeiten des Clientens zu profitieren, wenn das geht. Da sich das aber an professionelle Benutzer wendet, werde ich auf XenDesktop nicht näher eingehen.

Da es jetzt nicht nur das eine Programm gibt, mit dem man das gewünscht erreichen kann, könnt Ihr Euch vorstellen, daß ich hier nicht ins Detail jeder dieser Lösungen gehen kann.Eine Sache können wir aber vorher schon besprechen.

Xorg gegen Wayland

Die meisten Remote Lösungen funktionieren nur mit Xorg vernünftig. Bei einer Waylandsession wird sehr oft nur ein schwarzer Bildschirm zu sehen sein. Das liegt daran, daß Wayland das Capturen von Bildinhalten als Sicherheitslücke einstuft und es daher nicht erlaubt. Das hindert aber Anwendungen nicht daran, auch mit Wayland zu funktionieren z.B. RustDesk kann das schon. Da geht es eher darum, daß nicht eine zufällig ausgeführte App den Bildschirm mitschneidet, sondern nur Apps, die das auch „dürfen“ z.B. FireFox,Chromium usw.

Hinweis: Ich werde nur dann auf Wayland hinweisen, wenn ich weiß, daß es geht. Ansonsten nehmt einfach an, daß es nur mit Xorg funktioniert. Ferner kommt es natürlich auch darauf an, welche Version von Wayland Eure Distro gerade bereitstellt. Das Ergebnis kann sich also jederzeit durch Updates ändern.

Im ersten Teil der Serie, schauen wir uns „XRDP“ an. „XRDP“ ist die anspruchsvollste Lösung, da erstmal einiges an Setup nötig ist um ein Ergebnis zu bekommen. Der Teil kommt dann in einigen Tagen zu Euch.

Der Universalclient: Remmina

In Vorbereitung des Artikels könnt Ihr Euch schon einmal Remmina als RDP/VNC Clienten installieren. Das ist ein Superprogramm, wenn man sehr viele Remiteverbindungen managen muß. Es kann auch SSL Tunnel benutzen um durch die Firewalls zu gelangen und hat myriaden von Einstellungen für Euch. Besser geht es wohl unter Linux nicht 🙂

 

Tip: Wer von Euch einen Vorabblick auf diese Serie haben möchte, kommt am besten am 4.4. zu Linux am Dienstag