Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:xrdp_archlinux

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 das home-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.

ArchLinux - Vinagre - Zertifikatsmeldung

Wenn hier die Verbindung durch drücken der Schaltfläche [Connect] bestätigt wurde, sollte nachfolgender Bildschirm erscheinen:

ArchLinux - Vinagre - Hauptbildschirm

Hier kann nun ebenfalls die Schaltfläche [Connect] mit der linken Maustaste ausgewählt werden und nachfolgendes Dialog-Fenster sollte erscheinen:

ArchLinux - Vinagre - Verbindungs-Dialog-Fenster

Hier sind nachfolgende Verbindungseinstellungen durchzuführen

Feld Wert Beschreibung
Protocol RDP Art der Verbindung und des zu verwendenden Protokolls
Host 10.0.0.10 FQDN oder IP-Adresse des Ziel-Servers
Width 1024 Zu verwendende Bildschirmbreite
Height 768 Zu verwendende Bildschirmhöhe

Anschließend ist die nun die Schaltfläche [Connect] mit der linken Maustaste auszuwählen und die Verbindung zum Ziel-Server wird hergestellt, wie nachfolgender Bildschirm zeigt. Hier ist nun die Eingabe des Remote-Benutzer mit Benutzername und dem dazugehörigen Passwort in den entsprechenden Feldern durchzuführen:

ArchLinux - Vinagre - Anmeldebildschirm

Hier sind nachfolgende Anmeldeeinstellungen durchzuführen

Feld Wert Beschreibung
Session Xvnc Art der Verbindung zum Ziel-Server
username klaus Name des Remote-Benutzers
password Passwort des Remote-Benutzers

Abschließend ist die nun die Schaltfläche [OK] mit der linken Maustaste auszuwählen und die Verbindung zum Ziel-Server sollte aufgebaut werden.

Zugriff über Microsoft™ Windows™

Nachfolgend soll beschrieben werden, wie von einem Windows™ PC mittels Microsoft™ Remote Desktop Client ein Verbindung zu einem CentOS-7-Server eine Verbindung aufgebaut werden kann.

Microsoft™ Remote Desktop Client

Nach dem erfolgreichen Start des Microsoft™ Remote Desktop Client, sollte nachfolgender Bildschirm erscheinen:

Microsoft™ Remote Desktop Client - Start

Hier kann für weitere Konfigurationen die [Optionen einblenden]-Schaltfläche gedrückt werden, wonach sich der Microsoft™ Remote Desktop Client wie folgt am Bildschirm darstellt:

Microsoft™ Remote Desktop Client - Start - Optionen einblenden

Hier wird unter

Feld Wert Beschreibung
Computer: 192.168.0.35 Die IP-Adresse, oder der DNS-Name des Remote-Geräts eingetragen
Benutzername: klaus Der Benutzername des Benutzer, unter dessen die Anmeldung erfolgen soll eingetragen.

Durch drücken der [Verbinden]-Schaltfläche, sollte dann in diesem Fall nachfolgender Dialog erscheinen:

Microsoft™ Remote Desktop Client - Verbindung - Zertifikatshinweis

:!: HINWEIS - Dieser Hinweis erscheint, da hier das Standard-Zertifikat von xrdp zur Verwendung kommt und dieses nicht vom Microsoft™ Remote Desktop Client als Vertrauenswürdig anerkannt wird.

Zu diesem Zeitunkt der Installation kann hier die [Ja]-Schaltfläche gedrückt werden, wonach dann nachfolgender Bildschirm erscheinen sollte:

Microsoft™ Remote Desktop Client - Verbindung - Login

Hier wird unter

Feld Wert Beschreibung
username klaus Der Benutzername des Benutzer, unter dessen die Anmeldung erfolgen soll eingetragen.
password ★★★ Das Passwort des Benutzer, unter dessen die Anmeldung erfolgen soll eingetragen.

Durch drücken der [OK]-Schaltfläche wird die Verbindung dann Aufgebaut.

Microsoft™ Remote Desktop Client - Eigene Auflösung

Falls die im Microsoft™ Remote Desktop Client unter dem [Anzeige]-Reiter im [Anzeigekonfiguration]-Bereich erscheinende Auswahl an Bildschirmauflösungen nicht reichen, kann mit nachfolgendem Befhel in der Microsoft™ Eingabeaufforderung den Microsoft™ Remote Desktop Client mit einer angepassten Bildschirmauflösung für das Remote-Gerät starten, wie nachfolgende Bildschirmkopien zeigen:

|Microsoft™ Eingabeaufforderung - Start - Microsoft™ Remote Desktop Client - mit eigener Bildschirmauflösung

Hier wird unter

Programm Optionen Beschreibung
mstsc.exe /w:1600 /h:900 Microsoft™ Remote Desktop Client mit dem entsprechenden Bildschirmauflösungsparmetern.
- /w:1600 = Width (Breite) - 1600 Pixel
- /h:900 = Height (Höhe) - 900 Pixel

Nach dem erfolgreichen Satrt des Microsoft™ Remote Desktop Client, sollte nachfolgender Bildschirm erscheinen:

Microsoft™ Remote Desktop Client - Start

Hier kann für weitere Konfigurationen die [Optionen einblenden]-Schaltfläche gedrückt werden, wonach sich der Microsoft™ Remote Desktop Client wie folgt am Bildschirm darstellt:

Microsoft™ Remote Desktop Client - Start - Optionen einblenden

Hier wird unter

Feld Wert Beschreibung
Computer: 192.168.0.35 Die IP-Adresse, oder der DNS-Name des Remote-Geräts eingetragen
Benutzername: klaus Der Benutzername des Benutzer, unter dessen die Anmeldung erfolgen soll eingetragen.

Im Microsoft™ Remote Desktop Client kann nun unter dem [Anzeige]-Reiter im [Anzeigekonfiguration]-Bereich erscheinende Auswahl an Bildschirmauflösungen den zuvor via Microsoft™ Eingabeaufforderung gestarteten Microsoft™ Remote Desktop Client mit dem entsprechenden Bildschirmauflösungsparmetern angezeigt werden, was nachfolgende Bildschirmkopie zeigt:

Microsoft™ Remote Desktop Client - mit eigener Bildschirmauflösung

Durch drücken der [Verbinden]-Schaltfläche, sollte dann in diesem Fall nachfolgender Dialog erscheinen:

Microsoft™ Remote Desktop Client - Verbindung - Zertifikatshinweis

:!: HINWEIS - Dieser Hinweis erscheint, da hier das Standard-Zertifikat von xrdp zur Verwendung kommt und dieses nicht vom Microsoft™ Remote Desktop Client als Vertrauenswürdig anerkannt wird.

Zu diesem Zeitunkt der Installation kann hier die [Ja]-Schaltfläche gedrückt werden, wonach dann nachfolgender Bildschirm erscheinen sollte: 
Microsoft™ Remote Desktop Client - Verbindung - Login- Eigene Bildschirmauflösung

Hier wird unter

Feld Wert Beschreibung
username klaus Der Benutzername des Benutzer, unter dessen die Anmeldung erfolgen soll eingetragen.
password ★★★ Das Passwort des Benutzer, unter dessen die Anmeldung erfolgen soll eingetragen.

Durch drücken der [OK]-Schaltfläche wird die Verbindung dann Aufgebaut.

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
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/xrdp_archlinux.txt · Zuletzt geändert: 2021/01/24 12:25 von klaus