Un server personale è sicuramente uno strumento che ogni appassionato di informatica dovrebbe, prima o poi, provare a mettere su. Può ospitare molti servizi che possiamo utilizzare anche da remoto e dato che è gestito da noi, garantisce un livello di privacy difficilmente eguagliabile anche dai migliori fornitori terzi. Ma la configurazione da zero e la manutenzione di un server non sono un lavoro alla portata di chiunque, per fortuna esistono soluzioni di semplice attivazione e manutenzione come, ad esempio, FreedomBox!

FreedomBox è un progetto che nasce nel 2010 per mano di Eben Mongler con il preciso scopo di rendere chiunque capace di riprendere il controllo sui propri dati e abbandonare le soluzioni offerte delle solite big tech in modo da evitare profilazione, censura e sorveglianza. È sviluppato tenendo ben presente due punti: software open source (motivo per cui è stata scelta la distro Linux Debian come base ma anche per la distribuzione dei pacchetti) e hardware a basso costo (come appunto un RaspberryPi).
Il progetto, attualmente mantenuto da una fondazione senza scopo di lucro, offre anche una soluzione già pronta da acquistare ma vedremo adesso che la configurazione è talmente semplice e veloce che, se avete un vecchio computer o un RaspberryPi, sarà un gioco da ragazzi creare una FreedomBox in autonomia!
Installazione su RaspberryPi
Per installare un sistema operativo su RaspberryPi si procede come al solito, scrivendo l'immagine dedicata al nostro modello di board su una scheda miniSD anche con il solito RaspberryPi Imager oppure, come suggerito sul sito di FreedomBox, con Balena Etcher.
Andiamo quindi a cercare il file corretto da scaricare sul sito ufficiale di FreedomBox; potremo scegliere tra due versioni Stable (quella che dovremo preferire!) e Testing e poi potremo scegliere se scaricare il file direttamente dal sito oppure utilizzare Torrent.
» Leggi: La Grande Guida a BitTorrent

Dopo aver verificato integrità e autenticità del pacchetto appena scaricato, possiamo passare alla copia dello stesso su miniSD con i programmi già menzionati e infine non ci rimane che inserire la miniSD nella nostra board e avviarla.
Installazione su PC
Se abbiamo un vecchio PC possiamo trasformarlo facilmente nella nostra FreedomBox con diversi metodi. Dato che è disponibile anche un immagine per VirtualBox, possiamo utilizzare questo programma senza necessità di formattare o reinstallare il sistema operativo già presente ma, se vogliamo maggior sicurezza o migliori prestazioni sarà meglio installare una distro Linux e in questo caso Debian è sicuramente la scelta migliore perché, come detto, è stata scelta come base da FreedomBox.
» Leggi: La virtualizzazione dei sistemi operativi non sarà più un problema: guida a VirtualBox
Un volta installata Debian potremo installare FreedomBox con due semplici comandi:
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install freedombox

Il primo aggiornerà i repository in modo da scaricare le ultime versioni disponibili dei pacchetti e il secondo, dopo aver impostato una variabile di ambiente (DEBIAN_FRONTEND) per saltare una altrimenti estenuante configurazione dei pacchetti, installerà freedombox.
Durante l'installazione di freedombox dovrebbe essere mostrata una chiave di attivazione; se ve la siete persa, possiamo (e dobbiamo!) recuperarla facilmente controllando il contenuto del file /var/lib/plinth/firstboot-wizard-secret.
A questo punto possiamo aprire un browser per iniziare la configurazione di FreedomBox.
Configurazione iniziale
La configurazione iniziale sarà simile qualunque sia la via che avete seguito per l'installazione e per avviarla sarà sufficiente aprire un browser e digitare l'indirizzo IP del dispositivo della vostra FreedomBox. Se volete eseguire la configurazione sullo stesso dispositivo dove è installato FreedomBox, potrete inserire il link http://127.0.0.1 oppure http://freedombox; altrimenti potrete eseguire la configurazione dal vostro computer connesso alla stessa rete della FreedomBox e potrete ricavare l'IP di quest'ultima controllando, per esempio, nelle impostazioni del router od eseguendo una scansione della vostra LAN con nmap utilizzando il comando nmap -p 80 --open -sV 192.168.0.0/23 (questo comando potrebbe impiegare un po' di tempo ma dovrebbe trovare il giusto indirizzo IP).
Aprendo il link potrebbe presentarsi un avviso con la dicitura "Connessione non privata" o "Potenziale rischio per la sicurezza": questo dipende dal fatto che la connessione HTTPS con la FreedomBox utilizza un certificato autogenerato e quindi non validato da nessuna Certificate Authority. Per il momento non c'è da preoccuparsi troppo e possiamo tranquillamente ignorare l'avviso e scegliere di procedere comunque sul sito.

