Sie sind auf Seite 1von 9

ESM unter Linux

Erweiterter Sitzungsmodus

Handout
Hardware Betriebssysteme Tag 2 -2 Shell 1

Inhaltsverzeichnis

1 ESM – Erweiterter Sitzungsmodus...................................................................3

2 xRDP – Remotedesktopserver für Unix/Linux ..................................................4

3 Dienste xrdp und xrdp-sesman .......................................................................7


3.1 xrdp ........................................................................................................................ 7
3.2 xrdp-sesman .......................................................................................................... 7
3.3 Einschränkungen ................................................................................................... 7

4 Titel Bild und logo...........................................................................................8

© WBS TRAINING AG 2
Hardware Betriebssysteme Tag 2 -2 Shell 1

1 ESM – Erweiterter Sitzungsmodus

Der erweiterte Sitzungsmodus unter Hyper-V, ist normalerweise Windows VMs vorent-
halten. Unter Unix/Linux kann dieser mit Anpassungen auch genutzt werden.

Hierzu wird auf der Unix/Linux VM ein Remotedesktopserver installiert und angepasst.
Microsoft hat hierzu selbst die nötigen Anpassungen geliefert.

Um den Sound von einer VM auf den Host oder um ein Aufnahmegerät vom Host an die
VM zu binden, werden zusätzlich noch Audio Module benötigt.

Durch die Remotedesktopverbindung wird die Grafikkarte des Hosts angesprochen, und
somit die Grafische Leistung erhöht.

Hyper-V ist eigentlich für den Serverbetrieb entwickelt worden, wo Grafische Oberflä-
chen oder Sound keine wichtige Rolle spielen. Dadurch das Microsoft selbst und viele
weiter Firmen wie z.b die WBS, Hyper-V auch als Schulungssoftware benutzen, fließen
in letzter Zeit immer weitere Funktion in Hyper-V ein.

Beispiele hierfür sind:

die Schnellerstellung (VM Galerie), der Default-Switch oder auch die geschachtelte Vir-
tualisierung.

Der Erweiterte Sitzungsmodus (ESM) bringt folgenden Funktionen mit sich:

• Zwischenablage
• Laufwerke über RDP
• Drucker über RDP
• Sound über RDP
• Anpassbare Auflösung / Vollbildmodus

© WBS TRAINING AG 3
Hardware Betriebssysteme Tag 2 -2 Shell 1

2 xRDP – Remotedesktopserver für Unix/Linux

Als Remotedesktopserver wird die Software xRDP verwendet. Die Einstellungen werden
an die Anforderungen von Hyper-V angepasst, um die Verbindung über den erweiterten
Sitzungsmodus bereitzustellen.

Der Port 3389 wird auf: vsock://-1:3389 gesetzt. Hyper-V benutzt einen virtuellen So-
cket, um eine RDP-Verbindung zur VM herzustellen.

Da es eine lokale Verbindung ist, wird die Sicherheit aufs minimalste gesetzt sowie die
Bildkompression ausgeschaltet, um eine bessere Performance zu gewährleisten.

# Configure the installed XRDP ini files.


sed -i_orig -e 's/port=3389/port=vsock:\/\/-1:3389/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini

Benutzer, die den xRDP Server benutzen sollen, müssen in einer berechtigten Gruppe
sein. Da es noch einige Sicherheitseinstellungen gibt, in denen der Benutzer auch admi-
nistrative Rechte haben muss, wurde diese im Skript auf sudo festgelegt.

# activating normal user access


sed -i -e 's/TerminalServerUsers=tsusers/TerminalServerUsers=sudo/g' /etc/xrdp/sesman.ini
sed -i -e 's/TerminalServerAdmins=tsadmins/TerminalServerAdmins=sudo/g' /etc/xrdp/sesman.ini
sed -i -e 's/AlwaysGroupCheck=false/AlwaysGroupCheck=true/g' /etc/xrdp/sesman.ini
sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config

Wichtig ist zudem auch das die entsprechenden Hyper-V Treiber/Module installiert sind,
und das Modul „hv_sock“ geladen wird.

# Blacklist the vmw module


if [ ! -e /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf ]; then
cat >> /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf <<EOF
blacklist vmw_vsock_vmci_transport
EOF
fi

# Ensure hv_sock gets loaded


if [ ! -e /etc/modules-load.d/hv_sock.conf ]; then
echo "hv_sock" > /etc/modules-load.d/hv_sock.conf
fi

© WBS TRAINING AG 4
Hardware Betriebssysteme Tag 2 -2 Shell 1

