<- SL - RH+reiser - Indice Generale - Copertina - HiL - Intro ->

OpenWebMail


Utilizzo di OpenWebMail: il caso pratico in un'azienda

Utilizzo di OpenWebMail: il caso pratico in un'azienda

di Luciano Sarra

L'articolo...

Nel presente articolo si vuole analizzare, come caso particolare, l'evoluzione avvenuta in un'azienda nell'ambito dell'utilizzo della posta elettronica e si vedrà come una situazione inizialmente caotica è stata semplificata e razionalizzata utilizzando strumenti OpenSource quali Postfix, come server di posta aziendale, e OpenWebMail come client.


Indice


Introduzione

Lo sviluppo delle tecnologie informatiche rivolte negli ultimi anni soprattutto all'ambito delle telecomunicazioni ha sicuramente contribuito in modo determinante all'evoluzione di molti settori lavorativi (bancario, sanitario,trasporti) favorendo la globalizzazione delle informazioni e l'accesso ad ogni tipo di dato. Una delle conseguenze più importanti di tali innovazioni è l'uso sempre più massiccio della posta elettronica, probabilmente l'applicazione più usata in rete TCP/IP. Infatti, la crescita più che esponenziale che ha avuto Internet ha fatto sì che ogni posto di lavoro sia dotato di un Personal Computer con le classiche applicazioni desktop oppure più specifiche a seconda della tipologia di lavoro; tuttavia non ne mancano mai due: un browser ed un client di posta elettronica.
Più specificatamente, le aziende si stanno orientando sempre più all'utilizzo della posta elettronica come "lo" standard di comunicazione fra i dipendenti.
Alcuni dei motivi sono:

Esistono anche degli aspetti negativi legati all'uso della posta elettronica come ad esempio:

Come sempre accade nelle aziende, le valutazioni dei pro e i contro per l'utilizzo di un qualsiasi strumento di lavoro vengono accuratamente vagliate ed allo stato attuale non esiste ancora alcuna ditta che abbia rinunciato allo strumento della posta elettronica.

La situazione iniziale

L'azienda che consideremo nel seguito opera nel campo dell'informatica, volta soprattutto alla fornitura di servizi bancari, telematici, alla produzione di particolari software per la gestione dei pagamenti tramite POS e carta di credito e ultimamente ha diversificato la sua attività attivando un Call Center per conto dell'Azienda Sanitaria Locale.
I dipendenti sono circa 70 ed hanno le mansioni più svariate: segretarie, sistemisti, tecnici, programmatori, operatori di Call Center. L'accesso ad Internet è aperto alla libera navigazione per ovvie esigenze di lavoro e l'ennesimo virus contratto in primavera tramite Outlook Express ha fatto levare un allarme generale per il quale l'aspetto sicurezza nell'ambito della posta elettronica doveva essere risolto.

Un rapido censimento ha riportato che il 45% dei dipendenti usava Eudora come client di posta, il 45% usava Netscape Messenger ed il restante 10% Outlook Express. L?assoluta mancanza di standard nell'uso di un client di posta elettronica era dovuta al fatto che l'azienda ha avuto una rapida espansione nel numero dei dipendenti passando da 13 a 70 dipendenti in circa due anni e le varie competenze sistemistiche sono state gestite da persone diverse in assenze di linee guida d'installazione.
La presenza di tre client di posta, tra l'altro, implicava anche la loro conoscenza sistemistica, la loro gestione ed il continuo aggiornamento non appena veniva pubblicata una patch. Infine è da aggiungere un aspetto non trascurabile e purtroppo abbastanza frequente in molte aziende: il parco macchine difficilmente viene cambiato completamente non appena esce sul mercato l'ultimo processore o l'ultima motherboard o il più veloce dei dischi fissi e ciò è dovuto ad evidenti ragioni di budget.
Vale la regola non scritta secondo la quale un Personal Computer "mediamente" buono viene usato fino a quando un elemento hardware non si guasta. Se accade che si rompe l'hard-disk, il più delle volte ciò che va perduto non sono i file vitali dell'azienda, generalmente salvati su di un server con unità di backup, ma quelli che contengono la posta elettronica la quale viene generalmente scaricata sul disco locale. L'azienda considerata non era immune da questo tipo d'inconveniente e quando ciò accadeva, gettava nello sconforto il dipendente poiché la posta elettronica oggi funge, anche da agenda lavorativa e da storico delle attività svolte o da svolgere.

