Installation von Ubuntu Cloud als RDP-fähiger Remote Desktop in einer Offline-Openstack-Umgebung

In diesem Tutorial werden wir einen RDP-fähigen Linux-Host bereitstellen, der als Remote Desktop in einer Umgebung mit begrenztem Zugriff (ohne Internetverbindung) dient. Eine weitere Anforderung ist, dass mehrere Benutzer die gleichen Anmeldeinformationen für diesen Host freigeben können.

Zu diesem Zweck werden wir zwei gespiegelte Instanzen von Ubuntu Cloud-Servern verwenden, einen online und einen offline, so dass die richtigen Pakete auf dem Offline-Server bereitgestellt werden können. Außerdem wurde der Xfce4-Desktop aufgrund seiner Fähigkeit, mehrere Sitzungen für einen einzelnen Benutzer zu öffnen, ausgewählt. Zum Zeitpunkt, als das Tutorial geschrieben wurde, zählte Gnome nicht auf dieses Feature.

Offline-Installation

Um die Installation in einem Offline-System zu ermöglichen, werden wir ein identisches System in einer Online-VirtualBox mit der folgenden Befehlssequenz für jedes Paket bereitstellen:

Auf dem Online-System:

sudo apt-get install --download-only <package list>

Kopieren Sie Pakete von online /var/cache/apt/archives auf den PC (entweder mit einem sftp-Client oder einem gemeinsamen VirtualBox-Ordner) und von PC zu Offline-System. Dann, auf beiden Systemen:

