L'amministrazione di un server Linux può apparire complessa e laboriosa, soprattutto agli occhi di un neofita. Come abbiamo visto nelle lezioni precedenti, una installazione server tipicamente non include un'interfaccia grafica, ma solo quella a riga di comando. Sebbene sia sempre possibile installare un qualsiasi ambiente grafico a propria scelta, questa soluzione non è molto agevole per le operazioni di amministrazione, poiché esistono pochi programmi con interfaccia grafica dedicati a questi task.
Inoltre, nel caso in cui si voglia amministrare il server da remoto, e cioé senza utilizzare la console (monitor, tastiera e mouse) fisicamente connessa alla macchina, sarà necessario ricorrere a soluzioni di controllo remoto come VNC, decisamente esosi in termini di banda richiesta ed in generale più difficili da configurare ed usare.
Una soluzione che coniuga flessibilità e semplicità d'uso è offerta dalle interfacce di amministrazione web based. Si tratta di applicazioni espressamente concepite per automatizzare diversi task di amministrazione, dalla gestione degli utenti all'installazione di nuovi servizi, dotate di interfaccia web, e quindi accessibili attraverso un comune browser.
Una tra le più famose interfacce di amministrazione web based è Webmin, rilasciata per la prima volta nel 1997. Webmin ha un'architettura modulare e questo consente di personalizzare la propria installazione in base ai servizi installati sul server. Inoltre, tale caratteristica ha garantito una certa longevità al progetto, permettendo l'aggiunta di nuovi moduli o l'aggiornamento di moduli già esistenti senza mai stravolgere il cuore del sistema.
Webmin è disponibile per diversi sistemi Unix-like, inclusi Solaris, FreeBSD e, ovviamente, Linux.
Installazione
In ambiente Ubuntu Server, l'installazione di Webmin avviene attraverso il repository ufficiale del progetto. Si tratta in realtà del repository per Debian, che risulta però pienamente compatibile con Ubuntu.
Per prima cosa, è necessario aggiungere il repository, installare la chiave GPG con cui i pacchetti sono firmati ed aggiornare la lista dei pacchetti disponibili, con i comandi:
# add-apt-repository "deb http://download.webmin.com/download/repository sarge contrib"
# wget -qO- http://www.webmin.com/jcameron-key.asc | apt-key add
# apt update
Quindi, dopo aver aggiornato la lista dei pacchetti, basterà procedere con l'installazione mediante il comando apt:
# apt install webmin
Al termine dell'installazione, il servizio sarà già attivo ed in ascolto sulla porta TCP 10000. Pertanto, nel caso in cui il firewall sia attivo, bisognerà configurarlo opportunamente per consentire le connessioni in ingresso su questa porta. Maggiori dettagli sono disponibili nella lezione dedicata ad UFW.
Configurazione SSL
Come già detto, l'accesso all'interfaccia avviene attraverso un comune browser. Sarà sufficiente indicare l'indirizzo IP o il nome di dominio associato alla macchina server, avendo l'accortezza di specificare anche il numero di porta. Ad esempio, se l'indirizzo IP del server è 10.0.0.3, l'indirizzo da digitare nel browser è: http://10.0.0.3:10000.
La configurazione di default di Webmin però non utilizza HTTPS. Per abilitare HTTPS è necessario infatti configurare opportunamente il servizio, installando i certificati del server nella pagina dedicata nella sezione Webmin configuration, come mostrato nella figura seguente.
La pagina di configurazione permette anche di automatizzare il processo di generazione di un certificato self-signed, oppure di richiedere, generare ed installare direttamente un certificato Let's Encrypt.
Amministrazione di sistema
Webmin permette di controllare ogni aspetto della macchina direttamente dalla sua comoda interfaccia web. Dispone di un modulo per la gestione di file che permette di navigare il filesystem del server ed interagire con esso (ad esempio, creare, spostare o cancellare file e directory, effettuare upload e download di file, gestire i permessi, ecc). Inoltre, consente di montare file system di rete.
Tramite l'apposita pagina è possibile consultare i log di sistema e dei servizi installati, filtrare i messaggi per priorità e gestire i parametri di rotazione.
Un modulo dedicato permette di gestire i job indicati nelle tabelle di cron utilizzando una semplice interfaccia grafica per la selezione degli intervalli di tempo da utilizzare.
Anche la gestione di utenti e gruppi è semplificata dalla presenza di una comoda pagina di configurazione, dalla quale è possibile non soltanto gestire il database degli utenti ma anche definire le politiche di aggiornamento delle password ed i criteri che esse devono rispettare.
Una sezione apposita integra invece il supporto agli aggiornamenti di sistema, permettendo l'installazione di nuovi pacchetti o di aggiornamenti direttamente dall'interfaccia web.
Anche le procedure di backup possono essere gestite dal web. configurando ciascun task in modo dettagliato. Webmin permette infatti di definire la frequenza con cui effettuare ogni backup, se informare l'amministratore in caso di errori via e-mail, ecc. Analogamente, è possibile ripristinare un backup creato da Webmin direttamente dal browser.
Infine, per quei task per i quali è necessario l'utilizzo della riga di comando, è possibile richiamare una shell direttamente dal browser.
Servizi supportati
Oltre alla configurazione di sistema, esistono moduli dedicati per la gestione dei più comuni servizi installabili su un server Linux, tra i quali ricordiamo:
- Apache 2
- nginx
- MySQL
- PostgreSQL
- BIND
- Dovecot
- Postfix
- Spamassassin
- ProFTPD
- OpenSSH
e tanti altri. Ciascuno di questi moduli consente di gestire ogni aspetto del servizio a cui si riferisce, permettendo addirittura di installarlo direttamente dal browser qualora questi non sia già presente nel sistema.
Inoltre, l'interfaccia di Webmin è stata aggiornata di recente, offrendo un migliore supporto ai browser moderni ed ai dispositivi mobili. Grazie a questa caratteristica è possibile operare sul server da qualsiasi postazione remota, senza la necessità di impiegare client particolari.
Tuttavia, è bene ricordare che uno strumento così potente può rappresentare anche un potenziale problema di sicurezza. Se un attaccante riuscisse a compromettere in qualche modo l'interfaccia web, ottenendo così l'accesso a Webmin, potrebbe effettuare qualunque operazione sul sistema. Pertanto, di solito si sconsiglia di rendere Webmin accessibile direttamente dal web. Meglio, ad esempio, configurarlo per restare in ascolto solo su un'interfaccia locale. Sarà possibile in questo caso accedere da remoto, magari attraverso una connessione VPN.
Al di là delle considerazioni sulla sicurezza, che si applicano comunque a qualunque strumento di amministrazione, è indubbio che Webmin sia uno strumento estremamente comodo ed efficace.