linux_wiki:remote_gui_desktops

Remote GUI Desktops

General Information

Remote desktop application setup.

Checklist


X2Go

X2Go is “an open source remote desktop software for Linux that uses the NX technology protocol”.


Desktop Environment Compatibility


  • CentOS 6 and 7: Install x2go server
    yum install fuse-sshfs x2goserver x2goserver-xsession
    • Note: There is no service to start, as the x2go clients connect via ssh and use the NX protocol to forward the graphical display.


Configuring x2go.

X2Go config files are located:

  • /etc/x2go/

Server: Fix for atom/other text editors crashing connected via X2GoClient

  • Edit server side config file (/etc/x2go/x2goagent.options) and append
    #- Fix for Atom Crashing: https://github.com/atom/atom/issues/4360 -#
    X2GO_NXAGENT_DEFAULT_OPTIONS+=" -extension BIG-REQUESTS"

Client: Fix for Windows Firewall Messages Popping Up

  • Windows Firewall messages pop up about various features being blocked during connection. To make these go away, some X2GoClient session features can be disabled.
  • X2Go Client Window: Session > Session management…
    • Select your saved session > click Session preferences
      • Click the Media tab
        • Uncheck “Enable sound support”
        • Uncheck “Client side printing support”
        • Click “Ok”
      • On Session Management, Click “Exit”

Client: Performance Settings

  • Various performance settings in the X2Go Client
    • Session Preferences
      • Connection tab
        • Connection Speed: Adjust to connection speed
        • Compression Method and Quality

XRDP

xrdp runs on a Linux system and allows for native Windows RDP to connect to it.

Note: xrdp checks only if a session with the same geometry is already opened. It will start a new session if the geometry/resolution doesn't match. This means if you connect using an external monitor initially, and resume with a different monitor with different resolution being sent, you will get a new session. Resolution settings are configurable via the RDP client display settings. (Full screen is the default)

Install xrdp

yum install xrdp

Performance Settings

  • Change xrdp bpp to 16 (/etc/xrdp/xrdp.ini)
    sed -i 's/max_bpp=32/max_bpp=16/' /etc/xrdp/xrdp.ini
  • Increase Max Sessions (/etc/xrdp/sesman.ini)
    sed -i 's/MaxSessions=10/MaxSessions=50/' /etc/xrdp/sesman.ini

Security Settings

  • Only Allows TLS1.2
    sed -i 's/ssl_protocols=.*/ssl_protocols=TLSv1.2/' /etc/xrdp/xrdp.ini
  • Set Ciphers to AES
    sed -i 's/#*tls_ciphers=.*/tls_ciphers=AES/' /etc/xrdp/xrdp.ini

Log Settings

  • Set logging levels to warning instead of debug
    sed -i 's/LogLevel=.*/LogLevel=WARNING/' /etc/xrdp/xrdp.ini
    sed -i 's/SyslogLevel=.*/SyslogLevel=WARNING/' /etc/xrdp/xrdp.ini

PATH Settings

  • Add 'source /etc/profile' to xrdp's start script to get login PATH settings
    vim /etc/xrdp/startwm.sh
     
    if [ -f /etc/X11/xinit/xinitrc ]
    then
        source /etc/profile
        . /etc/X11/xinit/xinitrc
        exit 0
    fi

Restart and enable xrdp

systemctl restart xrdp
systemctl enable xrdp

Ensure we are still starting the server in multi-user (no gui), change if not

systemctl get-default
systemctl set-default multi-user.target

  • linux_wiki/remote_gui_desktops.txt
  • Last modified: 2019/05/25 23:50
  • (external edit)