Tested on Tumbleweed (Feb 2018) with xrdp-0.9.5-1.1.x86_64.

zypper in xrdp
systemctl enable xrdp.service xrdp-sesman.service

Generate certificate:

cd /etc/xrdp
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365

In /etc/xrdp/xrdp.ini:

certificate=/etc/xrdp/cert.pem
key_file=/etc/xrdp/key.pem

Change xrdp.ini and sesman.ini change so that we listen on 0.0.0.0.

Also in sesman.ini, in the [Globals] section:

EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

We will drop a suitable startwm.sh into our home directory.

In this case we have no .xinitrc and we are normally using KDE plasma desktop, but for xrdp we are going to provide an LXDE desktop.

In home directory:

cp .xinitrc.template .xinitrc.xrdp

add the following line (or similar) to it just before

exec WINDOWMANAGER ${1+"$@"}
export WINDOWMANAGER=/usr/bin/startlxde

Copy /etc/xrdp/startwm.sh to home directory and edit it so that the function wm_start() sources .xinitrc.xrdp

wm_start()
{
    . .xinitrc.xrdp
    pre_start
    xterm
    post_start
}

Start the services:

systemctl start xrdp.service xrdp-sesman.service

Access via krdc or rdesktop should now work both locally and remotely.