Manjaro (KDE) running as a rdp server

Simple question, but difficult to solve... So far... :roll_eyes:

How to make Manjaro (KDE) work as a rdp server?

NOTES:
I - We really like the rdp protocol and have used it in the past with other Linux distros (Ubuntu) as a server, but we are having a hard time getting rdp to work on Manjaro (KDE) as a server;
II - We know that there are many other options for remote access, but our usage reality requires we to use RDP, so please we ask that all answers deal exclusively with an rdp solution.

Thanks! :blush:

INTERESTING LINKS ABOUT THE SUBJECT:

https://wiki.archlinux.org/index.php/xrdp

Simple, KRDC.

sudo pacman -S krdc

Oh, wait, server.
https://docs.kde.org/trunk5/en/kdenetwork/krfb/krfb-configuration.html

sudo pacman -S krfb

Note: Make sure your firewall is open to that machine (aka port forward).

2 Likes

Yes! This is a good and quick solution, but krfb is not compatible with rdp.

Thank you so much!

RDP is a proprietary protocol by Microsoft.
What exactly are you trying to do, run applications remotely, or share the entire desktop?
Have you looked into freerdp?

1 Like

"share the entire desktop" -> Exactly! =D
"Have you looked into freerdp?" -> No. Only "xrdp".

Thanks! =D

There is also myrdp:
https://aur.archlinux.org/packages/myrdp

If your adventurous, xdg-desktop-portal with pipewire support provides rdp via wayland.
https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.portal.RemoteDesktop

https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.impl.portal.RemoteDesktop

https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.impl.portal.ScreenCast

This is where wayland shines:
https://www.phoronix.com/scan.php?page=news_item&px=KDE-Plasma-5.17-Wayland-Share
https://jgrulich.cz/2018/03/06/screen-sharing-in-plasma-wayland-session/

"Myrdp" and "freerdp" do not work as servers.

@AJSlye
Thanks! =D

We have really been trying to get rdp (xrdp) to work with Manjaro KDE (KDE5), but we are having a lot of difficulties... =|

We use a lot of documentation and information on the internet especially in these links...

https://raw.githubusercontent.com/Microsoft/linux-vm-tools/master/arch/install-config.sh

Apparently it is possible to make xrdp work with KDE 5, but we couldn't make it work with Manjaro KDE...


CURRENT SITUATION:

. LOG xrdp-sesman

less +F /var/log/xrdp-sesman.log

[20191211-14:03:27] [DEBUG] Closed socket 8 (AF_INET 127.0.0.1:3350)
[20191211-14:03:27] [INFO ] Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log  
[20191211-14:03:37] [ERROR] X server for display 10 startup timeout
[20191211-14:03:37] [CORE ] waiting for window manager (pid 5102) to exit
[20191211-14:03:37] [ERROR] X server for display 10 startup timeout
[20191211-14:03:37] [ERROR] another Xserver might already be active on display 10 - see log
[20191211-14:03:37] [DEBUG] aborting connection...
[20191211-14:03:37] [CORE ] window manager (pid 5102) did exit, cleaning up session
[20191211-14:03:37] [INFO ] calling auth_stop_session and auth_end from pid 5101
[20191211-14:03:37] [DEBUG] cleanup_sockets:
[20191211-14:03:37] [DEBUG] cleanup_sockets: deleting /tmp/.xrdp/xrdp_chansrv_socket_10
[20191211-14:03:37] [DEBUG] cleanup_sockets: deleting /tmp/.xrdp/xrdpapi_10
[20191211-14:03:37] [DEBUG] cleanup_sockets: failed to delete /tmp/.xrdp/xrdpapi_10
[20191211-14:03:37] [INFO ] ++ terminated session:  username eduardolac, display :10.0, session_pid 5101, ip 192.168.12.1:33886 - socket: 1

. LOG xrdp

less +F /var/log/xrdp.log

[20191211-14:05:19] [DEBUG] Closed socket 12 (AF_INET 192.168.12.253:3389)
[20191211-14:05:19] [DEBUG] xrdp_mm_module_cleanup
[20191211-14:05:19] [INFO ] Socket 12: AF_INET connection received from 192.168.12.1 port 34186
[20191211-14:05:19] [DEBUG] Closed socket 12 (AF_INET 192.168.12.253:3389)
[20191211-14:05:19] [DEBUG] Closed socket 11 (AF_INET 0.0.0.0:3389)
[20191211-14:05:19] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20191211-14:05:19] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20191211-14:05:19] [DEBUG] TLSv1.3 enabled
[20191211-14:05:19] [DEBUG] TLSv1.2 enabled
[20191211-14:05:19] [DEBUG] Security layer: requested 3, selected 0
[20191211-14:05:19] [INFO ] connected client computer name: eduardo-nb
[20191211-14:05:19] [INFO ] adding channel item name cliprdr chan_id 1004 flags 0xc0a00000
[20191211-14:05:19] [INFO ] adding channel item name drdynvc chan_id 1005 flags 0xc0800000
[20191211-14:05:19] [INFO ] Non-TLS connection established from 192.168.12.1 port 34186: encrypted with standard RDP security
[20191211-14:05:19] [DEBUG] xrdp_00001455_wm_login_mode_event_00000001
[20191211-14:05:19] [INFO ] Cannot find keymap file /etc/xrdp/km-00000416.ini
[20191211-14:05:19] [INFO ] Cannot find keymap file /etc/xrdp/km-00000416.ini
[20191211-14:05:19] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
[20191211-14:05:19] [WARN ] local keymap file for 0x00000416 found and doesn't match built in keymap, using local keymap file
[20191211-14:05:20] [DEBUG] Closed socket 23 (AF_UNIX)