dpkg -i /var/cache/apt/archives/*.deb

Reinigen Sie schließlich die apt-Archive:

apt-get clean

Ubuntu Cloud-Bild herunterladen

Benutzen Sie diesen Link. Für OpenStack verwenden wir die Erweiterung img, die qcow2 entspricht. Für VirtualBox benötigen wir die Eizellen, die bereits eine vmdk-Diskette enthalten.

Erstellen der beiden virtuellen Maschinen

In OpenStack:

Laden Sie das Bild auf den Blick hoch:

glance image-create --name "Ubuntu Cloud image" --file ubuntu-18.04-server-cloudimg-amd64.img --is-public False --container-format bare --disk-format qcow2

Erstellen Sie eine Hot Template, hier ist ein Beispiel mit einer festen IP und zusätzlichem Festplattenspeicher:

heat_template_version: 2018-04-30
description: Remote Desktop deployment

resources:

port_vm:
type: OS::Neutron::Port
properties:
network: <network name>
fixed_ips:
- subnet: <subnet name>
ip_address: <ip address>

server:
type: OS::Nova::Server
properties:
name: <instance name>
flavor: <flavor name>
availability_zone: <zone name>
networks:
- port: { get_resource: port_vm }

new_volume:
type: OS::Cinder::Volume
properties:
size: <disk space in MB>

volume_attachment:
type: OS::Cinder::VolumeAttachment
properties:
volume_id: { get_resource: new_volume }
instance_uuid: { get_resource: server }

Erstellen Sie den Stapel, die Instanz wird automatisch gestartet:

heat stack-create -f <FILE> -e <FILE> <STACK_NAME>

Verbinden Sie sich mit der Konsole, stellen Sie sicher, dass die VM erfolgreich gestartet wurde. Starten Sie mit Strg-Alt Del neu und drücken Sie die Links-Shift-Taste, um in den Wiederherstellungsmodus zu gelangen und das Root-Passwort zu ändern.

In VirtualBox:

Importieren Sie die Eizelldatei als neue Appliance. Achten Sie darauf, eine serielle Schnittstelle zu aktivieren, sie kann getrennt bleiben, sie wird verwendet, um einen der Schritte während der Cloud-Initialisierung zu umgehen. Stellen Sie außerdem sicher, dass Sie den netzwerkbasierten Adapter auswählen und der Host-Netzwerkschnittstelle mit Internetzugang zuordnen.

Starten Sie mit gedrückter Linksverschiebung und erhalten Sie Zugang zum GRUB-Wiederherstellungsmodus. Dort kannst du das Root-Passwort beliebig ändern. Boote und logge dich diesmal normal ein.

Ausführen getrennt, um die Partitionsdaten zu korrigieren:

Partitionierung mit geteilter Partitionierung

Akzeptieren Sie GPT zu beheben, dann verwenden Sie „resizepart“, um den gesamten vorhandenen Speicherplatz auf der Festplatte zu nutzen:

Partition in der Größe ändern

Beenden Sie die Trennung und verwenden Sie resize2fs, um das Dateisystem anzupassen:

Beenden getrennt

Nun sollte df -h 10G anzeigen.

IP-Konnektivität prüfen

Auch wenn Openstack die richtige IP-Adresse über DHCP bereitstellen kann, werden wir eine statische in beiden Umgebungen konfigurieren. Erstellen Sie eine Datei mit der Erweiterung yaml in /etc/netplan, setzen Sie IP-Adresse und Gateway entsprechend:

network:
       version: 2
       renderer: networkd
       ethernets:
               enp0s3:
                       dhcp4: no
                       addresses: [192.168.1.100/24]
                       gateway4: 192.168.1.1
                       nameservers:
                               addresses: [192.168.1.1]

Übernehmen Sie die neue Konfiguration:

netplan apply

Jetzt sollte die Konnektivität von der VM zum Gateway und von Ihrem PC zu beiden VMs funktionieren.

Sobald die Internetverbindung in der VirtualBox VM bereitgestellt wird, stellen Sie sicher, dass Sie apt:

apt-get update

Beachten Sie, dass Sie, wenn Sie sich für die Installation von Gnome anstelle von Xfce4 Desktop entscheiden, networkd für NetworkManager ersetzen müssen, sobald Sie diese Installation abgeschlossen haben.

SSH konfigurieren

Wir werden den Zugriff auf root ssh aktivieren. Bearbeiten Sie die Standardeinstellung /etc/ssh/ssh/sshd_config:

  • Alle 3 HostKeys aktivieren
  • PermitRootLogin auf ja setzen
  • HostBasedAuthentifizierung deaktivieren
  • Klartextpasswort aktivieren (PasswordAuthentication yes, PermitEmptyPasswords no)

Überprüfen Sie auch /etc/ssh auf das Vorhandensein von Hostkey-Dateien, in VirtualBox fehlen sie normalerweise. Generiere neue mit ssh-keygen:

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -t ed25519 -N ""

Starten Sie den Dienst neu:

service sshd restart

Jetzt müssen Sie in der Lage sein, ssh auf neue VMs zu übertragen. Wenn gewünscht, können Sie ein privates/öffentliches Schlüsselpaar erzeugen, um das Klartextpasswort zu ersetzen.

Xfce4 installieren

Dies sind die Schritte zur Installation von xfce4 desktop in Ubuntu.

In VirtualBox:

apt-get update
apt-get install --download-only xfce4 xfce4-terminal gnome-icon-theme-full tango-icon-theme
dpkg -i /var/cache/apt/archives/*.deb

Kopieren Sie dann Deb-Pakete aus /var/cache/apt/archives in Openstack VM. Vergiss nicht, /var/cache/apt/apt/archives zu bereinigen.

Im Openstack:

dpkg -i /var/cache/apt/archives/*.deb
apt-get clean

Anschließend fügen Sie für die beiden VMs den neuen Benutzer ubuntu hinzu und fügen ihn zur sudo group hinzu:

adduser ubuntu
usermod -aG sudo ubuntu

Klicken Sie einfach auf ENTER für alle Fragen und das war’s. Das Home-Verzeichnis wird automatisch hinzugefügt.

XRDP installieren

Ändern Sie den Benutzer auf ubuntu, so dass XRDP die erforderliche Konfiguration in /home/ubuntu durchführt.

In VirtualBox:

sudo apt-get install --download-only xrdp
sudo dpkg -i /var/cache/apt/archives/*.deb

Kopieren Sie Deb-Pakete aus /var/cache/apt/archives in Openstack VM. Bereinigen Sie /var/cache/apt/archives.

Im Openstack:

sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean

Konfigurieren Sie XRDP auf beiden:

Bearbeiten Sie /etc/xrdp/sesman.ini und setzen Sie Policy=UBDC. Dies ermöglicht mehrere Sitzungen mit gleichem Benutzernamen.

Bearbeiten Sie /etc/xrdp/startwm.sh und fügen Sie startxfce4 an das Ende hinzu:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4

Starten Sie den XRDP-Dienst neu:

sudo service xrdp restart

Webbrowser installieren

Webbrowser müssen zu Xfce4 hinzugefügt werden. Suchen Sie im Internet nach Google Chrome deb und installieren Sie es mit dpkg.

Sie können Firefox direkt aus Ubuntu-Repositories beziehen.

In VirtualBox:

sudo apt-get install --download-only firefox
sudo dpkg -i /var/cache/apt/archives/*.deb

Kopieren Sie Deb-Pakete aus /var/cache/apt/archives in Openstack VM. Bereinigen Sie /var/cache/apt/archives.

Im Openstack:

sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean

Hinzufügen von Verknüpfungen für jeden Browser in der Taskleiste und/oder auf dem Desktop.

Und das ist alles. Öffnen Sie mehrere RDP-Sitzungen auf dem Server und überprüfen Sie, ob alles funktioniert.

Prost!

Das könnte Dich auch interessieren …