Creare server Linux: guida agli aspetti più importanti

Quali sono le principali differenze tra le distribuzioni per creare server Linux. Che cosa tenere in considerazione.

Server, supercomputer, dispositivi embedded, dispositivi mobili, apparati per il networking e per lo storage dei dati (i.e. server NAS), automotive, elettronica di consumo: quasi tutto ciò che utilizziamo oggi funziona grazie al kernel Linux: era il 25 agosto 1991 quando Linus Torvalds ne presentava la prima versione.
Linux si trova ovunque, anche in posti dove non si pensa che il pinguino sia utilizzato: negli smartphone, smartwatch e smart TV, per far funzionare la maggioranza dei siti Web che consultiamo ogni giorno, negli enti pubblici, in borsa, nei dispositivi per l’Internet delle Cose (IoT), sulla piattaforma Microsoft Azure e addirittura in Windows 10 e 11 grazie a WSL (Windows Subsystem for Linux).

L’unico segmento di mercato in cui Linux non è mai decollato è l’ambito desktop: Torvalds aveva a suo tempo fatto riferimento all’opportunità di usare una piattaforma desktop comune tra le varie distribuzioni ma alla fine la “libertà di scelta” e l’offerta così ampia è alla base della stessa filosofia sulla quale poggia il sistema operativo.

Server Linux: quali sono le alternative e le differenze tra le distribuzioni

Realizzare un server Linux è utile a qualsiasi livello: in azienda, presso lo studio professionale o in ambito privato.
Nelle pagine de IlSoftware.it abbiamo visto come installare, configurare e utilizzare server web, server FTP, server multimediali, piattaforme per la gestione di chat e videoconferenze, server di posta (IMAP/SMTP), soluzioni per lo storage dei dati basate su server Linux.

Creare un server Linux in locale o sul cloud permette di azzerare i costi di licenza del sistema operativo e offre la possibilità di impostare una macchina (fisica o virtuale) che possa rispondere alle richieste dei dispositivi (client) collegati. Sul server Linux possono essere installate varie applicazioni e posti in ascolto i servizi di cui si ha necessità.
Come abbiamo visto in altri articoli, quindi, un server Linux può fungere da firewall, essere utilizzato per memorizzare i dati, per gestire le copie di backup delle singole workstation, per ricoprire il ruolo di server multimediale, per offrire sistemi di collaborazione (simil-Office) e condivisione dei dati, per pianificare impegni, attività e riunioni e molto altro ancora. Tutto dipende dai pacchetti che s’installano.
Si può anche utilizzare il server Linux come piattaforma per installare Docker e usare applicazioni containerizzate: grazie ai container si possono utilizzare applicazioni già pronte per l’uso con l’ambiente sottostante completamente configurato ed ottimizzato.

Cosa c’è di simile e di diverso tra le varie distribuzioni Linux server

I comandi Linux di base e la loro sintassi è generalmente identica prendendo in esame le varie distribuzioni Linux: il kernel Linux è infatti lo strato a più basso livello al di sopra del quale viene costruito tutto il resto.

La maggior parte delle distribuzioni Linux desktop utilizza un’interfaccia grafica quindi un desktop environment diverso. Quando si parla di distribuzioni Linux server il sistema operativo viene di norma gestito da riga di comando, senza un’interfaccia grafica che appesantirebbe inutilmente l’installazione. Inoltre la gestione remota del sistema Linux server avviene di solito via SSH, quindi sempre da riga di comando.