Nel Call Center l'uso del posto di lavoro, inteso come Personal Computer assume un significato diverso da quello tradizionale: infatti utilizzando in una qualsiasi postazione le stesse applicazioni (un'interfaccia front-end con il database, un browser per consultare le procedure relative al corretto svolgimento delle mansioni, la posta elettronica per veicolare informazioni che sono molte e fondamentali) gli operatori si scambiano spesso fra loro il posto di lavoro essendo tutti Personal Computer clonati. È facile capire che la posta elettronica non può essere scaricata in locale ma deve stare su cartelle condivise di un disco di un server; inoltre c'è la necessità di poter usare il client di posta con le preferenze personali che ciascun utente ha impostato.

Una rapida analisi ha fatto sè che si adottasse un client di posta unico e che ci fosse una gestione centrale dei file di posta in modo da poter effettuare un backup totale.

Le scelte

Le scelte sono ricadute su Postfix [1] come server SMTP e OpenWebMail [2] come modulo di client di posta.

Non è nostro scopo parlare di Postfix e si rimanda ai numerosi articoli che si possono trovare in rete a riguardo (alcuni link hai punti [3], [4], [5]).
È sufficiente dire che è sicuramente uno dei più sicuri server SMTP esistenti (creato dal genio di Wietse Venema), poiché sono pochissimi processi che girano con i privilegi di root (uno solo, esattamente: "master"). Inoltre, cosa di grande importanza, è facilissimo da configurare a differenza del criptico e bucato Sendmail [6] e dell'ostico Qmail [7].
Concentriamo, invece, la nostra attenzione sul client di posta che è rappresentato da OpenWebMail (nel seguito OWM), un prodotto webmail che non ha nulla da invidiare a quelli professionali come Hotmail o Yahoo!: veloce da installare e facile da configurare. Esso si basa su un vecchio progetto poi abbandonato (Neomail 1.14) e si prefigge come scopo quello di gestire via web la propria casella di posta elettronica, rappresentata anche da corpose cartelle in modo veloce ed efficiente; inoltre, avendo molte ed interessanti feature, si avvicina molto ad Outlook e si propone come un valido strumento alternativo.

Non è difficile comprendere che una tale scelta nell'azienda considerata risolve molti problemi: tutta la posta degli utenti risiede sul server SMTP e quindi è facile intraprendere una qualsiasi politica di backup; è possibile consultare la propria casella di posta con le preferenze personali impostate da qualsiasi Personal Computer dotato di un browser ed installando un certificato SSL ciò può essere fatto anche stando al di fuori dell'azienda proteggendo così password e dati.

Tra le feature più importanti di OWM citiamo:

L'installazione

Per installare OWM si deve scaricare l'ultima release disponibile dall'url http://openwebmail.com/openwebmail/download nel formato tgz e le istruzioni operative sono contenute in due ottime fonti alle quali rimandiamo: il README che si trova nel file .tgz o anche da [8] e l'articolo [9].
Diamo un rapido cenno all'installazione con alcune osservazioni che riteniamo utili evidenziare. Si parte innanzitutto da una classica installazione server con servizio SMTP (non esistono controindicazioni per una determinata distribuzione Linux o un sistema UNIX commerciale). È richiesta solo la presenza dei seguenti pacchetti:

I primi due programmi sono presenti su qualsiasi distribuzione o, comunque, facilmente aggiornabili da [10], [11].
Per i rimanenti pacchetti trattasi di moduli aggiuntivi di Perl che possono essere scaricati da [12].
Per tutti i moduli, è sufficiente decomprimerli in una directory temporanea e seguire le istruzioni contenute nel README che vi si trova.
Le uniche raccomandazioni da seguire sono:

Dopo avere installato i pacchetti obbligatori, l'installazione di OWM è quanto mai banale: si scompatta l'ultima release disponibile nel formato .tgz e si ottengono due cartelle: una chiamata "cgi-bin" e l'altra "data". Queste cartelle dovranno poi essere spostate rispettivamente nei path definiti nel file httpd.conf relativi ai file cgi e html.

