La gestione da remoto di un server Linux può risultare problematica per chi ha poca dimestichezza con strumenti come SSH e la riga di comando. Con Webmin tutto diventa più semplice: creare nuovi utenti, condividere file, pianificare i backup, impostare le interfacce di rete, ma anche configurare Apache o MySQL. Il software ci fornisce un'intuitiva interfaccia web per le più consuete operazioni d'amministrazione di un sistema *nix. Basterà un moderno browser per gestire il nostro server a colpi di click.
Webmin in sintesi è costituito da un mini web server, cui ci collegheremo sulla porta 10000, e da un certo numero di script Cgi. Questi ultimi agiscono modificando i file di configurazione normalmente modificati a mano. Il software, ideato e creato da Jamie Cameron (che rimane tuttora il principale sviluppatore), è scritto in Perl quindi Perl 5 rappresenta un requisito indispensabile per la sua installazione.
Webmin viene distribuito con una licenza stile BSD che ci consente non solo di modificarlo liberamente, ma anche di includerlo in applicazioni commerciali. Ha una struttura modulare che ne permette l'espansione con software scritto da terze parti. I moduli standard, compresi nell'installazione di base, sono sufficienti per le più comuni esigenze. In caso vi troviate a dover gestire programmi un po' particolari potete sempre consultare l'apposita sezione del sito che riporta i contributi di altri programmatori.
In questo primo articolo vedremo come si installa Webmin, in un successivo invece esamineremo la configurazione del server. Dalla pagina di download possiamo scaricare il software in vari formati a seconda delle caratteristiche del nostro sistema operativo. Si va dalla generica tarball, utilizzabile da tutti, ai pacchetti .rpm o .deb per le principali distribuzioni Linux. Di seguito ci riferiremo ad un'installazione da rpm su una Linux box Fedora.
Installiamo Webmin
Per l'installazione possiamo percorrere due strade: prelevare il pacchetto precompilato dal sito o configurare YUM per collegarsi al repository di Webmin.
Nel primo caso scarichiamo sul nostro server la versione attualmente disponibile, webmin-1.450-1.noarch.rpm, assumiamo i privilegi di root e al prompt digitiamo:
[root]# rpm -ivh webmin-1.450-1.noarch.rpm
Al termine del processo, che si occuperà di segnalare eventuali dipendenze, riceveremo un messaggio di questo tipo:
Webmin install complete. You can now login to https://my.host.name:10000/ as root with your root password.
Da cui si intuisce come l'amministrazione del nostro server avverrà collegandoci su connessione cifrata SSL all'hostname della macchina, my.host.name nell'esempio. In alternativa potremmo usare il suo indirizzo IP o, se ci colleghiamo localmente, 127.0.0.1 o localhost.
Notiamo subito che il web server integrato si metterà in ascolto sulla porta 10000, per non infastidire il web server standard solitamente attivo sulle porte 80 e 443. Tenete bene a mente questo particolare se dovete configurare eventuali firewall posti a protezione della macchina. Infine veniamo informati che per gestire l'applicazione dovremo autenticarci con le credenziali di root.
Passiamo ora al metodo alternativo, basato su YUM, che prevede la creazione di un semplice file di configurazione webmin.repo:
[root]# cd /etc/yum.repos.d [root]# touch webmin.repo
Apriamo il file appena creato con il nostro editor di testi preferito ed inseriamo le righe seguenti:
[Webmin] name=Webmin Distribution Neutral baseurl=http://download.webmin.com/download/yum enabled=1
Ora importiamo la chiave GPG con cui il pacchetto sarà firmato:
[root]# rpm --import http://www.webmin.com/jcameron-key.asc
e terminiamo con l'installazione vera e propria:
[root]# yum install webmin
Il processo provvede anche ad inserire l'avvio automatico di Webmin nei runlevel 2,3 e 5, come possiamo facilmente verificare con il seguente comando e relativa risposta:
[root]# chkconfig --list | grep webmin webmin 0:off 1:off 2:on 3:on 4:off 5:on 6:off
Nella prossima parte dell'articolo vedremo come si amministra il server.
Amministriamo il server
Nella prima parte di questo articolo abbiamo visto cosa è, a cosa serve e come si installa Webmin, il software che ci consente di amministrare il nostro server e i nostri servizi da una postazione remota con l'aiuto del solo browser.
Giunti a questo punto non ci resta che collegarci e testare le funzionalità del programma. Apriamo il nostro browser e digitiamo l'indirizzo https://my.host.name:10000/. In prima battuta dovremo accettare il certificato autofirmato che Webmin ci propone, per applicazioni professionali potremo sempre sostituirlo con uno firmato da una Certification Authority.
Nella schermata di login inseriamo nome utente e password di root ed entriamo. La pagina iniziale ci proporrà subito l'aggiornamento di alcuni moduli, ovviamente ciò dipenderà dalla versione del software installata e da eventuali successivi fix proposti dall'autore. Un click sul pulsante Install Updates Now risolverà tutto in automatico ed un successivo click sul link Return to Webmin configuration ci proietterà alla pagina Webmin Configuration.
Questo sarà sicuramente un buon punto di partenza, infatti vi compaiono tutte le opzioni di configurazione del programma. Un primo ritocco al look & feel possiamo darlo selezionando l'icona Language e modificando da inglese ad italiano la lingua predefinita. Poi da Temi di Webmin possiamo modificare l'aspetto grafico delle pagine. Se i pochi temi disponibili non appagano il nostro senso estetico possiamo trovarne altri alla pagina del sito che ne riporta l'elenco completo. Una volta trovato quello che fa al caso nostro sarà possibile installarlo con un upload dal file system locale o da un indirizzo http o ftp.
Ora che ci sentiamo a nostro agio passiamo agli aspetti più sostanziali notando che il menu ad albero, posizionato a sinistra, accorpa in macro categorie le aree del server su cui possiamo intervenire:
- Webmin: tutte le opzioni di configurazione che riguardano il programma e la sua modalità di funzionamento.
- Sistema: raccoglie gli aspetti generali di configurazione del server come la creazione di utenti e gruppi, l'impostazione di operazioni pianificate, il controllo dei dischi, il mount di partizioni e così via.
- Server: qui si trova l'elenco dei software server installati sulla macchina e gestibili con Webmin come SSH, Apache, Bind, Samba, Postfix.
- Altri: elenco di opzioni di configurazione non catalogabili nelle restanti categorie. Ad esempio qui è possibile modificare la configurazione di PHP.
- Rete: tutto ciò che si riferisce al networking come la configurazione delle interfacce di rete o delle route, le impostazioni del firewall e così via.
- Hardware: controlla gli aspetti fisici del server in particolare la gestione dei dischi con impostazione del RAID, LVM e simili. Consente anche la masterizzazione.
- Cluster: permette addirittura la gestione di cluster di server.
- Un-used Modules: elenco dei moduli disponibili che si riferiscono a software non installato sul nostro server. È possibile direttamente da qui installare tali programmi, per farlo Webmin si appoggerà a YUM.
Risulta evidente come non sia possibile descrivere nel dettaglio i vari moduli. Nel Wiki di Webmin troverete comunque un'abbondante documentazione che vi aiuterà a muovere i primi passi (ed anche i successivi). Qui avrete accesso a FAQ, Tutorial ed informazioni su quasi tutti i moduli. Se poi vorrete svilupparne di vostri qui è disponibile anche la documentazione relativa alle API.
Soffermiamoci piuttosto sulla personalizzazione del software. La struttura del programma è del tutto modificabile. Dal menu Webmin / Configurazione di Webmin/Modifica categorie possiamo creare nuove categorie o modificare le esistenti. Da Webmin / Configurazione di Webmin/ Riassegna modulo possiamo assegnare i moduli alle categorie desiderate.
Se vogliamo aggiungere nuovi moduli utilizziamo il menu Webmin / Configurazione di Webmin / Moduli Webmin. Solitamente si tratta di file con estensione .wbm che possono essere caricati o raggiunti via ftp o http. È possibile naturalmente anche rimuovere i moduli che non utilizziamo. Se le descrizioni dei moduli non ci sembrano soddisfacenti sostituiamole con altre più calzanti selezionando Webmin / Configurazione di Webmin / Titolo del modulo. Queste sono solo alcune delle possibili operazioni che ci consentono di trasformare Webmin a nostra immagine e somiglianza.
Vale la pena spendere qualche parola anche sulla gestione utenti. Webmin non contempla il solo accesso come root, ma prevede una specifica sezione Webmin / Utenti Webmin. Dall'interfaccia di amministrazione è possibile assegnare ai singoli utenti o gruppi uno o più moduli. Potremo in tal modo delegare ad altre persone la configurazione di alcuni aspetti del server, magari quelli meno delicati.
Utenti e gruppi di sistema ed utenti e gruppi di Webmin possono essere entità completamente distinte oppure possiamo impostare delle regole di sincronizzazione che li mantengano allineati da Webmin / Utenti Webmin / Configura la sincronizzazione utenti Unix. Possiamo anche decidere di importare alcuni utenti di sistema con Webmin / Utenti Webmin / Converti gli utenti Unix ad utenti Webmin.
Avevamo già affrontato su queste pagine il tema della gestione remota mediante interfaccia grafica con l'articolo VNC: come gestire i server da remoto. In quel caso si aveva un vero e proprio accesso all'interfaccia grafica del server, in questo caso rientriamo nei cosiddetti pannelli di controllo. Webmin rappresenta un sistema di gestione remota semplice da installare ed intuitivo. Consente all'amministratore di collegarsi da una qualunque postazione senza necessità di software aggiuntivo, basta infatti un comune browser. L'utilizzatore meno esperto viene guidato nell'inserimento dei parametri di configurazione dai form del programma. L'abbondante documentazione rappresenta un ulteriore importante aiuto.
Concludo confessando una mezza bugia: introducendo Webmin ho parlato di sistemi *nix in realtà esiste anche una versione per Windows. A quel che mi risulta consente di gestire unicamente alcuni server opensource per i quali è stato effettuato il porting su tale piattaforma, tra cui Apache, MySQL, PHP e OpenSSH.