Proprio qualche settimana fa sfogliando la newsletter settimanale di GitHub sono capitato su un progetto veramente carino (che infatti adesso ha un numero imbarazzante di stelle), che mira al monitoring di un sistema operativo Linux senza notevoli complicanze che possono per esempio essere introdotte da Cacti o Nagios, i quali sono sicuramente più potenti, ma introducono una curva di apprendimento troppo ripida e un overhead decisamente troppo alto per delle banali operazioni di controllo.
È così che ho fatto conoscenza con linux-dash: in una sola pagina web abbiamo il completo controllo su cosa va e cosa non va all’interno del sistema operativo del nostro piccolo server. È scritto in HTML5 con CSS3 utilizzando Twitter Bootstrap per le specifiche di base dell’interfaccia grafica, ed essenzialmente è una banale webapp che non fa altro che prendere dei dati dalla nostra macchina attraverso dei wrapper, per poi proiettarceli in una forma un po’ più carina.

Installazione di linux-dash
Installare linux-dash è un compito semplicissimo, che per i sysadmin alle prime armi può servire anche come banco di prova per verificare di aver compreso il corretto funzionamento di un webserver, del sistema di directory e di alcune meccaniche come htaccess che approfondiremo tra poco. Innanzi tutto assicuratevi di avere php5-json installato, dato che ne è la dipendenza principale:
# apt-get install php5-json
Ovviamente il comando fornito è quello da eseguire per Debian e Ubuntu, ma visto che linux-dash supporta anche parecchie altre distribuzioni Linux è necessario, in un caso d’uso differente, coniugare il comando relativamente al proprio package manager. Successivamente, basterà scaricare l’archivio relativo a linux-dash e inserirlo in una directory del nostro webserver (che sia Apache o Nginx, non importa).
Successivamente possiamo vedere come siano sistemati i file, ad esempio, nell’installazione di prova fatta da me:
blaster@sauron ~ $ ls /var/www/linux-dash/
css index.html js LICENSE.md README.md sh
blaster@sauron ~ $
Visitando quindi il nostro sito alla sottodirectory /linux-dash (come ad esempio www.dominioesempio.it/linux-dash verificare il funzionamento
Caratteristiche di linux-dash
Linux-dash ci mette a disposizione una serie di caratteristiche: innanzi tutto supporta ormai una vasta gamma di distribuzioni Linux (dato che sostanzialmente si basa su uno stack software abbastanza standard), tra cui quelle indicate sul README ufficiale, tra cui anche le più utilizzate in ambito server e desktop:
- Ubuntu 11.04
- Debian
- Linux Mint 16;
- Arch Linux.
All’elenco mancano sicuramente Fedora e Red Hat monitoring delle risorse pannello di amministrazione
- RAM;
- CPU;
- Carico;
- Uptime;
- Utenti;
- Allocazione dischi.
Abbiamo parecchio da configurare riguardo gli aspetti visivi Bootstrap si adatta perfettamente ai dispositivi mobili responsive web design
Rendere sicuro linux-dash
La nostra dashboard interattiva che raffigura l’intero stato della macchina a cui abbiamo accesso è finalmente pronta, e in pochissimo tempo, ma i più furbi avranno già notato una cosa fondamentale: nulla di questo richiede autenticazione (se non l’installazione del software), e chiunque può visualizzare le informazioni di carico del server che stiamo amministrando. Questo può essere un problema, in quanto un attaccante che volesse metterci in difficoltà potrebbe utilizzare queste informazioni contro di noi.
Per questo motivo è opportuno fornirsi di alcune precauzioni relative alla sicurezza del luogo dove abbiamo eseguito il drop-in di linux-dash. Possiamo facilmente fare il deploy in sicurezza di un servizio del genere, agendo tramite htaccess per richiedere una password che andremo ad impostare attraverso un altro file. Prima di tutto andiamo a creare un file .htaccess dentro la directory linux-dash, strutturando il contenuto come segue:
blaster@sauron ~ $ cat /var/www/linux-dash/.htaccess
AuthType Basic
AuthName "Parola d'ordine? :v"
AuthUserFile /var/www/dottorblaster_it/linux-dash/.htpasswd
Require valid-user
La password per l’accesso alla directory di linux-dash sarà decisa dal contenuto del file indicato alla riga che inizia per AuthUserFile. Per generare una password appositi generatori monitorare il nostro server in totale sicurezza