Für die Audio Übertragung, werden spezielle Treiber/Module aus dem Quellcode von
Pulseaudio kompiliert, die diese dann über xRDP gewährleisten.

# audio
sudo apt install git libpulse-dev autoconf m4 intltool build-essential dpkg-dev libtool libsnd-
file-dev libcap-dev libjson-c-dev -y
sudo apt build-dep pulseaudio -y

cd /tmp
sudo apt source pulseaudio

pulsever=$(pulseaudio --version | awk '{print $2}')


cd /tmp/pulseaudio-$pulsever
sudo ./configure

sudo git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git


cd pulseaudio-module-xrdp
sudo ./bootstrap
sudo ./configure PULSE_DIR="/tmp/pulseaudio-$pulsever"
sudo make

cd /tmp/pulseaudio-$pulsever/pulseaudio-module-xrdp/src/.libs
sudo install -t "/var/lib/xrdp-pulseaudio-installer" -D -m 644 *.so
sudo install -t "/usr/lib/pulse-$pulsever/modules" -D -m 644 *.so
echo

sed -i "s/Exec=start-pulseaudio-x11/Exec=pulseaudio -k/" /etc/xdg/autostart/pulseaudio.desktop

Der xRDP-Server spricht dann direkt den X-Server an, der eine eigene Sitzung für diesen
öffnet. Das heißt das für xRDP eine eigene Grafische Oberfläche gewählt werden muss.
Standardmäßig sucht xRDP im jeweiligen Benutzerordner nach der Datei .xsession. In
dieser wird dann festgelegt welche benutzt wird. Findet er diese Datei nicht oder Sie ist
leer, wird Gnome3 als Standard genommen oder es wird versucht die installierte des
Systems zu benutzen (z. b bei Linux Mint wird keine .xsession benötigt).

Wichtig:
Ein Benutzer kann nur einmal angemeldet sein! Sprich entweder über den „normalen“
Modus oder über den „erweiterten“.

© WBS TRAINING AG 5
Hardware Betriebssysteme Tag 2 -2 Shell 1

Beispiele aus dem gui Skript:


1) echo "gnome-session" > ~/.xsession
GUI="Gnome 3"
break ;;
2) echo "export GNOME_SHELL_SESSION_MODE=ubuntu" > ~/.xsession
echo "export XDG_CURRENT_DESKTOP=ubuntu:GNOME" >> ~/.xsession
echo "gnome-session" >> ~/.xsession
GUI="Gnome-Ubuntu"
break ;;
3) echo "startplasma-x11" > ~/.xsession
GUI="KDE Plasma"
break ;;
4) echo "export XDG_DATA_DIRS=/usr/share/plasma:/usr/lo-
cal/share:/usr/share:/var/lib/snapd/desktop" > ~/.xsession
echo "export XDG_CONFIG_DIRS=/etc/xdg/xdg-plasma:/etc/xdg:/usr/share/kubuntu-default-
settings/kf5-settings" >> ~/.xsession
echo "export XDG_SESSION_DESKTOP=KDE"
echo "startplasma-x11" >> ~/.xsession
GUI="KDE Kubuntu"
break ;;
5) echo "export XDG_SESSION_DESKTOP=mate" > ~/.xsession
echo "XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg" >> ~/.xsession
echo "XDG_DATA_DIRS=/usr/share/mate:/usr/share/mate:/usr/lo-
cal/share:/usr/share:/var/lib/snapd/desktop" >> ~/.xsession
echo "mate-session" >> ~/.xsession
GUI="MATE"
break ;;
6) echo "export XDG_SESSION_DESKTOP=cinnamon" > ~/.xsession
echo "export XDG_DATA_DIRS=/usr/share/gnome:/usr/share/cinnamon:/usr/lo-
cal/share:/usr/share:/var/lib/snapd/desktop" >> ~/.xsession
echo "export XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg" >> ~/.xsession
echo "cinnamon" >> ~/.xsession
GUI="Cinnamon"
break ;;
7) echo "startxfce4" > ~/.xsession
GUI="Xfce"
break ;;
8) echo "export XDG_SESSION_DESKTOP=xubuntu" > ~/.xsession
echo "export XDG_DATA_DIRS=/usr/share/xfce4:/usr/share/xubuntu:/usr/lo-
cal/share:/usr/share:/var/lib/snapd/desktop:/usr/share" >> ~/.xsession
echo "XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg:/etc/xdg" >> ~/.xsession
echo "startxfce4" >> ~/.xsession
GUI="Xfce Xubuntu"
break ;;

© WBS TRAINING AG 6
Hardware Betriebssysteme Tag 2 -2 Shell 1

3 Dienste xrdp und xrdp-sesman

