In questo tutorial, distribuiremo un host Linux abilitato per RDP che funge da desktop remoto in un ambiente ad accesso limitato (nessuna connettività Internet). Un ulteriore requisito è che più utenti possano condividere le stesse credenziali con questo host.
A tale scopo, utilizzeremo due istanze con mirroring dei server Ubuntu Cloud, una online e l'altra offline, in modo che i pacchetti corretti possano essere distribuiti sul server offline. Inoltre, il desktop Xfce4 è stato scelto per la sua capacità di aprire più sessioni per un singolo utente. Al momento in cui è stato scritto il tutorial Gnome non contava su questa funzionalità.
Installazione offline
Per consentire l'installazione in un sistema offline, implementeremo un sistema identico in un VirtualBox online, utilizzando la seguente sequenza di comandi per ogni pacchetto:
Sul sistema online:
sudo apt-get install --download-only <package list>
Copia i pacchetti da /var/cache/apt/archives online al PC (utilizzando un client sftp o una cartella condivisa VirtualBox) e dal PC al sistema offline. Quindi, su entrambi i sistemi:
dpkg -i /var/cache/apt/archives/*.deb
Infine, pulisci gli archivi apt:
apt-get clean
Scarica l'immagine cloud di Ubuntu
Usa questo collegamento. Per OpenStack, utilizzeremo l'estensione img, equivalente a qcow2. Per VirtualBox, abbiamo bisogno dell'ova, che contiene già un file del disco vmdk.
Crea le due macchine virtuali
In OpenStack:
Carica l'immagine per dare un'occhiata:
glance image-create --name "Ubuntu Cloud image" --file ubuntu-18.04-server-cloudimg-amd64.img --is-public False --container-format bare --disk-format qcow2
Crea un modello attivo, ecco un esempio con un IP fisso e spazio su disco aggiuntivo:
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 }
Crea lo stack, l'istanza viene avviata automaticamente:
heat stack-create -f <FILE> -e <FILE> <STACK_NAME>
Connettiti alla console, assicurati che la VM sia stata avviata correttamente. Riavvia con Ctrl-Alt Canc e premi Maiusc-Sinistra per accedere alla modalità di ripristino e modificare la password di root.
In VirtualBox:
Importa file ova come nuova appliance. Assicurati di attivare una porta seriale, potrebbe rimanere disconnessa, viene utilizzata per ignorare uno dei passaggi durante l'inizializzazione del cloud. Inoltre, assicurati di selezionare l'adattatore di rete con bridge e di associarlo all'interfaccia di rete host con accesso a Internet.
Avvia con Maiusc sinistro premuto e accedi alla modalità di ripristino di GRUB. Lì puoi cambiare la password di root in quella che preferisci. Avvia e accedi normalmente questa volta.
Esegui parted per correggere i dati della partizione:
Accetta per correggere GPT, quindi usa "resizepart" per utilizzare l'intero spazio esistente nel disco:
Esci da parted e usa resize2fs per regolare il file system:
Ora df -h dovrebbe visualizzare 10G disponibili.
Verifica la connettività IP
Anche se Openstack può fornire l'indirizzo IP corretto tramite DHCP, ne configureremo uno statico in entrambi gli ambienti. Crea un file con estensione yaml in /etc/netplan, imposta l'indirizzo IP e il gateway di conseguenza:
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]
Applica la nuova configurazione:
netplan apply
Ora la connettività dovrebbe funzionare dalla VM al gateway e dal tuo PC a entrambe le VM.
Non appena la connettività Internet viene fornita in VirtualBox VM, assicurati di aggiornare apt:
apt-get update
Nota che, se scegli di installare Gnome invece di Xfce4 desktop, dovrai sostituire NetworkManager non appena avrai terminato questa installazione.
Configura SSH
Consentiremo l'accesso root ssh. Modifica il /etc/ssh/sshd_config predefinito:
- Abilita tutte e 3 le HostKey
- Imposta PermitRootLogin su sì
- Disabilita HostBasedAuthentication
- Abilita password in chiaro (PasswordAuthentication sì, PermitEmptyPasswords no)
Controlla anche /etc/ssh per la presenza di file hostkey, in VirtualBox di solito mancano. Generane di nuovi usando 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 ""
Riavvia il servizio:
service sshd restart
Ora devi essere in grado di eseguire ssh su nuove macchine virtuali. Se preferisci, puoi generare una coppia di chiavi privata/pubblica per sostituire la password in chiaro.
Installa Xfce4
Questi sono i passaggi per installare 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
Quindi copia i pacchetti deb da /var/cache/apt/archives in Openstack VM. Non dimenticare di pulire /var/cache/apt/archives.
In Openstack:
dpkg -i /var/cache/apt/archives/*.deb
apt-get clean
Successivamente, per le due macchine virtuali aggiungi il nuovo utente ubuntu e aggiungilo al gruppo sudo:
adduser ubuntu
usermod -aG sudo ubuntu
Basta fare clic su INVIO per tutte le domande e il gioco è fatto. La home directory viene aggiunta automaticamente.
Installa XRDP
Cambia utente in Ubuntu in modo che XRDP esegua la configurazione richiesta in /home/ubuntu.
In VirtualBox:
sudo apt-get install --download-only xrdp
sudo dpkg -i /var/cache/apt/archives/*.deb
Copia i pacchetti deb da /var/cache/apt/archives a Openstack VM. Pulisci /var/cache/apt/archives.
In Openstack:
sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean
Configura XRDP su entrambi:
Modifica /etc/xrdp/sesman.ini e imposta Policy=UBDC. Ciò consente più sessioni con lo stesso nome utente.
Modifica /etc/xrdp/startwm.sh, aggiungendo startxfce4 alla fine:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4
Riavvia il servizio XRDP:
sudo service xrdp restart
Installa i browser Web
I browser Web devono essere aggiunti a Xfce4. Cerca Google Chrome deb su Internet e installalo utilizzando dpkg.
Puoi ottenere Firefox direttamente dai repository di Ubuntu.
In VirtualBox:
sudo apt-get install --download-only firefox
sudo dpkg -i /var/cache/apt/archives/*.deb
Copia i pacchetti deb da /var/cache/apt/archives a Openstack VM. Pulisci /var/cache/apt/archives.
In Openstack:
sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean
Aggiungi scorciatoie per ciascun browser nella barra delle applicazioni e/o sul desktop.
E questo è tutto. Apri più sessioni RDP sul server e controlla che tutto funzioni.
Saluti!