Sono qui di nuovo a presentarvi un'altra interessante soluzione per poter creare il nostro cloud personale e privato, direttamente a casa ed in modo estremamente semplice: ecco a voi Yunohost! Dato che abbiamo già visto FreedomBox, sarà naturale prenderlo come riferimento per comparare alcuni punti: reggerà il confronto?

» Leggi: Di che cosa ho bisogno per creare un cloud personale e privato?
» Leggi: Come trasformare un PC o un Raspberry Pi in un server multifunzione: guida a Freedombox
Yunohost (nome che deriva da un meme: "Y U no host?" ("Why you no host?") è un progetto nato nel 2012 da un idea del francese Alexis Gavoty che, provando a configurare un server di posta, pensò di realizzare un sistema di configurazione semi automatica di un server. Attualmente è sviluppato e mantenuto totalmente da volontari organizzati secondo ben precise linee guida.
Yunohost si presenta come una distro Linux, basata sulla solita Debian, che ha un particolare gestore di pacchetti omonimo del progetto (yunohost) che conviene vedere un po' più da vicino. I pacchetti gestiti da yunohost non contengono file eseguibili ma solo istruzioni (script) per scaricare e installare il programma interessato dal sito ufficiale (un po' come i pacchetti AUR di ArchLinux) e soprattutto contiene precise istruzioni per configurare automaticamente il server in modo da rendere tale programma subito funzionante e disponibile attraverso Internet. Per maggiori informazioni riguardo le app proprie di Yunohost vi rimando alla documentazione ufficiale per gli sviluppatori.
» Leggi: ArchLinux: una distro solo per utenti esperti?
Yunohost non offre una soluzione già pronta da acquistare come FreedomBox ma dobbiamo per forza "sporcarci le mani" con l'installazione, in verità, molto semplice. Sono disponibili diverse soluzioni di installazione, qui vedremo le solite per rimanere in linea con il titolo dell'articolo: installazione su Raspberry Pi e su un vecchio computer.
Da segnalare però che, oltre all'immagine per VirtualBox che consente di provare YunoHost senza dover formattare il nostro computer, esiste anche una versione sperimentale per Windows Subsystem for Linux (WSL).
» Leggi: La virtualizzazione dei sistemi operativi non sarà più un problema: guida a VirtualBox

Installazione su Raspberry Pi
Non ci dilungheremo troppo su questo punto dato che l'installazione su questa piattaforma avviene, ormai, come noto, copiando l'immagine dedicata scaricabile dal sito su una scheda miniSD (da almeno 16 GB); in questo caso i programmi suggeriti sono il solito, semplice Balena Etcher, USBimager oppure dd.
» Leggi: Clonare l'hard disk con dd e gestire il clone creato
Importante da tenere presente è che l'immagine è pensata per Raspberry Pi 3, 4 e 5, le versioni precedenti non sono supportate; qualora si disponga della versione 2 e si intenda utilizzarla per questo progetto, si consiglia di installare il sistema operativo RaspberryPi OS 32 bit e procedere con l'installazione manuale di Yunohost.
Installazione su PC
Per l'installazione su PC abbiamo due possibilità:
- la prima è creare un supporto di boot con l'immagine ISO di Yunohost, avviarla sul nostro vecchio PC, seguire la semplice procedura che installerà Yunohost proprio come se fosse un normale sistema operativo ed è, ovviamente, la scelta da fare se non abbiamo già un sistema Debian installato;