Bei xRDP gibt es 2 relevante Dienste:

3.1 xrdp
Dies ist der eigentliche Remotedesktopserver, der dem Benutzer das Bild/Ton, Tastatur-
eingaben wiedergibt bzw. entgegennimmt.
# Install the xrdp service so we have the auto start behavior
apt install -y xrdp

3.2 xrdp-sesman
Ist für die Authentifizierung des Benutzers zuständig. Erst wenn dieser das OK gibt, kann
ein Benutzer den xRDP Server verwenden. Zudem bindet er auch noch Gemeinsame-
Laufwerke an die RDP-Verbindung.

# rename the redirected drives to 'shared-drives'

sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=Gemeinsame-Laufwerke/g' /etc/xrdp/sesman.ini

3.3 Einschränkungen

Einige Systemrelevante Einstellungen, können nicht über den erweiterten Sitzungsmo-


dus konfiguriert werden, dieses muss dann über den normalen Modus erfolgen. Es ist
aber wieder davon abhängig, welche Grafische Oberfläche gewählt worden ist, weil
diese unterschiedliche Sicherheitsstandards haben.

# Configure the policy xrdp session


cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <<EOF
[Allow Colord all Users]
Identity=unix-group:sudo
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-pro-
file;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-pro-
file;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF

cat <<EOF | \

© WBS TRAINING AG 7
Hardware Betriebssysteme Tag 2 -2 Shell 1

sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-NetworkManager.pkla


[Networkmanager]
Identity=unix-group:sudo
Action=org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes
EOF

cat <<EOF | \
sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-packagekit.pkla
[Networkmanager]
Identity=unix-group:sudo
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=auth_admin
ResultActive=yes
EOF

Um eine optimale Leistung unter Ubuntu Distributionen zu gewährleisten, wird es emp-


fohlen den optimierten Kernel sowie die Gasterweiterungen für VMs zu installieren:

apt install -y linux-tools-virtual


apt install -y linux-cloud-tools-virtual

4 Titel Bild und logo


Wenn gewünscht, können diese auch noch angepasst werden:
# title screen & logo
wget https://osdn.dl.osdn.net/linux-on-hyper-v/73553/ubuntu.bmp
sudo cp ubuntu.bmp /usr/share/xrdp
sudo sed -i 's/ls_logo_filename=/ls_logo_file-
name=\/usr\/share\/xrdp\/ubuntu.bmp/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/#ls_title=My Login Title/ls_title=Enter User and Password/' /etc/xrdp/xrdp.ini
sudo sed -i 's/ls_bg_color=dedede/ls_bg_color=ffffff/' /etc/xrdp/xrdp.ini
sudo sed -i 's/ls_logo_x_pos=55/ls_logo_x_pos=0/' /etc/xrdp/xrdp.ini
sudo sed -i 's/ls_logo_y_pos=50/ls_logo_y_pos=5/' /etc/xrdp/xrdp.ini

© WBS TRAINING AG 8
Hardware Betriebssysteme Tag 2 -2 Shell 1

© WBS TRAINING AG – Alle Rechte vorbehalten

Nutzungsrechte:
Die Nutzung dieser Dokumentation ist ausschließlich für Schulungszwecke der WBS
TRAINING AG gestattet. Eine Weitergabe an Dritte, auch auszugsweise, sowie Verviel-
fältigungen und Verbreitungen aller Art (elektronische und andere Verfahren) inklusive
Übersetzungen sind nur mit vorheriger schriftlicher Zustimmung des Rechtinhabers ge-
stattet. Zuwiderhandlungen verpflichten zu Schadenersatz.

Herausgeber:
WBS TRAINING AG
Lorenzweg 5
12099 Berlin

Autor(en):
Sebastian Broers

Quellen:
https://www.microsoft.com

Abbildungen:
Das Bildmaterial entstammt den jeweils genannten Quellen und darf nur für die o.g.
Schulungszwecke verwendet werden.

Haftungsausschluss:
Alle Inhalte sind nach bestem Wissen korrekt und vollständig recherchiert und mit
größtmöglicher Sorgfalt für die Schulungsunterlage zusammengestellt. Wir sind um die
laufende Aktualisierung aller Informationen und Daten bemüht. Dennoch können Feh-
ler (z.B. Abweichungen zur beschriebenen Hard- und Software durch kurzfristige Up-
dates) auftreten, sodass wir für die vollständige Übereinstimmung, Richtigkeit und Ak-
tualität keine Gewähr übernehmen. Hinweise unserer Nutzer werden konsequent wei-
terverfolgt.

© WBS TRAINING AG 9

Das könnte Ihnen auch gefallen