Come prima cosa ci verrà richiesta la chiave di attivazione generata durante l'installazione; se non l'abbiamo segnata, un promemoria ci ricorderà dove possiamo andarla a trovare. In seguito, le uniche due operazione per portare a termine la configurazione della nostra FreedomBox, saranno quelle di aggiungere un utente amministratore, inserendo username, password e una mail e decidere se attivare gli aggiornamenti frequenti oppure no. Quest'ultima decisione va ben ponderata in quanto l'attivazione degli aggiornamenti frequenti consente di avere subito le ultime funzioni e caratteristiche implementate per ogni applicazione disponibile in FreedomBox ma è una scelta da cui non si può tornare indietro. Al contrario, se decidiamo in questa fase di non attivare gli aggiornamenti frequenti potremo sempre attivarli in un secondo momento; fino ad allora riceveremo comunque gli aggiornamenti di sicurezza ma dovremo aspettare fino a 2 anni per ricevere le ultime funzioni delle applicazioni. Se non sapete bene cosa è meglio scegliere, seguite la scelta raccomandata che è quella di attivare subito gli aggiornamenti frequenti. La base della nostra FreedomBox è così già configurata...

...ma altri passaggi possono essere fatti prima di metterla a lavoro e questi ci verranno suggeriti nella prossima schermata.

I più importanti saranno:
Aggiorna adesso freedombox: anche se gli aggiornamenti vengono fatti automaticamente ogni giorno, prima di procedere oltre con la configurazione, meglio partire da un sistema aggiornato;

Verifica le opzioni sulla privacy: qui sarà possibile scegliere se partecipare alla raccolta di dati anonimi a fini statistici, scegliere se utilizzare DNS alternativi e scegliere un diverso servizio per la rilevazione del nostro IP pubblico;

