Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
xrdp ArchLinux
xrdp akzeptiert Verbindungen von einer Vielzahl von RDP-Clients: FreeRDP, rdesktop, NeutrinoRDP und Microsoft™ Remote Desktop Client (für Windows™, macOS, iOS und Android). Der RDP-Transport wird standardmäßig mit TLS verschlüsselt.
* Quellen
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Voraussetzungen
Es soll als Grundlage eine Installation in den Varianten:
oder
und die zusätzlich noch benötigten Installationen für das
durchgeführt werden, auf die dann aufbauend die noch benötigte Installation für eine grafische Benutzeroberfläche, hier z.B.
sukzessive durchgeführt werden soll.
Installation
Zur Installation von xrdp wird vorerst nur nachfolgendes Pakete benötigt:
HINWEIS - Beim Paket xrdp-bin-git
wurde die Abhängigkeit vom Paket tigervnc
auf tigervnc-server
abgeändert!
Mit nachfolgendem Befehl, wird das Paket xrdp-bin-git
installiert:
# pikaur --noconfirm -S xrdp-bin-git
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket xrdp-bin-git
installiert wurden.
# pikaur -Qil xrdp-bin-git Name : xrdp-bin-git Version : 1:0.9.15.r10.g43945e2d-1 Description : Forked from xrdp-git. Replace the dependence of tigervnc with tigervnc-server. Architecture : x86_64 URL : https://github.com/neutrinolabs/xrdp Licenses : Apache Groups : None Provides : xrdp xrdp-git Depends On : tigervnc-server libxrandr lame opus fuse Optional Deps : None Required By : None Optional For : None Conflicts With : xrdp xrdp-git Replaces : None Installed Size : 2.23 MiB Packager : Unknown Packager Build Date : Sun 24 Jan 2021 07:23:28 AM CET Install Date : Sun 24 Jan 2021 07:24:19 AM CET Install Reason : Explicitly installed Install Script : Yes Validated By : None xrdp-bin-git /etc/ xrdp-bin-git /etc/pam.d/ xrdp-bin-git /etc/pam.d/xrdp-sesman xrdp-bin-git /etc/xrdp/ xrdp-bin-git /etc/xrdp/cert.pem xrdp-bin-git /etc/xrdp/key.pem xrdp-bin-git /etc/xrdp/km-00000406.ini xrdp-bin-git /etc/xrdp/km-00000407.ini xrdp-bin-git /etc/xrdp/km-00000409.ini xrdp-bin-git /etc/xrdp/km-0000040a.ini xrdp-bin-git /etc/xrdp/km-0000040b.ini xrdp-bin-git /etc/xrdp/km-0000040c.ini xrdp-bin-git /etc/xrdp/km-00000410.ini xrdp-bin-git /etc/xrdp/km-00000411.ini xrdp-bin-git /etc/xrdp/km-00000412.ini xrdp-bin-git /etc/xrdp/km-00000414.ini xrdp-bin-git /etc/xrdp/km-00000415.ini xrdp-bin-git /etc/xrdp/km-00000416.ini xrdp-bin-git /etc/xrdp/km-00000419.ini xrdp-bin-git /etc/xrdp/km-0000041d.ini xrdp-bin-git /etc/xrdp/km-00000807.ini xrdp-bin-git /etc/xrdp/km-00000809.ini xrdp-bin-git /etc/xrdp/km-0000080a.ini xrdp-bin-git /etc/xrdp/km-0000080c.ini xrdp-bin-git /etc/xrdp/km-00000813.ini xrdp-bin-git /etc/xrdp/km-00000816.ini xrdp-bin-git /etc/xrdp/km-0000100c.ini xrdp-bin-git /etc/xrdp/km-00010409.ini xrdp-bin-git /etc/xrdp/km-19360409.ini xrdp-bin-git /etc/xrdp/pulse/ xrdp-bin-git /etc/xrdp/pulse/default.pa xrdp-bin-git /etc/xrdp/reconnectwm.sh xrdp-bin-git /etc/xrdp/sesman.ini xrdp-bin-git /etc/xrdp/startwm.sh xrdp-bin-git /etc/xrdp/xrdp.ini xrdp-bin-git /etc/xrdp/xrdp_keyboard.ini xrdp-bin-git /usr/ xrdp-bin-git /usr/bin/ xrdp-bin-git /usr/bin/xrdp xrdp-bin-git /usr/bin/xrdp-chansrv xrdp-bin-git /usr/bin/xrdp-dis xrdp-bin-git /usr/bin/xrdp-genkeymap xrdp-bin-git /usr/bin/xrdp-keygen xrdp-bin-git /usr/bin/xrdp-sesadmin xrdp-bin-git /usr/bin/xrdp-sesman xrdp-bin-git /usr/bin/xrdp-sesrun xrdp-bin-git /usr/include/ xrdp-bin-git /usr/include/ms-erref.h xrdp-bin-git /usr/include/ms-fscc.h xrdp-bin-git /usr/include/ms-rdpbcgr.h xrdp-bin-git /usr/include/ms-rdpefs.h xrdp-bin-git /usr/include/ms-rdpegdi.h xrdp-bin-git /usr/include/ms-rdpele.h xrdp-bin-git /usr/include/ms-rdperp.h xrdp-bin-git /usr/include/ms-smb2.h xrdp-bin-git /usr/include/painter.h xrdp-bin-git /usr/include/rfxcodec_common.h xrdp-bin-git /usr/include/rfxcodec_decode.h xrdp-bin-git /usr/include/rfxcodec_encode.h xrdp-bin-git /usr/include/xrdp_client_info.h xrdp-bin-git /usr/include/xrdp_constants.h xrdp-bin-git /usr/include/xrdp_rail.h xrdp-bin-git /usr/include/xrdp_sockets.h xrdp-bin-git /usr/lib/ xrdp-bin-git /usr/lib/libpainter.so xrdp-bin-git /usr/lib/libpainter.so.0 xrdp-bin-git /usr/lib/libpainter.so.0.0.0 xrdp-bin-git /usr/lib/librfxencode.so xrdp-bin-git /usr/lib/librfxencode.so.0 xrdp-bin-git /usr/lib/librfxencode.so.0.0.0 xrdp-bin-git /usr/lib/pkgconfig/ xrdp-bin-git /usr/lib/pkgconfig/libpainter.pc xrdp-bin-git /usr/lib/pkgconfig/rfxcodec.pc xrdp-bin-git /usr/lib/pkgconfig/xrdp.pc xrdp-bin-git /usr/lib/systemd/ xrdp-bin-git /usr/lib/systemd/system/ xrdp-bin-git /usr/lib/systemd/system/xrdp-sesman.service xrdp-bin-git /usr/lib/systemd/system/xrdp.service xrdp-bin-git /usr/lib/xrdp/ xrdp-bin-git /usr/lib/xrdp/libcommon.so xrdp-bin-git /usr/lib/xrdp/libcommon.so.0 xrdp-bin-git /usr/lib/xrdp/libcommon.so.0.0.0 xrdp-bin-git /usr/lib/xrdp/libmc.so xrdp-bin-git /usr/lib/xrdp/libscp.so xrdp-bin-git /usr/lib/xrdp/libscp.so.0 xrdp-bin-git /usr/lib/xrdp/libscp.so.0.0.0 xrdp-bin-git /usr/lib/xrdp/libvnc.so xrdp-bin-git /usr/lib/xrdp/libxrdp.so xrdp-bin-git /usr/lib/xrdp/libxrdp.so.0 xrdp-bin-git /usr/lib/xrdp/libxrdp.so.0.0.0 xrdp-bin-git /usr/lib/xrdp/libxrdpapi.so xrdp-bin-git /usr/lib/xrdp/libxrdpapi.so.0 xrdp-bin-git /usr/lib/xrdp/libxrdpapi.so.0.0.0 xrdp-bin-git /usr/lib/xrdp/libxup.so xrdp-bin-git /usr/share/ xrdp-bin-git /usr/share/licenses/ xrdp-bin-git /usr/share/licenses/xrdp-git/ xrdp-bin-git /usr/share/licenses/xrdp-git/COPYING xrdp-bin-git /usr/share/man/ xrdp-bin-git /usr/share/man/man1/ xrdp-bin-git /usr/share/man/man1/xrdp-dis.1.gz xrdp-bin-git /usr/share/man/man5/ xrdp-bin-git /usr/share/man/man5/sesman.ini.5.gz xrdp-bin-git /usr/share/man/man5/xrdp.ini.5.gz xrdp-bin-git /usr/share/man/man8/ xrdp-bin-git /usr/share/man/man8/xrdp-chansrv.8.gz xrdp-bin-git /usr/share/man/man8/xrdp-genkeymap.8.gz xrdp-bin-git /usr/share/man/man8/xrdp-keygen.8.gz xrdp-bin-git /usr/share/man/man8/xrdp-sesadmin.8.gz xrdp-bin-git /usr/share/man/man8/xrdp-sesman.8.gz xrdp-bin-git /usr/share/man/man8/xrdp-sesrun.8.gz xrdp-bin-git /usr/share/man/man8/xrdp.8.gz xrdp-bin-git /usr/share/xrdp/ xrdp-bin-git /usr/share/xrdp/ad24b.bmp xrdp-bin-git /usr/share/xrdp/ad256.bmp xrdp-bin-git /usr/share/xrdp/cursor0.cur xrdp-bin-git /usr/share/xrdp/cursor1.cur xrdp-bin-git /usr/share/xrdp/sans-10.fv1 xrdp-bin-git /usr/share/xrdp/xrdp24b.bmp xrdp-bin-git /usr/share/xrdp/xrdp256.bmp xrdp-bin-git /usr/share/xrdp/xrdp_logo.bmp
iptables Regel
Damit der xrdp-Dienst/Daemon auch erreichbar ist und nicht die Remote-Desktop-Verbindung vom Paketfilter iptables
blockiert wird, muss nachfolgende Regel zum iptables
-Regelwerk hinzugefügt werden.
Um die aktuellen iptables
-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 1562 1266K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 1 60 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 39 1248 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Nachfolgender Befehl, fügt folgende iptables
-Regel dem iptables
-Regelwerk nach der Position 5 hinzu, ohne das der Paketfilter angehalten werden muss:
-A INPUT -p tcp --dport 3389 -j ACCEPT
und hier die Befehle:
# iptables -I INPUT 5 -p tcp --dport 3389 -j ACCEPT
Ein erneute Abfrage des iptables
-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 70 5752 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3389 6 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Die neue Zeile ist an Position 5 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):
... 5 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ...
Um diese iptables
-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables
-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
# iptables-save > /etc/iptables/iptables.rules
Konfiguration
~/.xinitrc
Die Installation von ArchLinux inklusive der genannten xrdp ArchLinux - Voraussetzungen inklusive des ArchLinux - Minimal Desktop GNOME, beinhaltet auch die Installation des GDM (Gnome Dsiplay Managers).
Der genannte GDM (Gnome Display Managers) verwendet jedoch nicht die nachfolgenden Konfigurationsdateien
/etc/X11/xinit/xinitrc
~/.xinitrc
(~/
steht für dashome
-Verzeichnis des jeweiligen Benutzers)
sondern eigene gesonderte Mechanismen, nach dem Starten den GNOME-Desktop mittels gnome-session
zu starten.
Da aber unter xrdp ein Start-Skript den Start des Window-Managers übernimmt, ist es ratsam und nachfolgend auch erforderlich eine Kopie der Konfigurationsdatei
/etc/X11/xinit/xinitrc
in das home
-Verzeichnis des jeweiligen Benutzers, welcher sich via RDP (Remote Desktop Prtocol verbinden soll, mit nachfolgendem Dateinamen
~/.xinitrc
zu kopieren, ohne das dies das Startverhalten mittels GDM (Gnome Dsiplay Managers) beeinflusst.
Dies kann mit nachfolgendem Befehl hier z.B. für den
- Benutzer
-o klaus
, welcher in der - Gruppe
-g klaus
ist und diese Besitzrechte sollen aus so gesetzt werden, mit den - Dateirechten
-m 644
und mit - Erhalt des Zeitstempel der original Datei
-p
wie folgt durchgeführt werden:
# install -o klaus -g klaus -m 644 -p -v /etc/X11/xinit/xinitrc /home/klaus/.xinitrc '/etc/X11/xinit/xinitrc' -> '/home/klaus/.xinitrc'
Ob das Kopieren erfolgreich durchgeführt wurde, kann mit nachfolgendem Befehl überprüft werden:
# ls -l /home/klaus/.xinitrc -rw-r--r-- 1 klaus klaus 739 Oct 10 16:27 /home/klaus/.xinitrc
Anschließend sind nun in der so neu entstandenen Konfigurationsdatei nachfolgende Änderungen durchzuführen:
Vorher (Nur relevanter Ausschnitt):
twm & xclock -geometry 50x50-1+1 & xterm -geometry 80x50+494+51 & xterm -geometry 80x20+494-0 & exec xterm -geometry 80x66+0+0 -name login
Nachher (Nur relevanter Ausschnitt):
# Tachtler - disabled - # twm & # xclock -geometry 50x50-1+1 & # xterm -geometry 80x50+494+51 & # xterm -geometry 80x20+494-0 & # exec xterm -geometry 80x66+0+0 -name login # Tachtler - new - export XDG_SESSION_TYPE=x11 export GDK_BACKEND=x11 exec gnome-session
HINWEIS - Die so erzeugt und geänderte Konfigurationsdatei ~/.xinitrc
wird nun vom Skript
/etc/xrdp/startwm.sh
gefunden und zum Starten des GNOME-Desktop verwendet.
/etc/xrdp/km-00000000.ini
Damit beim Anmeldebildschirm von xrdp auch eine hier Deutsche Tastaturbelegung - (keyboard layout) zur Verfügung steht, ist nachfolgende Konfiguration durchzuführen.
Die Deutsche Tastaturbelegung - (keyboard layout) ist bereits im Paket xrdp-bin-git
enthalten und ist in nachfolgendem Verzeichnis mit nachfolgendem Dateinamen:
/etc/xrdp/km-00000407.ini
zu finden.
Da beim Starten von xrdp nach einer Datei in nachfolgendem Verzeichnis mit nachfolgendem Namen
/etc/xrdp/km-00000000.ini
gesucht wird und diese Tastaturbelegung - (keyboard layout) dann auch beim xrdp verwendet wird, kann mit nachfolgendem Befehl einfach das Deutsche Tastaturbelegung - (keyboard layout) - kopiert werden und somit die Deutsche Tastaturbelegung - (keyboard layout) eingestellt werden:
# cp -a /etc/xrdp/km-00000407.ini /etc/xrdp/km-00000000.ini
Ob das Kopieren erfolgreich durchgeführt wurde, kann mit nachfolgendem Befehl überprüft werden:
# ls -l /etc/xrdp/km-00000000.ini -rw-r--r-- 1 root root 10943 Jan 24 07:23 /etc/xrdp/km-00000000.ini
/etc/xrdp/xrdp.ini
Nachfolgende Änderungen sind rein parktischer und kosmetischer Art. Nachfolgend sollen alle möglichen Verbindungsarten aus dem Menüfenster ausgebledet werden, welche nicht genutz werden (können).
Dazu sind nachfolgende Zeilen in der Konfigurationsdatei
/etc/xrdp/xrdp.ini
auszukommentieren/dekativieren:
Vorher (Nur relevanter Ausschnitt):
; Some session types such as Xorg, X11rdp and Xvnc start a display server. ; Startup command-line parameters for the display server are configured ; in sesman.ini. See and configure also sesman.ini. [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 [Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 #xserverbpp=24 #delay_ms=2000 ; Disable requested encodings to support buggy VNC servers ; (1 = ExtendedDesktopSize) #disabled_encodings_mask=0 [vnc-any] name=vnc-any lib=libvnc.so ip=ask port=ask5900 username=na password=ask #pamusername=asksame #pampassword=asksame #pamsessionmng=127.0.0.1 #delay_ms=2000 [neutrinordp-any] name=neutrinordp-any lib=libxrdpneutrinordp.so ip=ask port=ask3389 username=ask password=ask ; You can override the common channel settings for each session type #channel.rdpdr=true #channel.rdpsnd=true #channel.drdynvc=true #channel.cliprdr=true #channel.rail=true
Nachher (Nur relevanter Ausschnitt):
; Some session types such as Xorg, X11rdp and Xvnc start a display server. ; Startup command-line parameters for the display server are configured ; in sesman.ini. See and configure also sesman.ini. # Tachtler - disabled - #[Xorg] #name=Xorg #lib=libxup.so #username=ask #password=ask #ip=127.0.0.1 #port=-1 #code=20 [Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 #xserverbpp=24 #delay_ms=2000 ; Disable requested encodings to support buggy VNC servers ; (1 = ExtendedDesktopSize) #disabled_encodings_mask=0 [vnc-any] name=vnc-any lib=libvnc.so ip=ask port=ask5900 username=na password=ask #pamusername=asksame #pampassword=asksame #pamsessionmng=127.0.0.1 #delay_ms=2000 # Tachtler - disabled - #[neutrinordp-any] #name=neutrinordp-any #lib=libxrdpneutrinordp.so #ip=ask #port=ask3389 #username=ask #password=ask ; You can override the common channel settings for each session type #channel.rdpdr=true #channel.rdpsnd=true #channel.drdynvc=true #channel.cliprdr=true
Daemons/Dienste einrichten
Um einen xrdp, welcher als Dienste/Deamons als Hintergrundprozesse laufen, auch nach einem Neustart des Servers zur Verfügung zu haben, sollen die Dienste/Daemons mit dem Server mit gestartet werden, was mit nachfolgendem Befehl eingerichtet werden kann:
# systemctl enable xrdp.service xrdp-sesman.service Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /usr/lib/systemd/system/xrdp.service. Created symlink /etc/systemd/system/multi-user.target.wants/xrdp-sesman.service → /usr/lib/systemd/system/xrdp-sesman.service.
Eine Überprüfung, ob beim Neustart der xrdp
-Dienst/Deamon und der xrdp-sesman
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -E ^xrdp xrdp-sesman.service enabled disabled xrdp.service enabled disabled
bzw.
# systemctl is-enabled xrdp xrdp-sesman enabled enabled
Daemons/Dienste starten
Um die benötigten Daemons/Dienste von xrdp zu starten muss der xrdp
-Dienst/Deamon und der xrdp-sesman
-Dienst/Deamon mit nachfolgendem Befehl gestartete werden:
# systemctl start xrdp.service xrdp-sesman.service
Ob die benötigten Daemons/Dienste, sprich der xrdp
-Dienst/Deamon und der xrdp-sesman
-Dienst/Deamon auch tatsächlich als Hintergrundprozess läuft, kann mit nachfolgendem Befehl überprüft werden (Es sollte eine Ausgabe wie nachfolgend dargestellt, erfolgen - es kommt auf die zweite Zeile an!):
# systemctl status xrdp.service ● xrdp.service - xrdp daemon Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; vendor pres> Active: active (running) since Sun 2021-01-24 10:11:26 CET; 9min ago Docs: man:xrdp(8) man:xrdp.ini(5) Process: 498 ExecStart=/usr/bin/xrdp (code=exited, status=0/SUCCESS) Main PID: 502 (xrdp) Tasks: 1 (limit: 3338) Memory: 2.7M CGroup: /system.slice/xrdp.service └─502 /usr/bin/xrdp Jan 24 10:11:25 vml010 xrdp[498]: [INFO ] address [0.0.0.0] port [3389] mode 1 Jan 24 10:11:25 vml010 xrdp[498]: [INFO ] listening to port 3389 on 0.0.0.0 Jan 24 10:11:25 vml010 xrdp[498]: [INFO ] xrdp_listen_pp done Jan 24 10:11:25 vml010 xrdp[498]: daemon process 502 started ok Jan 24 10:11:25 vml010 systemd[1]: xrdp.service: Can't open PID file /run/xrdp.> Jan 24 10:11:26 vml010 systemd[1]: Started xrdp daemon. Jan 24 10:11:27 vml010 xrdp[502]: [INFO ] starting xrdp with pid 502 Jan 24 10:11:27 vml010 xrdp[502]: [INFO ] address [0.0.0.0] port [3389] mode 1 Jan 24 10:11:27 vml010 xrdp[502]: [INFO ] listening to port 3389 on 0.0.0.0 Jan 24 10:11:27 vml010 xrdp[502]: [INFO ] xrdp_listen_pp done
und
# systemctl status xrdp-sesman.service ● xrdp-sesman.service - xrdp session manager Loaded: loaded (/usr/lib/systemd/system/xrdp-sesman.service; enabled; vend> Active: active (running) since Sun 2021-01-24 10:11:25 CET; 10min ago Docs: man:xrdp-sesman(8) man:sesman.ini(5) Process: 493 ExecStart=/usr/bin/xrdp-sesman (code=exited, status=0/SUCCESS) Main PID: 497 (xrdp-sesman) Tasks: 1 (limit: 3338) Memory: 1.9M CGroup: /system.slice/xrdp-sesman.service └─497 /usr/bin/xrdp-sesman Jan 24 10:11:25 vml010 systemd[1]: Starting xrdp session manager... Jan 24 10:11:25 vml010 xrdp-sesman[497]: [INFO ] starting xrdp-sesman with pid > Jan 24 10:11:25 vml010 systemd[1]: Started xrdp session manager. Jan 24 10:11:25 vml010 xrdp-sesman[497]: [INFO ] listening to port 3350 on 127.>
Zugriff über Linux: vinagre
Nachfolgend soll der Zugriff über Linux und Vinagre durchgeführt werden.
Nach dem Start von Vinagre sollte sich einmalig nachfolgedes Fenster zeigen, in dem die Verbindung zu einem Rechner/Server und dessen Zertifkat zu überprüfen ist.
Wenn hier die Verbindung durch drücken der Schalfläche [Connect] bestätigt wurde, sollte nachfolgender Bildschirm erscheinen:
Hier kann nun ebenfalls die Schalfläche [Connect] mit der linken Maustaste ausgewählt werden und nachfolgendes Dialog-Fenster sollte erscheinen:
Problembehebung
/etc/pam.d/system-auth
Falls nach dem Erscheinen des Anmeldebildschirms und nach der Eingabe der Anmeldedaten der die xrdp Verbindung sofort wieder beendet wird, handelt es sich aktuell um ein bug/issue - No user session created with xrdp and pam_systemd_home account module #1684 in
/etc/pam.d/system-auth
Die Konfigurationsdatei /etc/pam.d/system-auth
muss wie folgt geändert werden und der Eintrag
-account [success=1 default=ignore] pam_systemd_home.so
muss auskommentiert/deaktiviert werden, wie nachfolgende komplette Konfigurationsdatei zeigt:
#%PAM-1.0 auth required pam_faillock.so preauth # Optionally use requisite above if you do not want to prompt for the password # on locked accounts. auth [success=2 default=ignore] pam_unix.so try_first_pass nullok -auth [success=1 default=ignore] pam_systemd_home.so auth [default=die] pam_faillock.so authfail auth optional pam_permit.so auth required pam_env.so auth required pam_faillock.so authsucc # If you drop the above call to pam_faillock.so the lock will be done also # on non-consecutive authentication failures. # Tachtler - disabled - #-account [success=1 default=ignore] pam_systemd_home.so account required pam_unix.so account optional pam_permit.so account required pam_time.so -password [success=1 default=ignore] pam_systemd_home.so password required pam_unix.so try_first_pass nullok shadow password optional pam_permit.so session required pam_limits.so session required pam_unix.so session optional pam_permit.so