In diesem Tutorial stellen wir einen RDP-fähigen Linux-Host bereit, der als Remotedesktop in einer Umgebung mit eingeschränktem Zugriff (keine Internetverbindung) dient. Eine zusätzliche Anforderung ist, dass mehrere Benutzer dieselben Anmeldedaten für diesen Host freigeben können.
Zu diesem Zweck verwenden wir zwei gespiegelte Instanzen von Ubuntu Cloud-Servern, eine online und die andere offline, damit die richtigen Pakete auf dem Offline-Server bereitgestellt werden können. Außerdem wurde der Xfce4-Desktop aufgrund seiner Fähigkeit gewählt, mehrere Sitzungen für einen einzelnen Benutzer zu öffnen. Bis zu dem Zeitpunkt, als das Tutorial geschrieben wurde, hatte Gnome nicht mit dieser Funktion gerechnet.
Offline-Installation
Um die Installation in einem Offline-System zu ermöglichen, stellen wir ein identisches System in einer Online-VirtualBox bereit, wobei wir für jedes Paket die folgende Befehlsfolge verwenden:
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 freigegebenen VirtualBox-Ordner) und vom PC auf das Offline-System. Dann auf beiden Systemen:
dpkg -i /var/cache/apt/archives/*.deb
Reinigen Sie abschließend die apt-Archive:
apt-get clean
Ubuntu-Cloud-Image herunterladen
Verwenden Sie diesen Link. Für OpenStack verwenden wir die img-Erweiterung, die qcow2 entspricht. Für VirtualBox benötigen wir die ova, die bereits eine vmdk-Festplattendatei enthält.
Erstellen Sie die beiden virtuellen Maschinen
In OpenStack:
Bild auf Blick hochladen:
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 heiße Vorlage, hier ist ein Beispiel mit einer festen IP und zusätzlichem Speicherplatz:
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 Stack, die Instanz wird automatisch gestartet:
heat stack-create -f <FILE> -e <FILE> <STACK_NAME>
Stellen Sie eine Verbindung zur Konsole her und stellen Sie sicher, dass die VM erfolgreich gestartet wurde. Starten Sie mit Strg-Alt Del neu und drücken Sie die linke Umschalttaste, um auf den Wiederherstellungsmodus zuzugreifen und das Root-Passwort zu ändern.
In VirtualBox:
Importieren Sie die OVA-Datei als neue Appliance. Achten Sie darauf, einen seriellen Anschluss zu aktivieren, er kann getrennt bleiben, er wird verwendet, um einen der Schritte während der Cloud-Initialisierung zu umgehen. Stellen Sie außerdem sicher, dass Sie den Netzwerk-Bridged-Adapter auswählen und der Host-Netzwerkschnittstelle zuordnen, die über Internetzugang verfügt.
Booten Sie mit gedrückter linker Umschalttaste und erhalten Sie Zugriff auf den GRUB-Wiederherstellungsmodus. Dort können Sie das Root-Passwort nach Belieben ändern. Booten und melden Sie sich diesmal normal an.
Führen Sie parted aus, um die Partitionsdaten zu korrigieren:
Akzeptieren Sie die Korrektur von GPT und verwenden Sie dann „resizepart“, um den gesamten vorhandenen Speicherplatz auf der Festplatte zu nutzen:
Beenden Sie parted und passen Sie das Dateisystem mit resize2fs an:
Jetzt sollte df -h 10G verfügbar anzeigen.
IP-Konnektivität prüfen
Auch wenn Openstack möglicherweise die richtige IP-Adresse über DHCP bereitstellt, werden wir in beiden Umgebungen eine statische konfigurieren. Erstellen Sie eine Datei mit der Erweiterung yaml in /etc/netplan, stellen Sie die IP-Adresse und das Gateway entsprechend ein:
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]
Wenden Sie die neue Konfiguration an:
netplan apply
Jetzt sollte die Konnektivität von der VM zum Gateway und von Ihrem PC zu beiden VMs funktionieren.
Sobald die Internetverbindung in VirtualBox VM bereitgestellt wird, aktualisieren Sie unbedingt apt:
apt-get update
Beachten Sie, dass Sie, wenn Sie sich für die Installation von Gnome anstelle von Xfce4 Desktop entscheiden, networkd durch NetworkManager ersetzen müssen, sobald Sie diese Installation abgeschlossen haben.
SSH konfigurieren
Wir werden den Root-SSH-Zugriff aktivieren. Bearbeiten Sie die standardmäßige /etc/ssh/sshd_config:
- Alle 3 HostKeys aktivieren
- Setzen Sie PermitRootLogin auf yes
- Hostbasierte Authentifizierung deaktivieren
- Klartext-Passwort aktivieren (PasswordAuthentication yes, PermitEmptyPasswords no)
Überprüfen Sie auch /etc/ssh auf das Vorhandensein von Hostkey-Dateien, in VirtualBox fehlen sie normalerweise. Generieren Sie 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, per SSH auf neue VMs zuzugreifen. Falls gewünscht, können Sie ein privates/öffentliches Schlüsselpaar generieren, um das Klartextpasswort zu ersetzen.
Xfce4 installieren
Dies sind die Schritte zur Installation des xfce4-Desktops 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 von /var/cache/apt/archives auf Openstack VM. Vergessen Sie nicht, /var/cache/apt/archives.
zu bereinigenIm Openstack:
dpkg -i /var/cache/apt/archives/*.deb
apt-get clean
Fügen Sie anschließend für die beiden VMs den neuen Benutzer ubuntu hinzu und fügen Sie ihn der sudo-Gruppe hinzu:
adduser ubuntu
usermod -aG sudo ubuntu
Klicken Sie einfach bei allen Fragen auf ENTER und das war's. Das Home-Verzeichnis wird automatisch hinzugefügt.
Installieren Sie XRDP
Ändern Sie den Benutzer zu ubuntu, damit 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 von /var/cache/apt/archives auf 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 demselben Benutzernamen.
Bearbeiten Sie /etc/xrdp/startwm.sh und fügen Sie startxfce4 am 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 den Ubuntu-Repositories herunterladen.
In VirtualBox:
sudo apt-get install --download-only firefox
sudo dpkg -i /var/cache/apt/archives/*.deb
Kopieren Sie deb-Pakete von /var/cache/apt/archives auf Openstack VM. Bereinigen Sie /var/cache/apt/archives.
Im Openstack:
sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean
Verknüpfungen für jeden Browser in der Taskleiste und/oder auf dem Desktop hinzufügen.
Und das ist es. Öffnen Sie mehrere RDP-Sitzungen zum Server und prüfen Sie, ob alles funktioniert.
Prost!