La configurazione

I file di configurazione di OWM sono i due seguenti:

dove con [Apache_path] si indica il path contenente gli script cgi definiti nelle corrispondenti direttive del file httpd.conf di Apache.
In questi due file bisogna impostare il valore di alcune variabili come "mailspooldir" a "/var/spool/mail" oppure "ow_htmldir" a "[Apache_path]/data/openwebmail" e così via con l'ovvio significato delle variabili che si incontrano. È da sottolineare che se esiste la stessa variabile in entrambi i file di configurazione, essa assumerà il valore espresso nel file "openwebmail.conf".

Vogliamo soffermarci sul processo di autenticazione degli utenti, aspetto molto importante per la sicurezza del server di posta. Infatti, si possono scegliere due strade, a seconda che si voglia definire gli utenti come virtuali o reali. Vediamo più da vicino le due possibili scelte.

Per utente virtuale si intende un utente che non può avere alcun accesso fisico alla macchina server poiché non esiste alcun riferimento in "/etc/passwd" o in "/etc/shadow".
È un utente che è definito solo per l'utilizzo di alcuni servizi erogati dal server. Nel caso specifico, dovendo definire utenti che accedono al servizio di posta si può installare il modulo vm-pop3d che è un server POP3 dotato solo di file di gestione password e di spool di mail.
Esso è scaricabile da [13] e, come è spiegato in [9], occorre eseguire i seguenti comandi:

tar xvfz vm-pop3d-1.1.6.tar.gz 
cd vm-pop3d-1.1.6
./configure

// Editare il file vm-pop3d.h nelle voci

#define VIRTUAL_ID 8
#define VIRTUAL_MAILPATH "/var/spool/virtual"
#define VIRTUAL_PASSWORD_PATH "/etc/virtual"
#define VIRTUAL_PASSWORD_FNAME "passwd"

dove:

In tal modo gli account POP3 sono completamente slegati dagli account di sistema.

Per utente reale si intende invece, un utente definito negli account di sistema e, in linea di principio, può accedere (remotamente o localmente) alla macchina.
Ci sono alcune circostanze per le quali l'autenticazione tramite username e password è considerata sufficiente; in altri casi sono richieste informazioni maggiori.
Se, inoltre, siamo nel caso in cui alla macchina è data la possibilità di collegarsi da Internet ci si può trovare nella necessità di affrontare un inevitabile discorso sulla sicurezza, perché le password possono passare in chiaro. Un server di posta posto in rete sul quale sono definiti utenti reali costituisce senz'altro un invito a nozze ai malintenzionati di Internet. Una soluzione efficace può essere quella di associare a ciascun utente la shell "/bin/false" in modo da negare ogni collegamento ad una qualsiasi shell del sistema.

Si possono utilizzare altri metodi di autenticazione come i moduli PAM, oppure un database come LDAP, MySQL, PosgreSQL e così via. A seconda della scelta di autenticazione, si dovrà configurare il corrispondente file contenuto in "[Apache_path]/cgi-bin/openwebmail/etc": se si sceglie l'autenticazione tramite gli utenti virtuali si deve editare il file "auth_pop3.conf.default" nel seguente modo:

$local_uid="571"

dove 571 corrisponde all'ID dell'utente di Apache che può essere trovato tramite il comando:

grep apache /etc/passwd | cut -f3 -d

Se invece si sceglie l'autenticazione mediante gli utenti reali si dovrà modificare il file "auth_unix.conf.default" in corrispondenza delle seguenti variabili:

passwdfile_plaintext      /etc/passwd
passwdfile_encrypted    /etc/shadow
passwdmkdb                none

Come accennato in precedenza, se si usano altri tipi di autenticazione si dovranno modificare i corrispondenti file che sono:

"auth_ldap.pl", "auth_mysql.pl", "auth_mysql_vmail.pl", "auth_pam.pl", "auth_pam_cobalt.pl", "auth_pg.pl", "auth_pgsql.pl", "auth_unix_cobalt.pl", "auth_vdomain.pl".

