Cosa è una Virtual Appliance

Le virtual appliance sono macchine virtuali pre-configurate che contengono un’intera piattaforma software pronta all’uso. Bitnami è un’azienda che si occupa di fornire virtual appliance per una vasta gamma di applicazioni, come ad esempio WordPress, Drupal, Joomla, Magento e molte altre.

Le virtual appliance di Bitnami sono basate su una tecnologia di virtualizzazione, come ad esempio VMware o VirtualBox, e sono disponibili in diversi formati, come OVA, VMDK e VHD. In pratica, una volta scaricata la virtual appliance, è sufficiente eseguirla nella propria infrastruttura di virtualizzazione per avere a disposizione l’applicazione desiderata già pre-configurata e pronta all’uso.

Le virtual appliance di Bitnami sono progettate per semplificare l’installazione e la configurazione delle applicazioni, riducendo il tempo e gli sforzi necessari per metterle in funzione. Inoltre, includono tutti i componenti necessari per far funzionare l’applicazione, come ad esempio il server web, il database, le librerie e le dipendenze.

Queste virtual appliance sono utili per sviluppatori, amministratori di sistema e utenti finali che desiderano eseguire rapidamente applicazioni pronte all’uso senza dover affrontare la complessità dell’installazione e della configurazione manuale. Inoltre, consentono di avere una piattaforma di sviluppo o di produzione omogenea e facilmente riproducibile, garantendo una maggiore stabilità e sicurezza dell’ambiente.

In sintesi, le virtual appliance sono un modo semplice e conveniente per eseguire le applicazioni desiderate in un ambiente pre-configurato e pronto all’uso, che può essere facilmente riprodotto su diverse piattaforme di virtualizzazione.

Cosa è WordPress

Mentre WordPress è un sistema di gestione dei contenuti (CMS) open-source utilizzato per creare e gestire siti web. In pratica, WordPress consente di creare un sito web dinamico senza la necessità di conoscere il codice o di avere particolari competenze tecniche.

WordPress è diventato uno dei CMS più popolari al mondo, con una vasta comunità di sviluppatori e utenti che contribuiscono alla sua crescita e al suo sviluppo. Grazie alla sua flessibilità, WordPress può essere utilizzato per una vasta gamma di siti web, come ad esempio blog, siti aziendali, e-commerce, forum, portali di notizie e molto altro.

La caratteristica principale di WordPress è la sua facilità d’uso, che lo rende accessibile a chiunque voglia creare un sito web senza avere competenze tecniche specifiche. Grazie alle migliaia di temi e plugin disponibili, è possibile personalizzare e ampliare le funzionalità del sito web in base alle esigenze specifiche.

Inoltre, WordPress è altamente scalabile, il che significa che è possibile gestire siti web di piccole, medie e grandi dimensioni. WordPress è altamente personalizzabile e supporta una vasta gamma di funzionalità, come la gestione dei contenuti multilingue, la ricerca e l’indicizzazione, l’integrazione con social media, l’ottimizzazione per i motori di ricerca e molto altro.

In sintesi, WordPress è un CMS popolare e flessibile utilizzato per creare e gestire siti web di varie dimensioni e tipologie. Grazie alla sua facilità d’uso e alle molte opzioni di personalizzazione, WordPress è una scelta ideale per chiunque voglia creare un sito web senza dover affrontare la complessità del codice e delle tecnologie di sviluppo.

Personalmente tra le varie VA, Docker e Contenitori vari disponibili sul mercato preferisco utilizzare le Virtual Appliance Bitnami su VMware perchè contengono un’intera piattaforma software pronta all’uso e vengono proposte con il Sistema Operativo Linux Debian che apprezzo particolarmente.

Oggi entrando nel dettaglio ci cimenteremo a scaricare e configurare la piattaforma di Content Management WordPress in questo caso l’ultima versione rilasciata la 6.1 installata e configurata da Bitnami su piattaforma Linux Debian 11 (BullsEye).

Non vi nascondo che sarà cosa lunga e laboriosa, cioè, se volete potete utilizzare il prodotto AS IS ossia cosi com’è con pochissime personalizzazioni sia a livello di distribuzione (Linux Debian) che di configurazione di sistema, che di configurazione di prodotto (WordPress), ma nel mio caso vista la curiosità di testare il prodotto in modo completo in tutti i suoi aspetti sarà un viaggio ibrido attraverso l’incrocio di tutti questi servizi con particolare riguardo quelli ancillari di sistema (Graphical Desktop, SSH, WebMin etc.) il cui fine è quello di vedere insieme un’esperienza di integrazione di Sistema / Servizi / Prodotto.

Scaricamento dell’appliance BITNAMI WORDPRESS

Prima di tutto andiamo sul sito di Bitnami :

Bitnami: applicazioni pacchettizzate per qualsiasi piattaforma – cloud, container, macchina virtuale