- la seconda invece consiste nell'installare prima il sistema operativo Debian (consigliata una installazione mininale, per server, senza interfaccia grafica) e poi eseguire l'installazione manuale di Yunohost, che seguendo la guida ufficiale, consta di appena un comando che riporto anche qui:
curl https://install.yunohost.org | bash
Il resto della configurazione sarà del tutto uguale a quella che vedremo di seguito.
Configurazione iniziale
Una volta installato Yunohost, potremo eseguire la configurazione iniziale tramite riga di comando attraverso SSH o tramite una ben più pratica e rassicurante interfaccia grafica, attraverso il nostro browser preferito, collegandoci all'indirizzo di rete della nostra installazione di Yunohost. A differenza di FreedomBox, Yunohost non installa un server grafico e nemmeno un browser, per cui la configurazione tramite Web GUI dovrà essere fatta da un altro dispositivo.
Se non conoscete o non vi ricordate l'indirizzo di rete del dispositivo dove gira Yunohost, potete trovarlo facilmente controllando nelle impostazioni del vostro router o eseguendo sul vostro computer, nmap con il comando nmap -p 80 --open -sV 192.168.0.0/23 (potrebbe impiegare un po' di tempo per terminare).
Una volta collegati al giusto indirizzo, si dovrebbe vedere un messaggio di errore tipo quello nell'immagine qui sotto ma niente panico: è del tutto normale, per il momento possiamo ignorarlo e andare avanti (in questo caso, cliccare su Avanzate e poi su Procedi su xxx.xxx.xx.xx (rischioso)).

Superato l'errore, verremo accolti da una semplice schermata che ci dirà che Yunohost è stato installato con successo, che mancano ancora almeno due passaggi per completare la prima configurazione, con un rimando alla documentazione ufficiale e che, se vogliamo utilizzare Yunohost, dobbiamo accettare i ragionevoli Termini di servizio (condizione necessaria per abilitare il pulsante Iniziamo e proseguire nella configurazione).

La prima configurazione da fare sarà scegliere un dominio. Potremo optare per 3 possibilità:
- scegliere un dominio locale (ideale per fare delle prove o se non vogliamo che Yunohost sia raggiungibile direttamente tramite Internet);
- scegliere un dominio che già possediamo;
- scegliere un dominio fornito gratuitamente da Yunohost (in maniera simile proprio a FreedomBox), opzione che sceglierò per questa guida.
Scegliendo la terza opzione, oltre ad un nome arbitrario per il dominio di terzo livello, dovrebbe scegliere anche uno dei tre diversi domini di secondo livello disponibili e impostare una password che sarà meglio salvare da qualche parte (ad esempio nel nostro password manager preferito) perché ci consentirà di recuperare il controllo del dominio appena scelto in caso di una nuova installazione di Yunohost. Sarà poi possibile aggiungere altri domini di quarto livello. Anche questa volta dovremo accettare i soliti Termini di servizio per proseguire nella registrazione del dominio. Al momento, purtroppo, non è possibile da interfaccia grafica abilitare direttamente una funziona che aggiri il doppio NAT di alcuni operatori telefonici come in FreedomBox.
» Leggi: Bitwarden: Il guardiano delle tue password - guida all'uso

A questo punto non ci rimane che configurare un account amministratore. Basterà scegliere un username, un nome utente completo, una password sicura e infine cliccare su Successivo. Un messaggio di avviso ci informerà che la procedura di post installazione potrebbe richiedere alcuni minuti e di non chiudere la pagina o interrompere l'operazione. Nel frattempo potremo seguire le operazioni che stanno avvenendo nella nuova finestra che comparirà accompagnata da una simpatica animazione che ricorda PacMan.