Nell'ipotesi che tali metodi di autenticazione non soddisfino l'amministratore di sistema che installa OWM, i suoi autori invitano a scriverne uno nuovo e poi, come vuole la filosofia OpenSource, di inviarlo con una certa formattazione se si vuole che esso compaia nella futura release.

Scelta la modalità di autenticazione, questa dovrà poi essere dichiarata nella variabile "auth_module" contenuta nel file "openwebmail.conf". Nell'azienda considerata, si è scelta l'autenticazione tramite gli utenti reali e quindi si è utilizzato "auth_module" a "auth_unix.pl".
La configurazione è quasi terminata: si dovrà impostare il bit SUID al file "/usr/bin/suidperl" con il comando "chmod 4555 /usr/bin/suidperl" e poi ci si dovrà posizionare nella directory "[Apache_path]/cgi-bin/openwebmail" e lanciare il comando di inizializzazione "./openwebmail-tool.pl --init". Infatti tale comando ha il compito di creare delle tabelle di mappatura utilizzate da OWM.

Molte funzioni, come l'accesso veloce alle cartelle, sono ottimizzate mediante l'uso di dbm, un semplice database fornito da Perl e poiché esso può utilizzare differenti dbm a seconda delle piattaforme e delle distribuzioni usate, il comando d'inizializzazione ha il compito di verificarli tutti. Tale verifica può andare a buon fine oppure dare in output una serie di messaggi d'errore. Più dettagliatamente, la routine iniziale va a leggere i valori delle variabili "dbm_ext", "dbmopen_ext" e "dbmopen_haslock" contenute in "[Apache_path]/cgi-bin/openwebmail/etc/dbm.conf.default"; se hanno impostato valori sbagliati per quella piattaforma, il messaggio d'errore conterrà i suggerimenti con i valori corretti.
In alternativa ci si può posizionare in "[Apache_path]/cgi-bin/openwebmail/uty" e lanciare il comando "perl dbmtest.pl" per ottenere i valori corretti da assegnare alle variabili. Nella tabella seguente riassumiamo due differenti situazioni a seconda della distribuzione usata:

Distribuzione Dbm_ext Dbmopen_ext Dbmopen_haslock
Redhat 8.0 e superiore .db none no
SuSE 8.0 e superiore .pag none no

Trovati i corretti parametri, OWM è pronto per essere utilizzato all'url http://vostro_server/cgi-bin/openwebmail/openwebmail.pl. Vediamo come si presenta visivamente OWM. La figura 1 rappresenta la schermata iniziale di login:

figura 1

Una volta entrati nella propria mailbox (vedi figura 2) è possibile leggere i propri messaggi: una finestra popup ci avverte se abbiamo dei nuovi messaggi.

figura 2

La figura 3 mostra come si possono impostare le proprie preferenze:

figura 3

Infine nella figura 4 mostriamo la rubrica: anche se semplice ed essenziale è, tuttavia, funzionale per l'utile presenza delle note di descrizione che accompagnano ciascun contatto.

figura 4

Altri screenshot possono essere visti all'indirizzo indicato al punto [14].

Alcune considerazioni

Preme sottolineare che OWM è sostanzialmente un'interfaccia web per l'accesso alla propria casella di posta elettronica. Infatti non è obbligatorio che sull'host che ospita OWM ci sia anche il server SMTP; perché questo può risiedere anche su un'altra macchina. Dovunque sia il server di posta, è necessario definire il suo indirizzo IP nella direttiva "smtpserver" contenuta nel file "openwebmail.conf.default" e ovviamente, deve essere permesso il relay delle mail dall'host OWM.

Una particolare attenzione va data se si definiscono domini virtuali, anche se vengono gestiti da OWM senza alcun problema seguendo le istruzioni riportate in [8] e [9].
Vogliamo solo dare un accenno ad una diversa configurazione dei domini virtuali con relativi utenti ad essi associati che è stata eseguita in loco nell'azienda. Innanzitutto si è scelta la definizione degli utenti reali associati a tutti i domini con shell impostata a "/bin/false"; Postfix è stato configurato in modo tale da avere solo il proprio dominio (chiamiamolo azienda.it) come dominio locale nella variabile "mydomain=azienda.it" del file "/etc/postfix/main.cf".
Gli altri domini, quelli virtuali, (chiamiamoli dominio1.it, dominio2.it, dominio3.it) e gli utenti ad essi associati sono stati definiti direttamente nel file "/etc/postfix/virtual" secondo la sintassi ivi specificata. Chiaramente tutti questi domini (locale e virtuali) sono, a loro volta, definiti nel corrispondente record MX del DNS relativo a tali domini. In tal modo la posta viene convogliata dal DNS al server e l'utente deve solo digitare la propria username e password (*1*) per entrare nelle proprie caselle.