Configura e pianifica un backup remoto: FreedomBox utilizza BorgBackup, dietro le quinte, per la gestione dei backup e sarà importante configurare e pianificare una soluzione automatica per la copia dei nostri dati che verrà poi automatizzata da FreedomBox. Si potrà scegliere un disco diverso o una partizione dello stesso disco dove è installato FreedomBox ma si potrà scegliere anche un computer remoto accessibile tramite SSH (soluzione questa senz'altro da preferire, quando possibile).

Vediamo brevemente anche gli altri passi disponibili e iniziamo con Configura un nome di dominio: per rendere accessibile la nostra FreedomBox attraverso internet, se non abbiamo una connessione con indirizzo pubblico statico, possiamo utilizzare il DDNS gratuito messo a disposizione dalla fondazione senza scopo di lucro che gestisce FreedomBox, semplicemente registrandosi su https://ddns.freedombox.org/. La procedura è piuttosto semplice: una volta cliccato su Register/Login saremo reindirizzati su un altra pagina dove sceglieremo Self register; in seguito sceglieremo un nome da assegnare al nostro dispositivo e un dominio tra i due disponibili (fbx.one o freedombox.rocks), inseriamo poi la nostra mail e (2 volte) una password robusta e completiamo la registrazione inserendo il codice proposto e cliccando su Register. Quasi immediatamente dovremo ricevere una mail per confermare la registrazione e quindi potremo accedere al pannello di controllo del DDNS.

Adesso non ci rimane che tornare alla configurazione del nome di dominio della nostra FreedomBox e aggiungere come Dominio Dinamico quello che abbiamo appena creato, avendo cura di inserire ddns.freedombox.org nel campo Indirizzo server GnuDIP, il nostro dominio completo scelto (ad esempio mycloud.freedombox.rocks) nel campo Nome dominio e Nome utente e Password utilizzati per la precedente registrazione e infine cliccare su Invia. Se tutto è stato fatto senza errori la configurazione verrà accettata e da ora in avanti la nostra FreedomBox sarà sempre accessibile attraverso internet al dominio da noi scelto!

Per completezza, possiamo utilizzare qualsiasi altro provider DDNS che supporti GnuDIP e cosa ancor più importante, se non abbiamo un IP pubblico perché siamo dietro un doppio NAT o altro, possiamo aggirare questa limitazione e rendere la nostra FreedomBox raggiungibile attraverso internet tramite l'attivazione di un Hidden Service della rete Tor oppure utilizzare un provider PageKite!
» Leggi: La Grande Guida a Tor: navigazione anonima gratuita, senza censura o VPN
L'altro passo da prendere in esame è Verifica e configura le connessioni di rete. Di solito non è necessario intervenire in questa sezione se possiamo già accedere a FreedomBox dalla nostra LAN ma può essere utile se, ad esempio, vogliamo cambiare tipo di connessione al dispositivo che ospita FreedomBox, ad esempio, passando da una connessione via cavo Ethernet ad una Wi-Fi. Ma da qui è possibile anche trasformare la nostra FreedomBox in un ruoter in grado di gestire la connessione di tutti i nostri dispositivi casalinghi! Date le grandi possibilità offerte e dato che la maggior parte degli utenti non avrà bisogno di complicate configurazioni di rete, rimando i pochi interessati ad approfondire l'argomento sulla pagina di manuale dedicata.
Passiamo ora all'ultimo passo: Inizia ad usare FreedomBox installando le app. Dalla schermata che si presenterà sarà possibile installare con un click molti utili software, alcuni dei quali abbiamo già visto qui su Turbolab, tra i quali non posso non segnalare Tor, Privoxy e Syncthing.
» Leggi: Meno pubblicità e più privacy: Guida completa a Privoxy (Windows/Mac/Linux)
La lista in verità non è molto lunga ma possiamo trovare almeno un software per tutte le diverse necessità: degni di nota sono, senz'altro, Nextcloud per la creazione di un cloud personale completo, OpenVPN o il più efficiente WireGuard per la creazione di una VPN con la quale accedere in sicurezza da remoto ai nostri servizi, Radicale per la gestione di calendario e rubrica tramite protocolli CaldDAV e CardDAV, Roundcube per la gestione di una mail personale tramite interfaccia web, MiniDLNA come semplice media server, Home Assistant per la gestione della domotica...

La maggior parte dei programmi potrà essere installata e attivata con pochi click mentre per altri, più complessi, è presente una piccola guida che consente una rapida configurazione e messa a punto ma è sempre consigliato leggere anche la documentazione specifica dell'applicazione che vogliamo installare (RTFM!)
Amministrazione
Per amministrare FreedomBox abbiamo a disposizione una pagina dedicata, raggiungibile cliccando in alto a sinistra su Sistema.

Qui troviamo 5 categorie di funzioni, alcune delle quali abbiamo già visto. La prima, già vista, è Visibilità e raccoglie tutte le funzioni che consentono di rendere accessibile attraverso internet la nostra FreedomBox. Anche le funzioni raccolte in Dati sono già state esaminate (Privacy e Backup).
In Sistema troviamo qualche voce già vista (come Reti) e qualcuna dalla funzione piuttosto semplice da intuire (Data e Ora). Da qui, con la funzione Utenti e Gruppi, possiamo aggiungere altri utenti e gestire i permessi che vogliamo concedere a questi. Come si può vedere, i permessi sono molto specifici e legati alle app disponibili. Da notare che FreedomBox supporta l'autenticazione sicura tramite passkey.
» Leggi: Che cosa è la passkey?

Nella sezione Sicurezza troviamo: di nuovo, Sicurezza dove possiamo apprezzare che fail2ban è già attivo per impostazione predefinita e verificare che gli aggiornamenti frequenti sono stati attivati; Let's Encrypt che ci consente di creare un certificato per le connessione HTTPS riconosciuto dal nostro browser ed evitare così il messaggio di errore che ci è comparso all'inizio e Firewall, anche questo già attivo e con le regole giuste per le applicazioni che abbiamo installato.

L'ultima categoria è Amministrazione; qui possiamo personalizzare alcuni aspetti della connessione SSH, gestire lo spegnimento e il riavvio, fare una diagnosi del sistema (che comunque avviene automaticamente ogni giorno) e abilitare la riparazione automatica, accedere all'interfaccia di amministrazione Cockpit e abilitare il monitor delle prestazioni.


Sicurezza
Per quanto riguarda la sicurezza FreedomBox è piuttosto sicuro, merito soprattutto della sua solida base (Debian!), della sandbox propria di systemD e anche del sistema di controllo di accesso ai file, AppArmor, installato e attivato per impostazione predefinita da Debian 10. Ha un buona gestione dei permessi dei gruppi e degli utenti, una buona diagnostica con report facilmente leggibili e abbiamo già visto che ha attivo per impostazione predefinita fail2ban.
Ciò non toglie che si possa fare di più: ad esempio, piuttosto che esporre i servizi direttamente su internet si possono rendere accessibili tramite una VPN WireGuard (facilmente configurabile seguendo le indicazioni fornite da FreedomBox).
Anche se l'utente amministratore ha accesso ha tutte le app installate, per l'utilizzo di queste, molto meglio utilizzare un utente dedicato con permessi limitati.
Conclusioni
Devo essere sincero, la prima volta che ho provato FreedomBox sono rimasto un po' deluso dal numero di app forse un po' limitato ma, approfondendo un po' la conoscenza del progetto, sono rimasto colpito dal modo semplice con cui vengono presentate e attuate soluzioni che diversamente sarebbero anche piuttosto complesse (come nel caso di accesso tramite internet senza IP pubblico o l'installazione di Nextcloud!). Si vede che il progetto, pur sempre mantenuto, ha ormai qualche anno sulle spalle (16, a conti fatti) e questo è evidente soprattutto perché, in un epoca in cui si parla continuamente di container, docker, virtualizzazione e isolamento, le applicazioni sono installate sul sistema operativo principale (che tra l'altro non è immutabile...). Questo d'altra parte si sposa perfettamente con uno degli obbiettivi che si propone, quello di funzionare su hardware a basso costo, dato che le applicazioni installate in questo metodo richiedono meno risorse per funzionare ma non è detto che siano meno sicure! Sistema molto automatizzato che consente una facile gestione, dedicandovi poco tempo, tramite una semplice interfaccia grafica e non richiede mai l'utilizzo della riga di comando che può spaventare qualche neofita. Nel complesso è una soluzione che mi sento di consigliare a chiunque, anche senza troppa esperienza, voglia provare a mettere su un suo cloud personale. D'altronde è proprio per questo che è nato FreedomBox.