In generale, le principali differenze tra le distribuzioni Linux server risiedono nel gestore dei pacchetti utilizzato dalla singola distribuzione oltre che, ovviamente, nei pacchetti software disponibili e supportati. Sebbene la fonte per la ricerca, l’installazione e la gestione dei pacchetti sia sempre liberamente personalizzabile, i pacchetti installabili in Linux risiedono – nella loro versione più aggiornata – all’interno dei repository ufficiali.
Da una distribuzione all’altra cambia quindi anche l’utilità per la gestione dei pacchetti da riga di comando. Facciamo solo qualche nome:

  • RPM. È il sistema di gestione dei pacchetti utilizzato dalle distribuzioni LSB (Linux Standard Base). Si interfaccia a basso livello con i pacchetti software e può essere utilizzato per raccogliere informazioni, installare, verificare, aggiornare e disinstallare pacchetti. È adottato dalle distribuzioni basate su Fedora come RedHat Enterprise Linux e CentOS.
  • dpkg. È un gestore di pacchetti di basso livello per sistemi basati su Debian. Può installare, rimuovere, fornire informazioni e costruire pacchetti .deb ma non può scaricare e installare automaticamente le varie dipendenze.
  • apt-get. È un gestore di pacchetti ad alto livello per Debian e distribuzione derivate (ad esempio Ubuntu) che fornisce un modo semplice per recuperare e installare pacchetti, compresa la risoluzione delle dipendenze. A differenza di dpkg, apt-get non lavora direttamente con i file .deb ma con il nome di ciascun pacchetto da elaborare.
  • YUM. È utilizzato ad esempio su RedHat Enterprise Linux, Fedora, CentOS, Oracle Enterprise Linux, OpenSUSE, ClearOS e altre distribuzioni. Aggiunge ai sistemi basati su RPM le funzionalità di aggiornamento automatico e di gestione dei pacchetti con gestione delle dipendenze. Essendo uno strumento ad alto livello come apt-get e aptitude, yum lavora con i repository.
  • aptitude. È un altro gestore di pacchetti di alto livello per sistemi basati su Debian che viene essere usato per eseguire operazioni di gestione (installazione, aggiornamento e rimozione di pacchetti). Gestisce anche la risoluzione automatica delle dipendenze in modo semplice e veloce. Fornisce le stesse funzionalità di apt-get e altre aggiuntive come l’accesso a diverse versioni di un pacchetto.
  • DNF. È una versione più moderna e avanzata del gestore YUM che ne incorpora le caratteristiche migliorando le prestazioni e l’utilizzo delle risorse.
  • Pacman. Il gestore di pacchetti presente su Arch Linux: è l’unico strumento presente. Pacman offre pochi comandi destinati alla ricerca, all’installazione e alla rimozione dei pacchetti. Questo gestore di pacchetti può connettersi a Internet e acquisire i vari pacchetti. Pacman è destinato all’installazione di software dal repository di Arch; non è possibile attingere a repository di terze parti.

Le differenze nell’utilizzo dei vari gestori di pacchetti sono principalmente sintattiche, fatta eccezione per portage ovvero la soluzione usata su Gentoo. portage installa i pacchetti compilandoli dal sorgente ogni volta: ciò implica che le procedure d’installazione e aggiornamento richiedono un tempo significativamente più lungo sebbene l’utente abbia così un controllo più preciso sul software.
Le vere differenze scaturiscono dai pacchetti stessi così come dal modo in cui essi vengono distribuiti.

Con il modello Rolling Release, utilizzato ad esempio da Arch e nel ramo Debian unstable, i pacchetti software sono aggiornati all’interno dei repository ufficiali ogni volta che ne viene rilasciata una nuova versione. Questo significa che l’utente riceve sempre i pacchetti più aggiornati pur rischiando la presenza di bug ancora irrisolti.
Di contro il modello Fixed Release prevede che soltanto gli aggiornamenti per la stabilità e la sicurezza vengano inseriti nel repository fino al rilascio della seguente major version. In questo caso si useranno tendenzialmente pacchetti più vecchi ma si potrà beneficiare di maggiore stabilità.

Con i due comandi seguenti si richiede ad esempio il download della lista aggiornata dei pacchetti disponibili e l’applicazione di tutti aggiornamenti:

– Debian, Ubuntu e derivate: sudo apt update && sudo apt upgrade -y
– Fedora, CentOS, RHEL e derivate: yum update -y (utilizzando upgrade vengono anche rimossi i pacchetti ormai obsoleti).

Due parole sulle distribuzioni Linux server

Sebbene Ubuntu sia conosciuta per aver portato Linux in versione desktop a un’ampia fetta di utenti, la sua versione “server” è largamente utilizzata.
Canonical, la società che cura lo sviluppo di Ubuntu, “confeziona” versioni LTS (Long Term Support) di Ubuntu Server che come le equivalenti desktop restano supportate per cinque anni dopo la data di rilascio.

Uno degli aspetti interessanti delle versioni più recenti è l’inclusione del supporto WireGuard, apprezzato protocollo per la gestione di reti VPN che ora è inclusa per impostazione predefinita nel kernel Linux.

Debian, distribuzione dalla quale è stato fatto derivare Ubuntu, ha dalla sua la proverbiale stabilità.
Esistono tre rami denominati unstable, testing e stable: come accennato in precedenza, per entrare a far parte del ramo stable, i pacchetti software devono essere stati precedentemente sottoposti a un periodo di testing lungo diversi mesi.