Un nuovo avviso ci comunicherà che la procedura si è conclusa e ci consiglierà i prossimi passi da fare (diagnosi del sistema e finalizzazione dell'installazione) dopo aver fatto l'accesso con le credenziali del nostro account amministratore appena creato.

Appena eseguito l'accesso sarà facile trovare la possibilità di eseguire la Diagnosi che, una volta terminata, genererà un report completo e dettagliato evidenziando i problemi.

Alcuni di questi problemi, come quelli che riguardano l'inoltro delle porte, potranno essere per il momento ignorati, altri sarà meglio sistemarli in fretta (come la segnalazione presente nel mio report che indicata che il kernel in uso è affetto da una vulnerabilità conosciuta!!); per altri sarà disponibile un pulsante Dettagli con altre indicazioni utili per la risoluzione del problema. In linea generale avremo delle indicazioni segnalate in azzurro che ci danno solo informazioni sul sistema, degli errori segnalati in rosso che richiedono subito attenzione perché possono compromettere il funzionamento o la sicurezza del nostro server, degli avvisi in giallo che indicano dei miglioramenti che possiamo apportare ma che comunque non sono compromettenti e infine in verde sono rilevate le impostazioni corrette per il sicuro funzionamento.
NB:La presenza di alcuni errori sono dovuti al fatto che sto eseguendo Yunohost su una macchina virtuale.

Posso rimediare al problema principale semplicemente facendo un Aggiornamento del sistema e Aggiorna tutti i pacchetti a cui dovrà seguire un riavvio (possiamo eseguirlo anche da questa interfaccia, partendo dalla schermata principale, andando su Strumenti, Spegnere/Riavviare, Riavviare). Dalla schermata Aggiornamento del sistema, sarà possibile anche aggiornare le app installate, che adesso risultano aggiornate (perché ancora non ne abbiamo installata nessuna).

Per completare la correzione degli errori rilevati dal report, dobbiamo sistemare l'inoltro delle porte: basterà prendere nota di quelle che risultano chiuse e aprirle sul router. Una volta modificato le impostazioni sul router potremo lanciare un altra volta la Diagnosi per verificare di aver effettivamente risolto tutti i problemi principali.
» Leggi: Come aprire le porte sul router/modem: la guida definitiva al port forwarding (inoltro delle porte)

Un altra cosa di cui potremo occuparci a questo punto è la creazione di un certificato per le connessioni HTTPS in modo da non ricevere più il messaggio di avviso quando ci colleghiamo al nostro server con Yunohost tramite browser.
Infine non ci rimane che installare qualche app per iniziare ad utilizzare il nostro server e possiamo farlo semplicemente andando in Applicazioni, dove possiamo vedere il catalogo delle app installate (ancora nessuna) e poi Installa un'app. Avremo così accesso a tutte le app disponibili, raggruppate in sezioni ma avremo anche la possibilità di vederle tutte insieme cliccando su Tutte le app: volevo inserire uno screenshot per mostrarle ma sono davvero tantissime, più di 670! E se non vi bastassero è sempre possibile installare applicazioni custom.
Con un numero così elevato di app è possibile che alcune non funzionino a dovere ma, con una procedura di test automatici, Yunohost riesce ad assegnare un voto di stabilità, da 0 (che significa app non funzionante) a 8 (che significa che un app non solo è perfettamente funzionante ma è sempre stata correttamente mantenuta e aggiornata negli ultimi 5 anni!) ad ognuna, in modo che un utente possa avere consapevolezza di quello che sta per installare. Da notare che le app con voto maggiore o uguale a 6 (che sono 654 al momento in cui scrivo, evidenziando una qualità generale del progetto molto elevata) vengono ospitate sui server di Yunohost per maggior controllo e sicurezza. È anche possibile filtrare le app per la qualità in modo da poter scegliere solo tra le migliori.

Una volta individuata l'app che vogliamo installare, dovremo selezionarla e si aprirà una pagina molto curata che oltre alla descrizione, uno screenshot e ai link a tutta la documentazione specifica dell'app, mostra l'integrazione con Yunohost (molto interessante i valori di RAM e occupazione del disco dell'utilizzo tipico!), permette di inserire ulteriori parametri di configurazione eriporta, evidenziandoli dal resto, alcune note importanti riguardanti l'attivazione dell'app scelta. Al termine dell'installazione, solo per alcune app, potrebbe essere mostrato un avviso importante riguardo l'installazione come, ad esempio, una password di default per il primo accesso.