e clicchiamo sul Catalogo Applicazioni Applicazioni disponibili, Blog quindi selezioniamo:

WordPress Multisite

E poi clicchiamo su Download .OVA format (Potete anche cliccare sull’immagine sottostante):

Una volta scaricata l’immagine questa potrà essere aperta con VirtualBOX e Vmware Player in modalità freeware oppure direttamente con Vmware Workstation Pro se avete acquistato la licenza. Una volta lanciato vmware player dovrete aprire l’immagine OVA scaricata e partirà il processo di conversione nela macchina virtuale, farà tutto vmware, voi dovrete indicare solo la cartella dove Vmware inserirà la macchina testè convertita.

Lancio della Macchina Virtuale e Configurazione dei Servizi

A questo punto non ci resta che fare delle piccole modifiche alla macchina virtuale come ad esempio portare la RAM da 700Mb a 4G, aumentare il numero di processori a 2, estendere il disco da 15G a 50G e configurare il supporto USB almeno a 2.0. fatto questo possiamo anche lanciare la VM.

dopo il lancio si presenterà questa schermata:

L’appliance Linux partirà da sola dopo qualche secondo e la schermata successiva sraà questa:

Inserite le credenziali di default fornite da Bitnami (User: bitnami / Passw: bitnami) e andate avanti, la schermata successiva post autenticazione vi chiederà di cambiare la vostra password:

Naturalmente quello che segue è la configurazione che io di solito faccio sulle mie appliance Bitnami Debian ed in generale sui sistemi Linux su cui opero.

Quindi iniziamo…..

1. Configurazione Tastiera

Per prima cosa dovremo configurare la tastiera italiana visto che inizialmente funziona solo in inglese, e già che ci siamo aggiorniamo anche il sistema, ergo procediamo con i seguenti comandi:

Update Sistema

$ sudo apt update && apt dist-upgrade

Configurazione Tastiera Italiana

$ Sudo apt install console-setup
$ sudo apt install keyboard-configuration

A questo punto durante l’installazione del pacchetto keyboard-configuration vi verranno presentate delle schermate a cui dovrete rispondere nel seguente modo:

Schermata (1) Selezione Layout Tastiera -> 22 – Other
Schermata (2) – Selezionare prima 55- Italian Successivamente 4 – Italian (IBM 142)

Schermata (1) – Selezionare 22- Other
Schermata (2) – Selezionare prima 55- Italian Successivamente 4 – Italian (IBM 142)

Infine digitare il comando:

$ sudo systemctl restart keyboard-setup

Ora la tastiera italiana è configurata.

2 – Cambiamo subito l’HOSTNAME perchè debian nun se po vedè….

Lanciamo i seguenti comandi:

$ sudo apt install dbus
$ sudo systemctl enable dbus
$ sudo hostnamectl set-hostname zpxwpress
$ sudo reboot 

3 – Ora installiamo un po di cosette utili e divertenti per creare e modificare facilmente file con avvisi e creare banner:

$ sudo apt update
$ sudo apt install nano  (editor testuale)
$ sudo apt install fortune && sudo apt install lolcat && sudo apt install cowsay 
$ sudo apt install toilet && sudo apt install figlet && sudo apt install cmatrix

Installiamo anche qualche programma ancillare di servizio:
$ sudo apt install filezilla (Client ftp, sftp)
$ sudo apt install mc (Midnight Commander file Explorer ASCII)
$ sudo apt bmon (Monitor di Rete)

4 – Trattandosi di un server va configurato l’accesso remoto via SSH

Per impostazione predefinita, è possibile accedere alla macchina virtuale tramite SSH utilizzando l’autenticazione basata su chiave.

Per configurare il server SSH per supportare l’autenticazione basata su chiave, attenersi alla seguente procedura:

1) Accedere alla console del server come utente bitnami.

2) Creare una coppia di chiavi, costituita da una chiave pubblica e privata, come illustrato di seguito. Impostare una passphrase lunga quando richiesto.

$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bitnami/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/bitnami/.ssh/id_rsa. 
Your public key has been saved in /home/bitnami/.ssh/id_rsa.pub. 
The key fingerprint is: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX bitnami@linux 

Questo comando dovrebbe creare due file denominati id_rsa e id_rsa.pub nella directory /home/bitnami/.ssh.

3) Copiare il file della chiave privata denominato id_rsa in un percorso sicuro. Non condividere questo file di chiave privata.

4) Trasferire il contenuto del file di chiave pubblica nel file /home/bitnami/.ssh/authorized_keys:

$ cd /home/bitnami/.ssh 
$ cat id_rsa.pub >> /home/bitnami/.ssh/authorized_keys

5) Modificare il /etc/ssh/sshd_config e decommentare (o aggiungere se non è già presente) le seguenti righe:

RSAAuthentication yes 
PubkeyAuthentication yes

Nello stesso file, disabilitare l’autenticazione con password di base (se non è già disabilitata). Rimuovere il commento o aggiungere le seguenti righe:

ChallengeResponseAuthentication no 
PasswordAuthentication no UsePAM no

6) Riavviare il server SSH per rendere effettiva la nuova configurazione:

$ sudo /etc/init.d/ssh force-reload 
$ sudo /etc/init.d/ssh restart

È ora possibile utilizzare il file della chiave privata per connettersi alla macchina virtuale tramite SSH.

Se si preferisce utilizzare l’autenticazione tramite password, seguire queste istruzioni per configurare il server SSH in modo che supporti l’autenticazione tramite password.

Il server SSH è disattivato per impostazione predefinita nelle macchine virtuali Bitnami. Tuttavia, alcune applicazioni (come GitLab) richiedono l’accesso SSH per importare repository di codice.

Per attivare il server SSH, eseguire i seguenti comandi nella console del server:

Debian

$ sudo rm -f /etc/ssh/sshd_not_to_be_run
$ sudo systemctl enable ssh
$ sudo systemctl start ssh

Ubuntu

$ sudo mv /etc/init/ssh.conf.back /etc/init/ssh.conf
$ sudo start ssh

Per configurare il server SSH per supportare l’autenticazione tramite password, attenersi alla seguente procedura:

Accedere alla console del server come utente bitnami.

Modificare /etc/ssh/sshd_config decommentare togliendo il primo carattere # e modificare o aggiungere le seguenti righe:

Port 2203
PasswordAuthentication yes

Riavviare il server SSH per rendere effettiva la nuova configurazione:

$ sudo /etc/init.d/ssh force-reload 
$ sudo /etc/init.d/ssh restart

Qualora voleste Disattivare Il Server SSH

Il server SSH è disattivato per impostazione predefinita nelle macchine virtuali Bitnami. E’ possibile disattivarlo seguendo i passaggi opposti:

Debian

$ sudo systemctl stop ssh
$ sudo systemctl disable ssh

Ubuntu

$ sudo stop ssh
$ sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.back

Vi ricordo che le credenziali predefinite per accedere al server (localmente o in remoto tramite SSH) vengono visualizzate all’avvio della console).

A questo punto non ci resta che provare l’accesso via SSH ma prima va configurato il firewall per definire l’apertura della porta 2203 altrimenti non riusciremmo a connetterci alla macchina:

$ sudo ufw status
$ sudo ufw allow 2203

Avendo configurato l’autenticazione SSH tramite password suggerisco di configurare anche il servizio FAil2Ban che controlla gli accessi ostili sulla porta 2203 (SSH) e dopo n tentativi configurabili a piacere banna l’IP ostile che sta tentando un attacco Brute Force.

Vi ho fornito questi pochi cenni su Fail2Ban al volo e vi rimando alla configurazione completa della funzionalità.

Ora proviamo al volo l’accesso via remoto alla macchina zpxwpress:

$ ssh bitnami@zpxwpress -p 2203

Autenticazione SSH con Password su zpxwpress (Il ‘failed’ rosso su X11 Forwarding è perchè il server grafico non è stato ancora configurato.)

Configuriamo ora il Warning Message SSH modificando il file :

sudo nano /etc/ssh/sshd_config

cerchiamo e modifichiamo la linea # Banner none in:

Banner /etc/ssh/my_banner

Chiudiamo e salviamo il file CTRL-X + Yes

Ora creiamo e editiamo il file /etc/ssh/my_banner :

$ sudo touch /etc/ssh/my_banner
$ sudo nano /etc/ssh/my_banner

Copia il sottostante contenuto ASCII Pre-Formattato salva e chiudi (CTRL-X + Yes).

#################################################################
#                   _    _           _   _                      #
#                  / \  | | ___ _ __| |_| |                     #
#                 / _ \ | |/ _ \ '__| __| |                     #
#                / ___ \| |  __/ |  | |_|_|                     #
#               /_/   \_\_|\___|_|   \__(_)                     #
#                                                               #
#  You are entering into a secured area! Your IP, Login Time,   #
#   Username have been registered and sent to the server        #
#                       administrator!                          #
#                                                               #
#   This service is restricted to authorized users only. All    #
#            activities on this system are logged.              #
#                                                               #
#  Unauthorized access will be fully investigated and reported  #
#        to the appropriate law enforcement agencies.           #
#                                                               #
#################################################################
Linux Debian 11 (BullsEye)

Ora facciamo ripartire il server SSH e proviamo ad autenticarci da remoto. Il risultato dovrebbe essere questo:

Potete finalmente entrare da Remoto… E mi raccomando configurate Fail2Ban…!

Vai alla Parte II

Banner per il consenso ai cookie di Real Cookie Banner