. Remmina Behavior

It is oscillating between two screens as this image...

In fact, freerdp does come with a server implementation, it's called freerdp-shadow-cli.
man freerdp-shadow-cli
https://manpages.debian.org/stretch-backports/freerdp2-shadow-x11/freerdp-shadow-cli.1.en.html
http://manpages.ubuntu.com/manpages/eoan/man1/freerdp-shadow-cli.1.html

1 Like

Yes! You right! =D

It is sufficient to have the FreeRDP package ( http://www.freerdp.com/ ) installed.

pacman -S freerdp

Take a look here:

However, I am unable to connect. This is the log output...

[eduardolac@eduardolac-pc ~]$ freerdp-shadow-cli
[12:09:54:359] [1136:1136] [INFO][com.freerdp.server.shadow.x11] - X11 Extensions: XFixes: 1 Xinerama: 1 XDamage: 0 XShm: 0
[12:09:54:361] [1136:1136] [INFO][com.freerdp.core.listener] - Listening on 0.0.0.0:3389
[12:10:19:104] [1136:1137] [ERROR][com.winpr.thread] - Thread running, setting to detached state!
[12:10:19:111] [1136:1141] [INFO][com.freerdp.core.connection] - Client Security: NLA:1 TLS:1 RDP:0
[12:10:19:112] [1136:1141] [INFO][com.freerdp.core.connection] - Server Security: NLA:0 TLS:1 RDP:1
[12:10:19:112] [1136:1141] [INFO][com.freerdp.core.connection] - Negotiated Security: NLA:0 TLS:1 RDP:0
[12:10:19:116] [1136:1141] [INFO][com.freerdp.core.connection] - Accepted client: eduardo-nb
[12:10:19:117] [1136:1141] [INFO][com.freerdp.core.connection] - Accepted channels:
[12:10:19:117] [1136:1141] [INFO][com.freerdp.core.connection] -  cliprdr
[12:10:19:117] [1136:1141] [INFO][com.freerdp.core.connection] -  drdynvc
[12:10:19:117] [1136:1141] [INFO][com.freerdp.core.gcc] - Active rdp encryption level: NONE
[12:10:19:118] [1136:1141] [INFO][com.freerdp.core.gcc] - Selected rdp encryption method: NONE
[12:10:19:120] [1136:1141] [INFO][com.freerdp.client.shadow] - Client from 192.168.56.1 is activated (800x600@32)
[12:10:19:180] [1136:1141] [ERROR][com.freerdp.server.shadow.x11] - pam_authenticate failure: Authentication token manipulation error
[12:10:19:180] [1136:1141] [ERROR][com.freerdp.client.shadow] - client authentication failure: -1
[12:10:19:180] [1136:1141] [ERROR][com.freerdp.core.peer] - peer_recv_callback: CONNECTION_STATE_FINALIZATION - peer_recv_pdu() fail
[12:10:19:180] [1136:1141] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1
[12:10:19:180] [1136:1141] [ERROR][com.freerdp.client.shadow] - Failed to check FreeRDP file descriptor
[12:10:19:691] [1136:1137] [ERROR][com.winpr.thread] - Thread running, setting to detached state!

Yes, according to the manpage, pam + the X11 subsystem is used for authentication, maybe something in regards to pam is needed. It might be worth a look look. (examples: pam_encfs, pam_ldap, pam_mount, pam-krb5, pam-u2f,python-pam, python2-pam, kwallet-pam, etc.)

NOTE: If the server is started as root you should be prompted for authentication, if started as a user, then only the same user can authenticate.

You may need to add a ssl certificate and/or SAM authentication file as described in a post here:
https://bzehm.tumblr.com/post/184843818592/rdp-for-the-modern-linux-desktop

Alternatively, you could use the -auth switch as described here:

And/or one or more of the following switches:

/sec:<rdp|tls|nla|ext>
         Force a specific protocol security
-sec-rdp
         Disable RDP security (default:on)
-sec-tls
         Disable TLS protocol security (default:on)
-sec-nla
         Disable NLA protocol security (default:on)
+sec-ext
         Use NLA extended protocol security (default:off)
/sam-file:<file>
         NTLM SAM file for NLA authentication

I hope any of this was at all helpful.

1 Like

This problem occurs when we do not enter the password and the user together (eg. we only inform the user or neither...). Just enter the username and password that the problem no longer occurs! =D

image

THREAD CONSOLIDATION:

To access your Manjaro KDE (KDE 5, Plasma 5) remotely (thanks to @AJSlye ) via Remote Desktop Protocol (RDP) install FreeRDP ( http://www.freerdp.com/ )...

NOTE: FreeRDP is a free implementation of the Micro$$oft's RDP - Remote Desktop Protocol.

pacman -S --noconfirm freerdp

After installing FreeRDP open a terminal and run (on your server) the freerdp-shadow-cli command with the user you want to use to log in remotely...

For RDP client (Manjaro KDE) we recommend KRDC...

pacman -S --noconfirm krdc


FINAL CONSIDERATIONS:

We really like the FreeRDP as a server ("freerdp-shadow-cli"), it looks very light and is extremely simple. If it were integrated with the service manager (like "systemctl") then it would be perfect! The lack of documentation on "freerdp-shadow-cli" bothered us a bit.

We have other options like xrdp ( http://xrdp.org/ ), but it seems that xrdp has not been updated as FreeRDP and has limited support for Manjaro and/or KDE 5. We would like to see it working to compare...

Thanks! =D

3 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by