Una volta installata l'app sarà visibile in Applicazioni e selezionandola potremo vedere ancora una volta la cura messa in questo progetto: non solo avremo la possibilità di modificare alcuni parametri ma, per alcune app, saranno presenti degli appunti per indicare esattamente cosa sono questi parametri. Da questa schermata sarà possibile anche aggiornare o disinstallare l'app oltre naturalmente ad accedere al pannello di configurazione dell'app stessa con Apri quest'app.

Amministrazione
L'amministrazione di Yunohost avviene dal pannello di controllo principale, del quale abbiamo appena visto il menu Applicazioni, che consente di installare gestire le app.
Le prime due voci di questo pannello servono per amministrare gli Utenti e i Gruppi e permessi di questi. Da questi menu possiamo facilmente aggiungere nuovi utenti che avranno subito una mail dedicata del tipo nomeutente@dominioscelto.nohost.me e accesso a quasi tutte le app già installate. Ovviamente, l'accesso degli utenti non amministratori sarà consentito per il solo utilizzo dell'app e non per la modifica delle impostazioni. Possiamo vedere che c'è anche un gruppo speciale, Visitatori, che consente l'accesso anonimo (cioè senza necessità di digitare nome utente e password) all'utilizzo di alcune app.

Così come FreedomBox, anche YunoHost, attiva l'autenticazione unica (Single Sign-On o SSO) per tutte quelle app che la supportano; una volta fatto l'accesso sul portale di Yunohost, potremo utilizzare ogni app installata e accessibile al nostro utente e/o gruppo, senza dover reinserire username e password per ognuna.
Su Domini avremo la possibilità di gestire o cambiare il nostro dominio, creare un certificato Let's Encrypt ma non solo: potremo personalizzare il portale di accesso di Yunohost! Sarà possibile cambiare nome, logo e messggio di ben venuto per gli utenti, scegliere un app preferita dove indirizzare subito gli utenti una volta connessi, scegliere un tema diverso per l'interfaccia e anche un foglio di stile personalizzato! È perfino possibile inserire un motore di ricerca così che potremo anche impostare il portale di Yunohost come homepage sul nostro browser!

Abbiamo già accennato anche alla funzione di Aggiornamento del sistema e di come questa controlla due diversi repository: quello ufficiale di Debian per l'aggiornamento della sistema base e quello dei pacchetti di yunohost.
Il menu Strumenti contiene molte funzioni interessanti: la prima voce, Registri, contiene i log di tutte le operazioni fatte mentre in Migrazioni è possibile vedere gli avanzamenti di versione in sospeso (che necessitano riavvio) o già precedentemente effettuati.

Il menu Hard Drives è una funziona ancora sperimentale e adesso consente solo di vedere i dischi presenti sul sistema.
In Servizi è possibile monitorare lo stato dei servizi e, all'occorrenza, selezionandoli, vedere il loro log, avviarli se sono interrotti o stopparli e/o riavviarli se sono in esecuzione.

Molto curata la sezione Firewall dove, tramite interfaccia grafica con semplici e chiari interruttori, è possibile aprire le porte già configurate sui servizi installati o attivare per questi l'UPNP. Chiaramente è anche possibile modificare le regole già impostate e aggiungerne di personali.

Nelle Impostazioni di Yunohost è possibile modificare parametri riguardanti la sicurezza, le email (che per impostazioni predefinita vengono assegnate a tutti gli utenti al momento della creazione di queste) e attivare la compressione dei backup.