Per quanto riguarda OpenSUSE, oltre alla versione normale chiamata Leap, viene messa a disposizione una rolling release chiamata Tumbleweed.
Grazie alla sua stabilità, molti utenti preferiscono eseguire i server su OpenSUSE Leap. La distribuzione è disponibile come immagine di rete minima che recupera i pacchetti necessari con un download via Internet oltre che come immagine DVD più pesante (include tutti i pacchetti).

Fedora è una distribuzione sviluppata dalla comunità che funge da banco di prova per la distribuzione commerciale Red Hat Enterprise Linux.
La versione server di Fedora è stata ottimizzata per aiutare gli utenti nella gestione di una macchina sulla quale vengano poste in esecuzione varie applicazioni e servizi sia su un sistema fisico che virtualizzato, anche sul cloud.
La distribuzione raggruppa alcuni pacchetti in moduli: essi possono essere utilizzati sotto forma di stream che caricano diverse versioni per avere a disposizione un ambiente coerente e adatto ai requisiti dei software che vengono installati.

Molto utilizzato in ambito server anche CentOS, sistema operativo concepito per fornire una piattaforma di classe enterprise a chiunque intenda utilizzare Linux per usi professionali. È una distribuzione derivata da Red Hat Enterprise Linux con cui cerca di essere completamente compatibile.

Come installare Linux server

Se si avesse la necessità di provare un’applicazione Linux in un ambiente che simula quello di un’installazione server si può utilizzare il componente di Windows 10 e Windows 11 chiamato WSL (Sottosistema Windows per Linux in italiano).

In un altro articolo abbiamo visto come eseguire Linux in Windows con WSL.
Di default WSL supporta le distribuzioni Linux che vengono elencate aprendo una finestra PowerShell o del prompt dei comandi e digitando quanto segue:

wsl --list --online

WSL può essere quindi sfruttato per simulare la configurazione di un server Linux, installare applicazioni e servizi quindi stabilire una connessione diretta dal sistema host. L’unico problema di WSL è che al momento, nella configurazione predefinita, non permette la connessione da altri dispositivi collegati in rete locale.
Noi siamo riusciti a stabilire un collegamento a una macchina WSL dalla rete locale ma è verosimile che Microsoft prenda in considerazione la gestione di questa specifica esigenza mediante interfaccia grafica.

In alternativa si può installare un server Linux su una macchina virtuale, ad esempio con soluzioni quali Hyper-V, Virtualbox o VMware, su una macchina fisica oppure sul cloud.

Per installare Linux in una macchina virtuale si può semplicemente scaricare il corrispondente file ISO quindi passarlo alla soluzione per la virtualizzazione ed effettuare il boot.
Con una macchina fisica basta invece creare un’unità USB rimovibile ed effettuare il boot da tale supporto: allo scopo si può usare Rufus, UNetbootin, Ventoy o qualunque utilità simile, tutte presentate nelle nostre pagine.

I fornitori di servizi cloud consentono di configurare macchine virtuali a partire da template delle principali distribuzioni Linux. Di solito i “modelli” utilizzati corrispondono a installazioni di base delle più utilizzate distribuzioni Linux, anche in configurazione di solo firewall. In molti casi è possibile creare un server Linux sul cloud da zero indicando la ISO a partire dalla quale deve essere effettuata l’installazione del sistema operativo. Di solito la ISO può essere memorizzata sullo spazio cloud del provider quindi richiamata in fase di “composizione” della macchina virtuale cloud.
Il fornitore del servizio cloud permette di accedere da browser alla finestra della console della macchina virtuale: in questo modo sarà possibile seguire i vari passaggi dell’installazione e concluderla a distanza così come se ci si trovasse fisicamente dinanzi a una macchina fisica.

Dopo aver installato Linux server è consigliabile comprendere e configurare le funzionalità firewall, specie se la macchina fosse collegata direttamente alla rete Internet (porta WAN). ufw (Uncomplicated Firewall) è un firewall software che consente di accettare soltanto i pacchetti dati strettamente necessari sulle macchine Ubuntu, Debian e derivate.

Accertandosi di non rimanere chiusi fuori dalla macchina Linux (ad esempio impostando regole firewall scorrette), specie se si utilizzasse un server remoto o un’installazione sul cloud (la console virtuale accessibile da browser aiuta a risolvere queste situazioni), si può quindi passare a installare e configurare i vari pacchetti software usando le utilità viste in precedenza.

Ti consigliamo anche

Link copiato negli appunti