XRDP Installation für Ubuntu
XRDP auf Linux für Windows Remotedesktop Clients
Mit xrdp können Windows-Benutzer genauso einfach auf Linux-Systeme grafisch zugreifen wie auf andere Windows-Maschinen, und zwar am besten noch mit ein und derselben Anwendung. mit mstsc.exe, dem Windows Remotedesktop Client.
Bei xrdp handelt es sich um eine Open-Source-Implementierung des Remote-Desktop-Protokolls, das die Windows Terminal Services (RDS) verwenden, um sich mit Windows-Desktops zu verbinden. Das xrdp-Paket bringt das RDP-Protokoll auf den Linux-Rechner, indem es einen X-Server bereitstellt, der Verbindungen vom Windows-Terminalserver-Clients (mstsc) akzeptiert.
Nachdem sich der Anwender verbunden und authentifiziert hat, erhält er auf dem Windows Computer einen virtuellen X11-Desktop. Der Vorteil an der xRDP-Lösung ist, dass es keinen X-Server auf dem Windows-Rechner erfordert, und das kein zusätzlicher Client benötigt wird, wie beispielsweise der VNC Viewer.
Der xrdp-Server kann mit den Packet-Manager apt-get und yum oder dnf für die entsprechenden Linux Distribution aufgesetzt werden. sudo apt-get install xrdp
Dies sind die Schritte zur Installation von xrdp aus dem Git Repository von neutrinolabs. Der Build Prozess hier beschrieben auf Ubuntu 17.10 (Artful Aardvark).
INSTALLATION
Erst wird das Linux-System vorbereitet, hier ist es Ubuntu Mate 17.10, es werden die Abhängigkeiten installiert: (alles auf einer Zeile)
sudo apt-get install -y git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev
Die Source-Pakete aus den Github Quellen holen:
BD=`pwd`
mkdir -p "${BD}"/git/xrdpbuild
cd "${BD}"/git/xrdpbuild
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.9.5/xrdp-0.9.5.tar.gz
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.5/xorgxrdp-0.2.5.tar.gz
Erzeugen und installieren der xrdp-Server Binaries:
cd "${BD}"/git/xrdpbuild
tar xvfz xrdp-0.9.5.tar.gz
cd "${BD}"/git/xrdpbuild/xrdp-0.9.5
./bootstrap
./configure --enable-fuse --enable-mp3lame --enable-pixman
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
Erstellen und installieren von xorgxrdp:
cd "${BD}"/git/xrdpbuild
tar xvfz xorgxrdp-0.2.5.tar.gz
cd "${BD}"/git/xrdpbuild/xorgxrdp-0.2.5
./bootstrap
./configure
make
sudo make install
Den Daemon xrdp-Server starten:
sudo systemctl enable xrdp
sudo service xrdp start
Ebenso kann xrdp aus dem Github Source installieren werden. Build mit Git clone:
git clone --recursive https://github.com/neutrinolabs/xrdp
cd xrdp
./bootstrap
./configure
make
sudo make install
Die Konfiguration kann ggf. angepasst werden:
sudo vi /etc/xrdp/xrdp.ini
sudo vi /etc/xrdp/sesman.ini
Die Remotedesktop Verbindung zum Linux xrdp-Server kann nun aufgebaut werden:


ANHANG
Da Xorg X11 nicht mehr als root gestartet wird, den X11/Xwrapper von console auf anybody wechseln.
sudo sed -i 's/allowed_users=console/allowed_users=anybody/' /etc/X11/Xwrapper.config
Dies kann auch mit dem dpkg Console-UI bewerkstelligt werden.
sudo dpkg-reconfigure xserver-xorg-legacy
Möchte man eine andere Desktop Umgebung, kann der Session-Manager gewechselt werden. Hier die X11 Konfiguration für die Mate Desktop Umgebung.
echo mate-session> ~/.Xclients
chmod +x ~/.Xclients
systemctl restart xrdp.service
Zurvor muss die alternative Desktop Umgebung installiert werden, hier bei fedora.
dnf install @mate-desktop
TROUBLESHOOTING
Beim Troubleshooting können die Log-Protokolle geöffnet werden:
sudo tail -f /var/log/xrdp.log -f /var/log/xrdp-sesman.log
systemctl status xrdp.service -l
journalctl -xe
Bei Abbruch oder einfrieren der RDP Session, kann allow_channels=true auf false gesetzt werden.
sudo sed -i 's/allow_channels=true/allow_channels=false/' /etc/xrdp/xrdp.ini
service xrdp restart
Zu Testzwecke kann SELinux deaktiviert werden.
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
/usr/sbin/getenforce
Falls die Firewall den RDP Port verwirft muss der port für RDP zugelassen werden.
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
Firewall soll RDP Ports durchlassen.
sudo ufw allow 3398
sudo ufw allow 5901
Erscheint nach der Anmeldung ein schwarzer Bildschirm gefolgt mit Error Meldung:
connection to sesman ip 127.0.0.1 port 3350
sesman connect ok
sending login info to session manager, please wait...
login successful for display 11
VNC started connecting
VNC connecting to 127.0.0.1 5911
VNC error - problem connecting
some problem
Hilft das anlegen eines neuen Benutzers, anschließend mit diesem über RDP anmelden.
useradd newuser
passwd secret
Das erzeugen eines neuen Zertifikates kann ebenfalls nützlich sein.
cd /etc/xrdp
openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
Hinweis: Als Common Name der aktuell gültige hostname verwenden.
Das Zertifikat in der xrdp Konfiguration /etc/xrdp/xrdp.ini aktivieren.
security_layer=negotiate
crypt_level=high
certificate=cert.pem
key_file=key.pem
ssl_protocols=TLSv1, TLSv1.1, TLSv1.2
Quellen Link: github.com/neutrinolabs/xrdp/
Ja das ist alles gut und schön.
Für mich allerdings noch einfacher ist es, sich
1. auf dem Linuxrechner entweder Temviewer oder Anydesk zu installieren, von der Herstellerseite die zum jeweiligen Linux passende .deb herunter laden und installieren.
2. das gleiche unter Windows und/ oder Android und schon funktionierts, egal wo man ist, überall wo Internet ist, oder zu Hause im Heimnetz. In allen Richtungen
Da gebe ich Dir recht, zu AnyDesk gibt es ja auch ein Beitrag in diesem Blog. Für in Unternehmensnetzwerke stellt sich die Nutzung über RDP als die produktivere Lösung, zumindest für Windows Arbeitsplätze, den RDS nutzt automatisch die Bildschirmskalierung des jeweiligen Clients, und es muss keine zusätzliche Software auf den Clients installiert werden. Aber für die Fernwartung ist natürlich AnyDesk einfacher und erfüllt den Zweck optimal.
Bei ubuntu Mate 17.17 kommt ein black screen bei der Anmeldung, weil angeblich X11 nicht mehr als root ausgeführt wird, was zur folge hat das der Xwrapper nicht mehr autorisiert .
Eine Lösung ist, einen neuen User anlegen mit
useradd
und mit diesem Anmelden, die UserID kann auch die selbe sein. dann mituserdel -r myuser
User löschen und mituseradd myuser
wieder erstellen. siehe issue #1045