In Impostazioni Web-Admin è possibile impostare la lingua (scegliendone anche un di riserva, tipicamente l'inglese, in caso di traduzioni non complete), abilitare o disabilitare Cache, Animazioni di transizione di pagina e la modalità scura.
Torniamo al pannello di controllo principale dove abbiamo già visto la funzione Diagnosi ma manca da vedere una funzione importantissima per un progetto come questo: il Backup!
Qui troveremo gli archivi presenti dove verrà salvato il backup e, selezionandolo, sarà possibile crearne uno nuovo. Prima di creare l'archivio tar potremo scegliere quello che vogliamo salvare: potremo scegliere si selezionare anche tutto ma a mio avviso la parte più importante è quella di Sistema che contiene tutte le configurazioni di Yonuhost e i dati degli utenti mentre per quanto riguarda le App, sarà da valutare se inserirle o meno nel backup in base al tempo speso nella configurazione di queste.

Ma conservare un backup sullo stesso disco dove è installato Yunohost non è una buona idea; sarebbe consigliato almeno aggiungere un altro disco dove salvare i backup. Comunque è sempre meglio avere anche un copia offline ed ecco perché, selezionando, il backup appena creato, avremo la possibilità di scaricarlo (oltre a poterlo cancellare e ripristinare ovviamente).

Quello che abbiamo visto è la procedura di backup manuale, per automatizzare i backup si consiglia di avvalersi di una delle 3 app disponibili nel repository di yunohost.
Sicurezza
Gli sviluppatori di Yunohost sostengono che il progetto sia sviluppato con la sicurezza in mente e, a riprova di questo, sono stati presi molti accorgimenti in merito. Troviamo, anche qui come su FreedomBox, un firewall già attivato, coadiuvato da fail2ban (che però non è possibile gestire nativamente da interfaccia grafica ma si può installare un'apposita applicazione), i programmi server sono configurati secondo le raccomandazioni di sicurezza migliori, c'è un controllo sulla qualità delle password degli utenti e queste non sono mai salvate in chiaro, controllano bene i permessi di file e cartelle e ogni programma installato è eseguito come utente separato e con ridotte capacità di modificare il sistema. Inoltre ricordiamo che la base è Debian, configurata con Apparmor e la sandbox di systemD per i servizi principali e che ha delle procedure di sicurezza ben conosciute e rodate.
Mancano però altri elementi che renderebbero questo progetto davvero perfetto. Se è possibile accettare che sistema immutabile e container siano, ancora una volta (vedi FreedomBox), sacrificati a favore del risparmio delle risorse per rendere il progetto alla portata di chiunque (e soprattutto di qualunque hardware, anche datato), fa storcere un po' la bocca l'impossibilità di abilitare l'autenticazione a 2 fattori, almeno per il momento perché il team di sicurezza di Yunohost è già a lavoro per implementarlo (ricordo che FreedomBox è già passato all'autenticazione con passkey!).
» Leggi: [Linux] Che cosa sono i sistemi "immutabili"?
» Leggi: Avete già attivato l'autenticazione a due fattori su ogni vostro account? Fatelo subito!

» Leggi: Che cosa è la passkey?
Valgono poi le ultime considerazioni fatte per FreedomBox: l'accesso tramite VPN e l'utilizzo di utenti non amministratori per le app può contribuire a rendere il sistema meno esposto e quindi più sicuro.
Conclusioni
Un progetto che, nonostante non sia del tutto perfetto, mi ha davvero sorpreso per la cura con cui è sviluppato, visibile soprattutto in alcuni dettagli e nella qualità generale dell'intero sistema. Il catalogo delle applicazioni che, esagerando di poco, potremo anche definire sterminato, è sicuramente un punto di forza: impossibile non trovare il giusto programma che fa al caso nostro. L'impossibilità di configurarlo da interfaccia grafica direttamente sul dispositivo dove è installato Yunohost è un altra nota che io considero positiva: il sistema è estremamente minimale a tutto vantaggio delle prestazioni e della sicurezza, ma riconosco che può complicare un po' le cose per gli utenti meno smaliziati.
In definitiva, per tornare alla domanda iniziale (Yunohost regge il confronto con FreedomBox?) la risposta è un sì deciso dato che, per alcuni aspetti (vedi il numero di app!), lo supera di slancio. Rimane comunque un po' più impegnativo da gestire e mantenere ma non fino al punto di non consigliarlo ad un neofita che abbia voglia e tempo da investire per imparare a gestire il proprio cloud personale.