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) potremo verificare il funzionamento di questa piccola applicazione.
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 e successive;
- Debian 6, Debian 7;
- Linux Mint 16;
- Arch Linux.
All’elenco mancano sicuramente Fedora e Red Hat, ma non c’è dubbio che presto saranno inserite anche loro. Per quanto riguarda il monitoring delle risorse, principalmente linux-dash ci fornisce informazioni sul carico basandosi sui seguenti indicatori che andranno naturalmente a comparire nel nostro pannello di amministrazione:
- RAM;
- CPU;
- Carico;
- Uptime;
- Utenti;
- Allocazione dischi.
Abbiamo parecchio da configurare riguardo gli aspetti visivi: i widget che visualizziamo per ognuno di questi elementi infatti possono essere riposizionati come preferiamo per offrirci la migliore esperienza utente a noi congeniale. Come se non bastasse, utilizzando Bootstrap come toolkit per la realizzazione dell’interfaccia grafica, linux-dash pur essendo un’applicazione fruibile da browser si adatta perfettamente ai dispositivi mobili grazie all’aspetto di responsive web design, gestito alla perfezione proprio da Bootstrap.
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 (dato che non è possibile farlo in maniera semplice) possiamo servirci di appositi generatori disponibili online. Fatto questo, saremo sicuramente capaci di monitorare il nostro server in totale sicurezza, senza che alcun infiltrato monitori le attività per conto nostro, magari con intenti non proprio benevoli.