Dal punto di vista sistemistico, la gestione di tutte le caselle di posta e delle preferenze personali è molto comoda poiché OWM crea nella home directory di ciascun utente ("$HOME") una cartella chiamata "mail" all'interno della quale si trovano i file relativi alle varie cartelle di default ("salvati", "cestino", "bozze", "inviati"), oltre a quelle che l'utente crea ex-novo; i file che contengono tutte le preferenze impostate, ("openwebmailrc"), la rubrica, ("address.book") e altri dedicati alla sua gestione si trovano in "$HOME/.openwebmail" e sue opportune sottocartelle. Invece i messaggi nuovi che arrivano sull'account dell'utente "utente" vengono accodati, come sempre, nel file "/var/spool/mail/utente".

*1* Nel caso di autenticazione ad esempio tramite utenti virtuali lo username sarà l'indirizzo e-mail completo e non solo il classico nome di login come per gli utenti reali.

Anche l'aggiornamento di OWM ad una nuova release è facile e rapido. Infatti, è sufficiente fermare il servizio httpd, rinominare le due directory "cgi-bin" e "data" e sostituirle con le analoghe della nuova release, reimpostare la configurazione nei due file openwebmail.conf e openwebmail.conf.default e reinizializzare OWM con il comando "openwebmail-tool.pl --init". Nella ditta considerata, questa operazione è stata già eseguita due volte ed ha richiesto non più di 15 minuti.

OWM possiede, inoltre, due feature molto interessanti ed utili che vogliamo ora menzionare: Webdisk e Calendar.
Webdisk è un modulo che offre all'utente un'interfaccia web per utilizzare la propria home directory come un disco virtuale sul Web (*2*).
Webdisk prevede l'utilizzo di comandi di base quali "mkdir", "rmdir", "cp", "mv", "rm", l'upload ed il download di file e molti tipi di archiviazione come zip, arj, rar, tar.gz, ecc.
Calendar è invece una classica agenda che congloba in se tutte le più classiche funzioni di gestione appuntamenti tra cui ovviamente, anche un reminder tramite notifica con e-mail.
Entrambe le feature possono essere attivate tramite il file "openwebmail.conf.default" impostando le rispettive variabili "enable_webdisk" e "enable_calendar" a "yes". Altre utility sarebbero da segnalare come lo "user quota", il supporto per il correttore ortografico, il risponditore automatico ma si rimanda alla lettura del punto [8].

*2* La "/" (radice) del disco virtuale è mappato sulla home directory di ciascun utente.

l processo di import dei file di posta dai client usati (Netscape Messenger, Eudora, Outlook Express) e le relative rubriche è stato abbastanza indolore.
L'unico problema riscontrato è stato il seguente: i file di posta dei vari client usati in ambiente Windows, sono semplici file di testo ASCII, tuttavia UNIX e GNU/Linux interpretano il carattere di fine riga DOS come una sequenza ^M (Ctrl-M) per cui i file delle varie cartelle copiate nella home directory di ciascun utente vengono gestiti da OWM con la sequenza ^M alla fine di ogni riga. Ciò ha come conseguenza il fatto che non si riusciva a cancellare i messaggi all'interno di una cartella. La soluzione è quanto mai semplice: basta convertire da file di testo DOS a file di testo UNIX con l'utility "dos2unix" per avere la corretta gestione delle sequenze di fine riga.

Conclusioni

Il prodotto è costantemente in evoluzione: infatti la versione attuale disponibile, al momento della stesura del presente articolo, è la 2.30 e gli autori di OWM hanno messo in cantiere alcune interessanti feature come l'integrazione con la firma digitale PGP/GnuPG o la possibilità di condividere cartelle e calendario. Inoltre, esiste una buona reportistica dei vari bug di sicurezza in rete.

In conclusione, siamo di fronte ad un ottimo prodotto OpenSource per la sua scalabilità, configurabilità ed impiego professionale che in poco tempo ha risolto il problema di gestione della posta elettronica dell'azienda presa in considerazione, con una notevole riduzione del costo complessivo di gestione. Ciò che ha dato maggior soddisfazione è stata la buona impressione che hanno dato gli utenti che sono tutti professionisti IT, che utilizzano solamente prodotti Microsoft. Un bel colpo per il Pinguino !

Appendice - Melius abundare quam deficere

Sono due gli aspetti fondamentali che ogni utente va a considerare quando abbandona un programma che usa in modo massiccio, come il client di posta elettronica, per utilizzarne uno nuovo: la facilità d'uso e la sua velocità. Sicuramente OWM non teme confronti con gli altri client di posta per quanto riguarda la facilità d'uso mentre per la velocità è opportuno fare le seguenti considerazioni.

Alla partenza OWM richiede almeno 5.5 MB di memoria. Se l'utente deve visualizzare le proprie cartelle, l'impiego della memoria è proporzionale al numero dei messaggi contenuti nella cartella secondo la formula:

5.5 MB + (numero messaggi) * 0.2 KB.

Se si deve leggere un messaggio, si devono distinguere due fasi:

per costruire la pagina html, gli script cgi di OWM devono analizzare l'intero messaggio per determinare come meglio disporre gli header, il messaggio ed eventuali allegati. La memoria usata è 5.5 MB + [grandezza messaggio] MB;

quando il browser riceve la pagina html, vengono poi scaricate tutte le immagini contenute nella pagina. Ciascun download dell'immagine genera un processo cgi che consuma 5.5 MB + [grandezza messaggio] MB + 2* [grandezza allegato] MB e quando incomincia il trasferimento dell'immagine il consumo scende a 5.5 MB + [grandezza messaggio] MB + [grandezza allegato] MB.
Infine se si deve inviare un messaggio, indipendentemente dalla presenza o meno di un allegato nel messaggio, si consuma circa 5.5 MB di memoria. Quindi, nell'ipotesi che il numero degli utenti censiti sul server sia alto, è consigliabile installare molta RAM e se sussistono ancora problemi di velocità, è necessario installare
il modulo SpeedCGI (si veda il punto [15]) che rende OWM da cinque a dieci volte più veloce.
In tal caso OWM deve essere riconfigurato per l'utilizzo di tale modulo seguendo le istruzioni contenute in [8]. Se è necessaria ancora più velocita, si può considerare l'ipotesi di dover abbandonare Apache per utilizzare altri Web Server che gestiscono le connessioni multiple attraverso un unico processo come, ad esempio, thttpd [16].

Bibliografia

[1] http://www.postfix.org
[2] http://openwebmail.com
[3] http://www.postfix.org/docs.html
[4] Antonio Fragola, Quick&Easy Configuration HOWTO
[5] Tommaso Di Donato, Un Pinguino per postino, Pluto Journal n.35 - Gennaio 2002
[6] http://www.sendmail.org
[7] http://www.qmail.org
[8] http://openwebmail.com/openwebmail/download/doc
[9] Kevin L. Evin, How to setup virtual users on Open WebMail using Postfix & vm-pop3d
[10] http://www.apache.org
[11] http://www.perl.org
[12] http://openwebmail.com/openwebmail/download/packages/
[13] http://www.reedmedia.net/software/virtualmail-pop3d
[14] http://openwebmail.com/openwebmail/download/screenshots/
[15] http://www.daemoninc.com/SpeedyCGI/
[16] http://www.acme.com/software/thttpd/

L'autore

Alias luzzo='Luciano Sarra', laureato in fisica, è sistemista Unix (certificato AIX) e, in minima parte, Microsoft in una ditta di servizi con (ancora) forte presenza Microsoft. Ha proposto in modo graduale alternative basate su Linux e sull'Opensource con grande soddisfazione nella Stanza dei Bottoni.

<- SL - RH+reiser - Indice Generale - Copertina - HiL - Intro ->