Zarafa: un sostituto opensource per Microsoft Exchange: differenze tra le versioni
(da adottare) |
|||
(112 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Guida da adottare}}{{Versioni compatibili|Etch|Lenny}} | |||
== Introduzione == | |||
Zarafa è una soluzione groupware basata sull'aspetto di Microsoft Outlook, che permette la condivisione di e-mail e calendari tramite Outlook, Evolution o altri programmi, oppure attraverso una interfaccia web-based in Ajax. La versione community di Zarafa, rilasciata con licenza GPLv3, offre: | Zarafa è una soluzione groupware basata sull'aspetto di Microsoft Outlook, che permette la condivisione di e-mail e calendari tramite Outlook, Evolution o altri programmi, oppure attraverso una interfaccia web-based in Ajax. La versione community di Zarafa, rilasciata con licenza GPLv3, offre: | ||
* Webaccess basato su tecnologia AJAX, accessibile anche da dispositivi portatili | * Webaccess basato su tecnologia AJAX, accessibile anche da dispositivi portatili | ||
Riga 8: | Riga 8: | ||
* uno zarafa-connector per Outlook. | * uno zarafa-connector per Outlook. | ||
La versione community offre fino a 3 utenti Outlook, ed è quindi adatta a reti di piccoli uffici, a reti con predominanza di client Linux oppure per reti in cui gli utenti si servono normalmente di interfacce web. Le versioni Zarafa Professional necessitano di una licenza commerciale per estendere il numero di utenti Outlook. | La versione community offre fino a 3 utenti Outlook, ed è quindi adatta a reti di piccoli uffici, a reti con predominanza di client Linux oppure per reti in cui gli utenti si servono normalmente di interfacce web. Le versioni Zarafa Professional necessitano di una licenza commerciale per estendere il numero di utenti Outlook. | ||
== Download e installazione == | |||
Zarafa è scaricabile all'indirizzo: | Zarafa è scaricabile all'indirizzo: | ||
<pre> | <pre> | ||
http://www.zarafa.com/ | http://www.zarafa.com/ | ||
</pre> | </pre> | ||
Scegliete la versione compilata per la vostra Debian e contenente il connettore Outlook. | Scegliete la versione compilata per la vostra Debian e contenente il connettore Outlook. | ||
=== Requisiti di sistema === | |||
Per installarsi correttamente, Zarafa ha bisogno che sul nostro server Debian siano in funzione: | Per installarsi correttamente, Zarafa ha bisogno che sul nostro server Debian siano in funzione: | ||
* Un web server Apache2 | * Un web server Apache2: [[LAMP: Linux, Apache, MySQL e PHP]] | ||
* Un database server MySQL5 | * Un database server MySQL5: [[LAMP: Linux, Apache, MySQL e PHP]] | ||
* Il linguaggio PHP configurato per lavorare con Apache e MySQL | * Il linguaggio PHP configurato per lavorare con Apache e MySQL: [[LAMP: Linux, Apache, MySQL e PHP]] | ||
* Un server SMTP di nostra scelta (Zarafa consiglia Postfix o Qmail). Più avanti nella guida sarà affrontata l'installazione di un server SMTP. | * Un server SMTP di nostra scelta (Zarafa consiglia Postfix o Qmail). Più avanti nella guida sarà affrontata l'installazione di un server SMTP. | ||
* (Opzionale) Un database OpenLDAP per la gestione degli utenti | * (Opzionale) Un database OpenLDAP per la gestione degli utenti. In tutta la guida faremo riferimento a un server OpenLDAP configurato per servire da controller di dominio Samba con autenticazione degli utenti: [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch]] | ||
Inoltre dovremo installare alcune altre dipendenze: | Inoltre dovremo installare alcune altre dipendenze: | ||
<pre> | <pre> | ||
apt-get install libapache2-mod-php5 mysql- | # apt-get install libapache2-mod-php5 mysql-client libldap-2.4-2 libmysqlclient15off | ||
</pre> | </pre> | ||
L'installazione di Zarafa creerà anche un database MySQL chiamato < | L'installazione di Zarafa creerà anche un database MySQL chiamato <code>zarafa</code>. Dovremo pertanto creare un utente MySQL che abbia i permessi sufficienti per connettersi dall'host locale al database. Collegatevi quindi al vostro database MySQL ed eseguite la query: | ||
connettersi dall'host locale al database. Collegatevi quindi al vostro database MySQL ed eseguite la query: | |||
<pre> | <pre> | ||
GRANT ALL PRIVILEGES ON zarafa.* TO 'zarafa'@'localhost' IDENTIFIED BY ' | GRANT ALL PRIVILEGES ON zarafa.* TO 'zarafa'@'localhost' IDENTIFIED BY 'password_per_zarafa'; | ||
</pre> | </pre> | ||
=== Installazione === | |||
L'installazione di Zarafa può avvenire in due modi. | L'installazione di Zarafa può avvenire in due modi. | ||
==== Installazione manuale ==== | |||
L'installazione manuale è di pochi e semplici passaggi: | L'installazione manuale è di pochi e semplici passaggi: | ||
<pre> | <pre> | ||
tar -xzvf zarafa.XXX.tar.gz | # tar -xzvf zarafa.XXX.tar.gz | ||
cd zarafa-xxxx | # cd zarafa-xxxx | ||
dpkg -i libvmime0_[version]_[arch].deb | # dpkg -i libvmime0_[version]_[arch].deb | ||
dpkg -i libical0_[version]_[arch].deb | # dpkg -i libical0_[version]_[arch].deb | ||
dpkg -i zarafa_[version]_[arch].deb | # dpkg -i zarafa_[version]_[arch].deb | ||
dpkg -i zarafa-webaccess_[version]_all.deb | # dpkg -i zarafa-webaccess_[version]_all.deb | ||
dpkg -i zarafa-licensed_[version]_all.deb | # dpkg -i zarafa-licensed_[version]_all.deb | ||
</pre> | </pre> | ||
==== Installazione tramite script ==== | |||
Io consiglio comunque l'installazione tramite lo script fornito da Zarafa, che: | Io consiglio comunque l'installazione tramite lo script fornito da Zarafa, che: | ||
* Controllerà le dipendenze dei pacchetti; | * Controllerà le dipendenze dei pacchetti; | ||
* Installerà i pacchetti utilizzando dpkg; | * Installerà i pacchetti utilizzando dpkg, esattamente come nell'installazione manuale; | ||
* Inizializzerà il database MySQL; | * Inizializzerà il database MySQL; | ||
* Chiederà le opzioni di configurazione | * Chiederà le opzioni di configurazione | ||
<pre> | <pre> | ||
tar -xzvf zarafa.XXX.tar.gz | # tar -xzvf zarafa.XXX.tar.gz | ||
cd zarafa-xxxx | # cd zarafa-xxxx | ||
sh ./install.sh | # sh ./install.sh | ||
</pre> | </pre> | ||
Rispondete alle domande dell'installer e il gioco è fatto. Alla richiesta di inserimento del codice di licenza lasciate la riga bianca: in questo modo sarà automaticamente installata la versione community di Zarafa. | Rispondete alle domande dell'installer e il gioco è fatto. Alla richiesta di inserimento del codice di licenza lasciate la riga bianca: in questo modo sarà automaticamente installata la versione community di Zarafa. | ||
=== Post-installazione === | |||
{{ Warningbox | L'installer di Zarafa verifica la presenza del pacchetto di API libvmime 0.7 e, a causa di pesanti differenze tra la versione 0.7 e 0.8 di queste API, se trova una versione successiva ne effettua il downgrade. Dato che nessun pacchetto di Debian dipende dalla versione 0.8 questa è un'operazione senza conseguenze. In occasione però di un successivo aggiornamento del server potrebbe succedere questo: | {{ Warningbox | L'installer di Zarafa verifica la presenza del pacchetto di API <code>libvmime 0.7</code> e, a causa di pesanti differenze tra la versione 0.7 e 0.8 di queste API, se trova una versione successiva ne effettua il [[downgrade]]. Dato che nessun pacchetto di Debian dipende dalla versione 0.8 questa è un'operazione senza conseguenze. In occasione però di un successivo aggiornamento del server potrebbe succedere questo: | ||
<pre> | <pre> | ||
Calculating upgrade... Done | Calculating upgrade... Done | ||
Riga 74: | Riga 74: | ||
Per evitare la rimozione di Zarafa è consigliato di impostare lo stato di hold su questo pacchetto: | Per evitare la rimozione di Zarafa è consigliato di impostare lo stato di hold su questo pacchetto: | ||
<pre> | <pre> | ||
echo libvmime0 hold | dpkg --set-selections | # echo libvmime0 hold | dpkg --set-selections | ||
# echo libical0 hold | dpkg --set-selections | |||
</pre> | </pre> | ||
}} | }} | ||
Il file < | Il file <code>/etc/php5/apache2/php.ini</code> deve avere la variabile <code>magic_quotes_gpc</code> settata su <code>off</code>, altrimenti l'interfaccia web di Zarafa non funzionerà. Quindi: | ||
<pre> | <pre> | ||
nano /etc/php5/apache2/php.ini | # nano /etc/php5/apache2/php.ini | ||
</pre> | </pre> | ||
Cercate la variabile e impostatela così: | Cercate la variabile e impostatela così: | ||
Riga 87: | Riga 88: | ||
Se vogliamo, inoltre, che i client Outlook si connettano al webaccess sulla porta 80 dobbiamo impostare il modulo mod_proxy nel nostro Apache: | Se vogliamo, inoltre, che i client Outlook si connettano al webaccess sulla porta 80 dobbiamo impostare il modulo mod_proxy nel nostro Apache: | ||
<pre> | <pre> | ||
a2enmod proxy | # a2enmod proxy | ||
nano /etc/apache2/apache2.conf | # nano /etc/apache2/apache2.conf | ||
</pre> | </pre> | ||
e inserite la sezione: | e inserite la sezione: | ||
Riga 103: | Riga 104: | ||
Riavviate Apache per fargli digerire le modifiche: | Riavviate Apache per fargli digerire le modifiche: | ||
<pre> | <pre> | ||
/etc/init.d/apache2 restart | # /etc/init.d/apache2 restart | ||
</pre> | </pre> | ||
== Configurazione == | |||
=== I servizi di Zarafa === | |||
Zarafa, una volta installato, ha sei servizi in esecuzione: | Zarafa, una volta installato, ha sei servizi in esecuzione: | ||
* zarafa-server, server Zarafa | * zarafa-server, server Zarafa | ||
Riga 117: | Riga 118: | ||
Per avviarli, stopparli, riavviarli si usa la solita sintassi: | Per avviarli, stopparli, riavviarli si usa la solita sintassi: | ||
<pre> | <pre> | ||
/etc/init.d/zarafa-[servicename] start|stop|restart | # /etc/init.d/zarafa-[servicename] start|stop|restart | ||
</pre> | </pre> | ||
Il file principale di configurazione di Zarafa, ottimamente commentato, si trova in < | === Configurare il server Zarafa === | ||
Il file principale di configurazione di Zarafa, ottimamente commentato, si trova in <code>'''/etc/zarafa/server.cfg'''</code>. Il cambiamento minimo che è necessario apportare al file di configurazione riguarda l'opzione <code>mysql_password</code>. Impostate la password corretta che zarafa utilizzerà per accedere al database MySQL e controllate, inoltre, le altre opzioni MySQL, così che le connessioni al database possano essere stabilite correttamente.<br/> | |||
Zarafa a questo punto può già essere eseguito.<br/> | Zarafa a questo punto può già essere eseguito.<br/> | ||
L'impostazione più importante in Zarafa, è quella relativa al plugin < | L'impostazione più importante in Zarafa, è quella relativa al plugin <code>'''user_plugin'''</code>. Questa impostazione determina quale backend utente deve essere utilizzato per elencare gli utenti ed i gruppi. Le possibilità sono: | ||
* db | * db | ||
* unix | * unix | ||
* ldap | * ldap | ||
Il plugin utente < | Il plugin utente <code>'''db'''</code> utilizza il database MySQL per memorizzare informazioni relative a gruppi ed utenti. Si può utilizzare lo strumento <code>zarafa-admin</code> per gestire i propri utenti. Se decidete di utilizzare questo plugin, dovrete creare degli utenti Zarafa dotati di propria userID e propria password, che risulteranno essere diversi dagli utenti Linux. Il plugin utente <code>db</code> viene installato in modo predefinito e non necessita di nessuna configurazione.<br/><br/> | ||
Il plugin utente < | Il plugin utente <code>'''unix'''</code> usa le informazioni dai file <code>/etc/passwd</code>, <code>/etc/group</code> e <code>/etc/shadow</code>. Un elenco di utenti e gruppi uguale a quello degli utenti Linux viene automaticamente ricreato in Zarafa.<br/><br/> | ||
utenti e gruppi uguale a quello degli utenti Linux viene automaticamente ricreato in Zarafa.<br/><br/> | Il plugin <code>'''ldap'''</code> utilizza un server LDAP per ottenere informazioni circa gli utenti ed i gruppi. Questi verranno quindi gestiti direttamente tramite il server LDAP o il server ActiveDirectory. Il grande vantaggio di questa soluzione è che si può dotare la propria rete di funzioni single sign on, in modo che ogni utente debba ricordare una sola userID e una sola password per accedere a tutti i servizi, dal login sui client alla posta.<br/><br/> | ||
Il plugin < | Normalmente tutti i servizi di registrazione degli utenti registrano tali eventi in <code>/var/log/zarafa</code>. Questa directory viene creata quando i pacchetti vengono installati. È possibile cambiare il metodo di registrazione degli eventi nel file di configurazione, configurando l'opzione <code>syslog</code>. | ||
Normalmente tutti i servizi di registrazione degli utenti registrano tali eventi in < | |||
=== Configurare il plugin LDAP === | |||
Il plugin LDAP può essere utilizzato se nella vostra rete esiste già un server LDAP per gestire gli account utente e se desiderate accoppiare il server LDAP con Zarafa, in modo che gli utenti di sistema siano automaticamente autenticati anche in Zarafa. Tutti gli utenti, i gruppi e le informazioni su di essi verranno quindi recuperati in tempo reale dal server LDAP. Le principali caratteristiche del plugin LDAP sono: | Il plugin LDAP può essere utilizzato se nella vostra rete esiste già un server LDAP per gestire gli account utente e se desiderate accoppiare il server LDAP con Zarafa, in modo che gli utenti di sistema siano automaticamente autenticati anche in Zarafa. Tutti gli utenti, i gruppi e le informazioni su di essi verranno quindi recuperati in tempo reale dal server LDAP. Le principali caratteristiche del plugin LDAP sono: | ||
* Accoppiamento con qualsiasi server di tipo LDAP | * Accoppiamento con qualsiasi server di tipo LDAP | ||
Riga 144: | Riga 145: | ||
user_plugin = ldap | user_plugin = ldap | ||
</pre> | </pre> | ||
Il file di configurazione del plugin è < | Il file di configurazione del plugin è <code>'''/etc/zarafa/ldap.cfg'''</code>. In una installazione from scratch di Zarafa questo file non esiste; il team Zarafa mette però gentilmente a disposizione due template per la configurazione del plugin LDAP: | ||
* < | * <code>ldap.openldap.cfg</code> già preconfigurato e ottimizzato per un database OpenLDAP | ||
* < | * <code>ldap.activedirectory.cfg</code> già preconfigurato e ottimizzato per Microsoft Active Directory | ||
Quindi: | Quindi: | ||
<pre> | <pre> | ||
cd /etc/zarafa | # cd /etc/zarafa | ||
cp ldap.openldap.cfg ldap.cfg | # cp ldap.openldap.cfg ldap.cfg | ||
</pre> | </pre> | ||
Aprite ora il file e modificate i parametri, in modo da adattarli alla vostra struttura LDAP. In particolare modificate le voci: | Aprite ora il file appena creato, <code>/etc/zarafa/ldap.cfg</code>, e modificate i parametri, in modo da adattarli alla vostra struttura LDAP. In particolare modificate le voci: | ||
<pre> | <pre> | ||
#Sostituite a localhost l'IP del server LDAP, se gira su un'altra macchina | #Sostituite a localhost l'IP del server LDAP, se gira su un'altra macchina | ||
Riga 172: | Riga 173: | ||
ldap_group_search_base = ou=groups,dc=zarafa,dc=com | ldap_group_search_base = ou=groups,dc=zarafa,dc=com | ||
</pre> | </pre> | ||
Per configurare correttamente il nostro server OpenLAP occorre innanzitutto inserire nel suo file di configurazione < | === Configurazione del database OpenLDAP === | ||
Per configurare correttamente il nostro server OpenLAP occorre innanzitutto inserire nel suo file di configurazione <code>'''/etc/ldap/slapd.conf'''</code> la direttiva: | |||
<pre> | <pre> | ||
include /etc/ldap/schema/zarafa.schema | include /etc/ldap/schema/zarafa.schema | ||
Riga 179: | Riga 181: | ||
e copiare lo schema di zarafa all'interno della corretta directory di OpenLDAP: | e copiare lo schema di zarafa all'interno della corretta directory di OpenLDAP: | ||
<pre> | <pre> | ||
# gunzip -c /usr/share/doc/zarafa/zarafa.schema.gz > /etc/ldap/schema/zarafa.schema | |||
</pre> | </pre> | ||
Riavviate OpenLDAP e il server sarà pronto: | Riavviate OpenLDAP e il server sarà pronto: | ||
<pre> | <pre> | ||
/etc/init.d/slapd restart | # /etc/init.d/slapd restart | ||
</pre> | </pre> | ||
Se avete più di un server LDAP gestiti in modo da replicare le informazioni sugli utenti, ricordatevi di effettuare le modifiche su ogni server. | Se avete più di un server LDAP gestiti in modo da replicare le informazioni sugli utenti, ricordatevi di effettuare le modifiche su ogni server. | ||
==== Configurazione di OpenLDAP per gli email alias ==== | |||
Per utilizzare gli alias email nel nostro server OpenLDAP dobbiamo aggiungere uno schema: | |||
* Per prima cosa scarichiamo lo schema: | |||
<pre> | |||
# wget http://download.zarafa.com/zarafa/qmail.schema | |||
# mv qmail.schema /etc/ldap/schema/qmail.schema | |||
</pre> | |||
* Quindi aggiungiamo lo schema nel nostro file di configurazione di OpenLDAP, con una nuova linea: | |||
<pre> | |||
include /etc/ldap/schema/qmail.schema | |||
</pre> | |||
* Infine riavviamo OpenLDAP: | |||
<pre> | |||
# /etc/init.d/slapd restart | |||
</pre> | |||
=== Test della configurazione === | |||
Un semplice riavvio dei demoni di Zarafa: | Un semplice riavvio dei demoni di Zarafa: | ||
<pre> | <pre> | ||
/etc/init.d/zarafa-server restart | # /etc/init.d/zarafa-server restart | ||
/etc/init.d/zarafa-spooler restart | # /etc/init.d/zarafa-spooler restart | ||
/etc/init.d/zarafa-monitor restart | # /etc/init.d/zarafa-monitor restart | ||
/etc/init.d/zarafa-gateway restart | # /etc/init.d/zarafa-gateway restart | ||
/etc/init.d/zarafa-ical restart | # /etc/init.d/zarafa-ical restart | ||
/etc/init.d/zarafa-licensed restart | # /etc/init.d/zarafa-licensed restart | ||
</pre> | </pre> | ||
dovrebbe essere a questo punto sufficiente.<br/> | dovrebbe essere a questo punto sufficiente.<br/> | ||
Riga 201: | Riga 218: | ||
* '''Elenco degli utenti Zarafa''' | * '''Elenco degli utenti Zarafa''' | ||
<pre> | <pre> | ||
zarafa-admin -l | # zarafa-admin -l | ||
</pre> | </pre> | ||
* '''Elenco dei gruppi Zarafa''' | * '''Elenco dei gruppi Zarafa''' | ||
<pre> | <pre> | ||
zarafa-admin -L | # zarafa-admin -L | ||
</pre> | </pre> | ||
Se tutto è andato per il verso giusto, in questi elenchi dovreste ritrovare anche i vostri utenti LDAP. | Se tutto è andato per il verso giusto, in questi elenchi dovreste ritrovare anche i vostri utenti LDAP. | ||
===Il server SMTP | === Installazione delle licenze === | ||
Se avete acquistato una versione di Zarafa diversa dalla Community Edition, che è opensource, siete in possesso di alcuni file contenenti le licenze. Questi file vanno collocati nella giusta posizione del filesystem.<br/> | |||
Il server si aspetta di trovare una directory contenente un file chiamato base dal quale leggere la chiave di licenza. La directory predefinita è <code>/etc/zarafa/license</code>. Per installare la propria chiave di licenza utilizzare il seguente comando: | |||
<pre> | |||
# mkdir -p /etc/zarafa/license | |||
# echo 'license key' > /etc/zarafa/license/base | |||
</pre> | |||
<code>license key</code> deve ovviamente essere sostituito con una valida chiave di licenza.<br/> | |||
'''Nota''': La chiave di licenza deve essere inserita in maiuscolo. | |||
Se si possiede una CAL addizionale (Client Access License), è possibile aggiungerla al server come segue: | |||
<pre> | |||
# echo 'CAL key' > /etc/zarafa/license/cal1 | |||
</pre> | |||
Se si possiede più di una CAL, installare una CAL per file nella directory delle licenze. Il nome del file del CAL non ha importanza. | |||
=== Verifica del funzionamento dei servizi Zarafa === | |||
Recatevi nella directory <code>/etc/default</code> e verificate la presenza dei files: | |||
<pre> | |||
# ls -la | |||
-rw-r--r-- 1 root root 528 7 feb 17:27 zarafa-dagent | |||
-rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-gateway | |||
-rw-r--r-- 1 root root 423 25 gen 18:30 zarafa-ical | |||
-rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-indexer | |||
-rw-r--r-- 1 root root 463 25 gen 18:30 zarafa-licensed | |||
-rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-monitor | |||
-rw-r--r-- 1 root root 443 25 gen 18:30 zarafa-server | |||
-rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-spooler | |||
-rw-r--r-- 1 root root 212 25 gen 18:45 zarafa-ssm | |||
</pre> | |||
Per ogni file, verificate anche che la voce: | |||
<pre> | |||
NOMESERVIZIO_ENABLED=yes | |||
</pre> | |||
sia effettivamente settata su <code>yes</code> | |||
== Il server SMTP == | |||
Arrivati a questo punto ci ritroviamo con un server groupware perfettamente funzionante, ma che ancora non sa come inviare e da chi ricevere email. Abbiamo perciò bisogno di installare e configurare un server SMTP. | Arrivati a questo punto ci ritroviamo con un server groupware perfettamente funzionante, ma che ancora non sa come inviare e da chi ricevere email. Abbiamo perciò bisogno di installare e configurare un server SMTP. | ||
=== Un po' di terminologia === | |||
Iniziamo con il chiarire alcuni termini legati all'installazione di un server di posta elettronica: | Iniziamo con il chiarire alcuni termini legati all'installazione di un server di posta elettronica: | ||
* MUA (Mail User Agent): il MUA è il programma che un utente utilizza per leggere la propria posta elettronica. Alcuni esempi: Microsoft Outlook, Evolution. Diversi protocolli possono essere utilizzati dal MUA; i più comuni sono Pop3 e Imap. | * MUA (Mail User Agent): il MUA è il programma che un utente utilizza per leggere la propria posta elettronica. Alcuni esempi: Microsoft Outlook, Evolution. Diversi protocolli possono essere utilizzati dal MUA; i più comuni sono Pop3 e Imap. | ||
* MTA (Mail Transfert Agent): è il programma che si occupa di spedire le email da un server all'altro. Il protocollo utilizzato è SMTP. Alcuni MTA installabili in Debian sono: postfix, sendmail, qmail, exim4. In questa guida ci concentreremo sul server postfix. | * MTA (Mail Transfert Agent): è il programma che si occupa di spedire le email da un server all'altro. Il protocollo utilizzato è SMTP. Alcuni MTA installabili in Debian sono: postfix, sendmail, qmail, exim4. In questa guida ci concentreremo sul server postfix. | ||
* MDA (Mail Delivery Agent): è il programma che riceve le email dal MTA e le smista nelle caselle postali dei vari utenti. In questa guida prenderemo in considerazione | * MDA (Mail Delivery Agent): è il programma che riceve le email dal MTA e le smista nelle caselle postali dei vari utenti. In questa guida prenderemo in considerazione fetchmail. | ||
=== Schema di funzionamento === | |||
Lo schema di funzionamento del nostro sistema groupware può essere riassunto così: | Lo schema di funzionamento del nostro sistema groupware può essere riassunto così: | ||
* Zarafa: fornisce un MUA via web interface e un sistema groupware | * Zarafa: fornisce un MUA via web interface e un sistema groupware | ||
* Zarafa-spooler: fornisce un gateway verso il server SMTP | * Zarafa-spooler: fornisce un gateway verso il server SMTP installato sul server e ci permetterà di inviare la posta all'interno e all'esterno | ||
* Postfix: sarà il nostro | * Postfix: sarà il nostro server SMTP per la posta della nostra intranet e per la posta esterna | ||
* | * Fetchmail: ci permetterà di recuperare la posta che ci viene spedita su alcuni account POP esterni e di integrarla nel nostro sistema, smistandola ai vari utenti di Zarafa | ||
Per inviare mail dal server Zarafa deve essere in funzione il servizio < | === Invio di email da Zarafa === | ||
Per inviare mail dal server Zarafa deve essere in funzione il servizio <code>zarafa-spooler</code>. La configurazione del servizio viene fatta attraverso il file <code>'''/etc/zarafa/spooler.cfg'''</code>. L'unica modifica richiesta è alla voce: | |||
<pre> | <pre> | ||
# Outgoing mailserver name or IP address | # Outgoing mailserver name or IP address | ||
smtp_server = | smtp_server = localhost | ||
# Se state gestendo solo caselle email esterne | # Se state gestendo solo caselle email esterne | ||
# dovete inserire il server SMTP del vostro provider. | # dovete inserire il server SMTP del vostro provider. | ||
# Se intendete utilizzare anche caselle email locali | # Se intendete utilizzare anche caselle email locali | ||
# impostate il questo campo l'indirizzo IP del server SMTP | # impostate il questo campo l'indirizzo IP del server SMTP | ||
# della vostra rete interna | # della vostra rete interna oppure scrivete localhost | ||
</pre> | </pre> | ||
=== Installazione di Postfix === | |||
Ora è il momento di installare un server SMTP sul nostro server, in modo da poter inviare email nella nostra intranet e all'esterno. | Ora è il momento di installare un server SMTP sul nostro server, in modo da poter inviare email nella nostra intranet e all'esterno. | ||
<pre> | <pre> | ||
apt-get update | # apt-get update | ||
apt-get install postfix | # apt-get install postfix | ||
</pre> | |||
Poiché useremo un'autenticazione basata su OpenLDAP è necessario installare anche il pacchetto: | |||
<pre> | |||
# apt-get install postfix-ldap | |||
</pre> | </pre> | ||
Riceverete un avviso da apt, che vi dice che saranno rimossi i pacchetti relativi a exim4, il server SMTP installato di default da Debian. Confermate e procedete con l'installazione. Durante l'installazione di Postfix vi verrà chiesto che tipo di configurazione di server SMTP intendete creare: scegliete '''nessuna configurazione''', | per permettere a Postfix di interpretare le istruzioni <code>ldap</code> all'interno del proprio file di configurazione. | ||
Riceverete un avviso da apt, che vi dice che saranno rimossi i pacchetti relativi a exim4, il server SMTP installato di default da Debian. Confermate e procedete con l'installazione. Durante l'installazione di Postfix vi verrà chiesto che tipo di configurazione di server SMTP intendete creare: scegliete '''nessuna configurazione''', perché creeremo un file di configurazione nostro da zero.<br/> | |||
Se tutto è andato a buon fine siamo pronti per creare il file di configurazione principale di Postfix: | Se tutto è andato a buon fine siamo pronti per creare il file di configurazione principale di Postfix: | ||
<pre> | <pre> | ||
cd /etc/postfix | # cd /etc/postfix | ||
touch main.cf | # touch main.cf | ||
chmod 600 main.cf | # chmod 600 main.cf | ||
nano main.cf | # nano main.cf | ||
</pre> | </pre> | ||
Il contenuto del file deve essere il seguente:<br/> | Il contenuto del file deve essere il seguente:<br/> | ||
< | <code>'''/etc/postfix/main.cf'''</code> | ||
<pre> | <pre> | ||
#Impostazioni sulle directory del programma | #Impostazioni sulle directory del programma | ||
Riga 270: | Riga 329: | ||
myorigin = $mydomain | myorigin = $mydomain | ||
#Domini che postfix | #Domini che postfix considererà locali, per i quali smisterà | ||
# la posta localmente | |||
mydestination = $myhostname, localhost.$mydomain $mydomain | mydestination = $myhostname, localhost.$mydomain $mydomain | ||
Riga 276: | Riga 336: | ||
masquerade_domains = $mydomain | masquerade_domains = $mydomain | ||
#Se un dominio non | #Se un dominio non è locale, postfix delegherà il compito a tale relay | ||
#per l’invio della posta | |||
relayhost = out.virgilio.it | relayhost = out.virgilio.it | ||
Riga 284: | Riga 345: | ||
# Configuro le mailbox | # Configuro le mailbox | ||
mailbox_command = | mailbox_command = | ||
mailbox_size_limit = 0 | mailbox_size_limit = 0 | ||
Riga 306: | Riga 367: | ||
#Banner per la connessione telenet (piccolo vezzo grafico) | #Banner per la connessione telenet (piccolo vezzo grafico) | ||
smtpd_banner = $myhostname ESMTP $mail_name (Debian GNU/Linux) | smtpd_banner = $myhostname ESMTP $mail_name (Debian GNU/Linux) | ||
##################################################### | |||
# Configurazione di Postfix per Zarafa # | |||
# ------------------------------------------------- # | |||
# Eliminare questo blocco per utilizzare una # | |||
# configurazione standard di Postfix. # | |||
##################################################### | |||
local_recipient_maps = $alias_maps | |||
alias_maps = hash:/etc/aliases ldap:ldapsrc | |||
mailbox_transport = zarafa: | |||
zarafa_destination_recipient_limit = 1 | |||
virtual_alias_maps = ldap:ldapsrc | |||
ldapsrc_server_host = 192.168.0.1 | |||
ldapsrc_search_base = ou=Users,dc=dominio,dc=local | |||
ldapsrc_query_filter = (|(mail=%s)(mailAlternateAddress=%s)) | |||
ldapsrc_bind_dn = cn=admin,dc=dominio,dc=local | |||
ldapsrc_bind_pw = password_admin_di_LDAP | |||
ldapsrc_version = 3 | |||
ldapsrc_result_attribute = uid | |||
################################################# | |||
# Fine del blocco per l'integrazione con Zarafa # | |||
################################################# | |||
# Alcune regole antispam | # Alcune regole antispam | ||
Riga 326: | Riga 412: | ||
permit | permit | ||
</pre> | </pre> | ||
Ovviamente dovrete modificare le voci relative al nome del vostro dominio interno, al nome del server di posta del vostro provider e gli indirizzi IP della vostra rete.<br/><br/> | |||
Modificate adesso il file <code>'''/etc/postfix/master.cfg'''</code>, aggiungendo alla fine del file la riga: | |||
<pre> | <pre> | ||
zarafa unix - n n - 10 pipe user=vmail argv=/usr/bin/zarafa-dagent ${user} | |||
</pre> | </pre> | ||
L'utente <code>vmail</code> deve essere un utente locale unix; perciò: | |||
<pre> | <pre> | ||
telnet localhost 25 | # adduser vmail | ||
</pre> | |||
Di default solo l'utente root può smistare la posta a Zarafa-Server. Poiché zarafa-dagent gira con i permessi dell'utente vmail, è necessario aggiungere questo utente nel file <code>'''/etc/zarafa/server.cfg'''</code>. Cambiate la linea: | |||
<pre> | |||
local_admin_users root | |||
</pre> | |||
con: | |||
<pre> | |||
local_admin_users = root vmail | |||
</pre> | |||
Se avete la necessità di forwardare le email destinate ai vostri utenti locali, potete agire sul file <code>/etc/aliases</code>.<br/> | |||
Innanzitutto bisogna aggiungere la mappa degli alias a Postfix col comando: | |||
<pre> | |||
# postconf -e "alias_maps = hash:/etc/aliases" | |||
</pre> | |||
Fatto questo, potete aprire il file e aggiungere nuovi alias come i seguenti: | |||
<pre> | |||
root: ferdy | |||
</pre> | |||
Potete forwardare le mail di sistema ad un indirizzo esterno: | |||
<pre> | |||
ferdy: myemail@example.com | |||
</pre> | |||
e potete anche continuare a tenerne una copia in locale: | |||
<pre> | |||
ferdy: ferdy myemail@example.com | |||
</pre> | |||
A questo punto basta salvare la nuova configurazione: | |||
<pre> | |||
# newaliases | |||
# /etc/init.d/postfix reload | |||
</pre> | |||
Siamo pronti per inviare la nostra prima mail. A questo scopo ci connettiamo via telnet alla porta 25 dove è in ascolto Postfix: | |||
<pre> | |||
# telnet localhost 25 | |||
</pre> | </pre> | ||
Dovremmo ottenere come risposta: | Dovremmo ottenere come risposta: | ||
Riga 357: | Riga 478: | ||
</pre> | </pre> | ||
Infine digitate | Infine digitate: | ||
<pre> | <pre> | ||
quit | quit | ||
</pre> | </pre> | ||
per chiudere la connessione telnet con Postfix. | per chiudere la connessione telnet con Postfix.<br/> | ||
Controllate la posta: dovrebbe esservi arrivata una mail!<br/> | |||
Una cosa da tenere presente è che la configurazione di Postfix presa in esame ci permette di configurare un server di posta interno per la sola nostra intranet; per ogni email avente come destinatario un indirizzo esterno postfix si appoggerà al server di posta SMTP del nostro provider. Questa configurazione ci libera dal compito di mantenere un server SMTP accessibile da internet, con tutti i rischi di spammer connessi. | |||
=== Amministrazione di Postfix === | |||
Postfix fornisce due utili tool per poter amministrare la sua coda: <code>postqueue</code> e <code>postsuper</code>.<br/> | |||
Il primo comando serve per la normale gestione della coda, il secondo permette anche di cancellare mail all'interno nella coda. | |||
* Per vedere tutta la coda di posta presente sul server: | |||
<pre> | |||
# postqueue -p | |||
</pre> | |||
* Per il flush della coda di posta: | |||
<pre> | |||
# postqueue -f | |||
</pre> | |||
* Per cancellare tutte le mail in coda: | |||
<pre> | |||
# postsuper -d ALL | |||
</pre> | |||
* Cancella dalla coda una specifica mail (queue_id può essere recuperato con il comando postqueue -p): | |||
<pre> | |||
# postsuper -d queue_id | |||
</pre> | |||
* Per bloccare tutte le mail in coda: | |||
<pre> | |||
# postsuper -h ALL | |||
</pre> | |||
* Bloccare una specifica mail in coda (queue_id può essere recuperato con il comando postqueue -p): | |||
<pre> | |||
# postsuper -h queue_id | |||
</pre> | |||
* Per riattivare tutte le mail bloccate in coda: | |||
<pre> | |||
# postsuper -H ALL | |||
</pre> | |||
* Riattiva una specifica mail bloccata in coda (queue_id può essere recuperato con il comando postqueue -p): | |||
<pre> | |||
# postsuper -H queue_id | |||
</pre> | |||
=== Ricezione e smistamento della posta in arrivo === | |||
La posta locale e l'invio della posta verso destinatari esterni alla nostra rete LAN dovrebbero già funzionare. Per verificare che tutto vada per il verso giusto aprite il vostro browser su: | |||
<pre> | |||
http://indirizzo.ip.server.zarafa/webaccess | |||
</pre> | |||
fate login con le vostre credenziali OpenLDAP e provate a: | |||
* inviare una email al vostro stesso utente locale | |||
* inviare una mail ad un account esterno (gmail, yahoo o altro) | |||
In entrambi i casi dovreste ricevere posta. Per il vostro utente locale potete leggerla direttamente da dentro il webaccess di Zarafa; per l'account esterno collegatevi via webmail.<br/> | |||
Nel caso in cui la posta spedita vi ritorni indietro, controllate il file di log <code>/var/log/zarafa/spooler.log</code>. Se trovate delle righe come queste: | |||
<pre> | |||
Sun Feb 7 15:34:11 2010: [21609] Sending e-mail for user ferdy, subject: 'prova', size: 2386 | |||
Sun Feb 7 15:34:11 2010: [21609] No expeditor specified. | |||
Sun Feb 7 15:34:11 2010: [21609] E-mail for user ferdy could not be sent, notifying user | |||
</pre> | |||
andate al paragrafo successivo di questa guida ([[Zarafa: un sostituto opensource per Microsoft Exchange#Modifica del campo From:| Modifica del campo From:]]) e applicate il suggerimento descritto. | |||
<br/><br/> | |||
Non resta adesso che configurare la ricezione e lo smistamento della posta elettronica, prendendola dagli account di posta dei nostri provider e smistandola ai nostri utenti locali.<br/> | |||
Per fare questo utilizzeremo il programma '''fetchmail''': | |||
<pre> | |||
# apt-get install fetchmail | |||
</pre> | |||
Dato che stiamo lavorando su un server e vogliamo che le operazioni di configurazione siano trasparenti agli utenti finali, imposteremo un singolo file di configurazione: <code>'''/etc/fetchmailrc'''</code>: | |||
<pre> | |||
# touch /etc/fetchmailrc | |||
# chown fetchmail /etc/fetchmailrc | |||
# chmod 600 /etc/fetchmailrc | |||
</pre> | |||
Il file di configurazione deve avere un contenuto simile al seguente: | |||
<pre> | |||
########################################################### | |||
# I M P O S T A Z I O N I: legenda | |||
# -------------------------------- | |||
# poll = imposta il tempo di attesa di connessione | |||
# proto = tipo di protocollo da usare | |||
# authenticate = tipo di autenticazione | |||
# user = nome utente per autenticazione | |||
# password = password per autenticazione | |||
# mda = mail delivery agent al quale passare la posta | |||
# is user here options = utente al quale destinare la posta | |||
# | |||
# OPZIONI: legenda | |||
# ---------------- | |||
# keep = non cancellare i messaggi sul server | |||
# fetchall = scaricare anche i messaggi vecchi | |||
############################################################ | |||
###################################### | |||
# INIZIO CONFIGURAZIONE DI FETCHMAIL # | |||
###################################### | |||
# Imposto il demone per il controllo della posta ogni 5 minuti | |||
set daemon 300 | |||
# Utente a cui va a finire la posta se non ce ne sono altri disponibili | |||
set postmaster "discarica@gmail.com" | |||
# Configuro gli account da scaricare | |||
# ACCOUNT TIN.IT | |||
poll box.tin.it timeout 60 | |||
proto POP3 | |||
authenticate password | |||
user "pinco@tin.it" | |||
password "xxxxxxx" | |||
mda "/usr/bin/zarafa-dagent pinco_zarafa" | |||
# keep | |||
# ACCOUNT GMAIL / Yahoo Mail | |||
poll pop.gmail.com timeout 60 | |||
proto POP3 port 995 | |||
user "pinco@gmail.com" | |||
password "xxxxxxx" | |||
mda "/usr/bin/zarafa-dagent pinco_zarafa" | |||
options keep flush no rewrite stripcr ssl | |||
</pre> | |||
dove <code>pinco_zarafa</code> è l'utente LDAP al quale vogliamo smistare la posta recuperata da fetchmail.<br/> | |||
Per permettere a fetchmail di funzionare come demone bisogna inoltre cambiare, dentro il fle <code>'''/etc/default/fetchmail'''</code> il valore della variabile: | |||
<pre> | |||
START_DAEMON=no | |||
</pre> | |||
in: | |||
<pre> | |||
START_DAEMON=yes | |||
</pre> | |||
Affinché fetchmail sia in grado di reindirizzare le mail al server Zarafa, dobbiamo aggiungere l'utente con i cui privilegi gira fetchmail al gruppo di utenti amministratori di Zarafa. Perciò aprite il file <code>'''/etc/zarafa/server.cfg'''</code> e cambiate la linea: | |||
<pre> | |||
local_admin_users root vmail | |||
</pre> | |||
con: | |||
<pre> | |||
local_admin_users = root vmail fetchmail | |||
</pre> | |||
==== Modifica del campo From: ==== | |||
Con la configurazione attuale, nel campo <code>From:</code> delle nostre email comparirà l'indirizzo interno <code>nome.utente@dominio.local</code>, ma in questo modo chiunque al di fuori della nostra intranet provi a risponderci riceverà un errore di utente sconosciuto. Per modificare questo comportamento la soluzione più comoda è collegarsi al nostro database OpenLDAP tramite la GUI phpLDAPadmin, ricercare l'utente e effettuare le seguenti modifiche: | |||
* aggiungere un nuovo attributo (Add New Attribute) | |||
* aggiungere un attributo <code>Mail</code> | |||
* attribuire come valore dell'attributo Mail l'indirizzo email da utilizzare | |||
* cliccate su <code>Save Changes</code> in fondo alla pagina | |||
Sempre in questo campo, prima dell'indirizzo email comparirà anche il nome utente del mittente; spesso però vogliamo che il destinatario della nostra email veda una dicitura diversa. Ad esempio il nostro indirizzo aziendale è <code>n.cognome@dominio.local</code>, ma vogliamo che come indicazione del mittente appaia <code>Nome Cognome</code> e non <code>n.cognome</code>. Per effettuare questa modifica collegatevi al database OpenLDAP tramite la GUI phpLDAPadmin, ricercate l'utente da modificare e cambiate l'attributo <code>'''cn'''</code> da <code>n.cognome</code> a <code>Nome Cognome</code>. | |||
== Configurazione di Microsoft Outlook == | |||
Arrivati a questo punto è possibile utilizzare Microsoft Outlook per collegarci al nostro server Zarafa.<br/> | |||
L'unico prerequisito è che sul nostro PC sia installata una versione di Outlook pari a Outlook 2000 o successivo. | |||
=== Installazione del client Zarafa === | |||
Si scompatti il file tar.gz contenente la versione di Zarafa che abbiamo scaricato, e ci si porti nella cartella <code>win32</code>. Ora si clicchi due volte sul file <code>'''zarafaclient.msi'''</code> per installare il connettore Outlook. | |||
=== Aggiornamento automatico del client Zarafa === | |||
Se volete che il client Zarafa per Outlook si aggiorni automaticamente, agite come segue: | |||
* aprite il file <code>/etc/zarafa/server.cfg</code> e modificate come segue le direttive: | |||
<pre> | |||
client_update_enabled = yes | |||
client_update_path = /var/lib/zarafa/client | |||
</pre> | |||
* scaricate dal sito di Zarafa la versione più aggiornata del connettore Zarafa Client (ad es. zarafaclient-6.20.2-12345.msi) e, '''senza cambiare nome al file''' spostatelo nella directory indicata al passaggio precedente | |||
* infine installate su ogni client una versione di zarafaclient pari almeno alla 6.30.2 e scegliete di installare anche il servizio Auto Updater. | |||
* da questo momento i vostri client si aggiorneranno da soli | |||
=== Configurazione di Outlook === | |||
==== Outlook XP/2003 ==== | |||
# Creazione di un nuovo profilo email: | |||
#* Andare su Pannello di Controllo > Posta > Profili | |||
#* Cliccare su Aggiungi... e immettere un nome per il nuovo profilo (es: Zarafa) | |||
#* Cliccare su OK per terminare | |||
# Aggiungere un server Zarafa al profilo creato | |||
#* Scegliere Crea un nuovo account di posta e cliccare su Successivo | |||
#* Scegliere l'ultima opzione (Impostazioni del Server aggiuntive) e cliccare su Successivo | |||
#* Scegliere Zarafa Server e cliccare su Successivo | |||
#* Si aprirà una finestra, nella quale dovrete indicare: | |||
#*# l'indirizzo IP del server Zarafa | |||
#*# la porta di comunicazione (236) | |||
#*# il nome utente LDAP e la relativa password | |||
#* Scegliere il tipo di connessione che Outlook dovrà stabilire con il server Zarafa. Per una spiegazione dettagliata dei tipi di connessione vi rimando al paragrafo relativo, più sotto | |||
#* Scegliere OK per chiudere le finestre | |||
==== Outlook 2000 ==== | |||
# Creazione di un nuovo profilo email: | |||
#* Andare su Pannello di Controllo > Posta | |||
#* Cliccare su Aggiungi profili... e scegliere Configura i servizi manualmente. Cliccare Successivo | |||
#* Scegliere un nome per il profilo, per esempio “Zarafa” e cliccare Successivo | |||
#* Cliccare su Aggiungi... > Zarafa Server > OK | |||
#* Si aprirà una finestra, nella quale dovrete indicare: | |||
#*# l'indirizzo IP del server Zarafa | |||
#*# la porta di comunicazione (236) | |||
#*# il nome utente LDAP e la relativa password | |||
#* Ora cliccare Aggiungi.. > Rubrica Outlook > OK | |||
#* Scegliere OK per chiudere le finestre | |||
==== Outlook 2007/2010 ==== | |||
#* Andare nel Pannello di Controllo > Posta > Mostra Profili | |||
#* Cliccare su Aggiungi ... Scegliere un nome per il profilo, per esempio “Zarafa” e cliccare OK | |||
#* Scegliere Configura i servizi manualmente e Successivo | |||
#* Cliccare su Aggiungi... > Zarafa Server > Successivo | |||
#* Si aprirà una finestra, nella quale dovrete indicare: | |||
#*# l'indirizzo IP del server Zarafa | |||
#*# la porta di comunicazione (236) | |||
#*# il nome utente LDAP e la relativa password | |||
#* Ora cliccare Aggiungi.. > Rubrica Outlook > OK | |||
#* Cliccare OK e poi su Fine per finalizzare il profilo. | |||
=== Tipi di connessione Outlook === | |||
==== Online ==== | |||
L'opzione Online funziona come le precedenti funzioni zarafa. Quando si ha disponibile una connessione al server, si può inizializzare Outlook. Quando la connessione di rete non è disponibile non è possibile accedere alle e-mail, all'agenda e ai contatti. | |||
==== Controllo all'avvio ==== | |||
Con l'opzione Autodetect Offline/Online, Outlook controlla all'avvio se il server è raggiungibile. Quando Outlook ha una connessione al server Zarafa tutti gli oggetti verranno sincronizzati nella memoria offline. Quando la connessione di rete non è disponibile, Outlook non passerà automaticamente alla memoria offline. È necessario riavviare Outlook per passare alla memoria offline. | |||
Quando si avvia Outlook e non è disponibile una connessione, apparirà un pop-up che chiede se si desidera lavorare offline. | |||
==== Modalità Cache Zarafa ==== | |||
Il terzo tipo di connessione è la Modalità Cache Zarafa. Questa funzionalità è simile alla modalità cache di MS Exchange. Se si seleziona questa opzione, si lavorerà sempre sulla memoria offline. Quando si ha una connessione di rete disponibile, Outlook sincronizzerà gli oggetti creati, cancellati o spostati col server e le e-mail ricevute sul server verranno sincronizzate con la memoria offline. La prima volta che si configura il profilo Outlook è necessario avere una connessione col server Zarafa. Dopo che il profilo è stato creato e si avvia Outlook, tutte le cartelle e gli oggetti verranno sincronizzati. | |||
==== Qual'è il tipo di connessione migliore da utilizzare? ==== | |||
# Utente che lavora sempre nello stesso PC in ufficio: Online | |||
# Utente che utilizza profili di roaming e effettua l'accesso da diversi PC in ufficio: Online | |||
# Utente che lavora su un PC remoto da un sottodipartimento e utilizza una connessione internet con banda limitata: Modalità Cache Zarafa | |||
# Utente con computer portatile che per la maggior parte del tempo lavora in ufficio: Autodetect offline / online | |||
# Utente con computer portatile che è sempre fuori ufficio: Modalità Cache Zarafa | |||
# Utente che lavora su un Terminal Server: Online | |||
=== Invio di email come diverso utente === | |||
È possibile scegliere di inviare una email impersonificando un altro utente; il destinatario della email la vedrà recapitata come se a spedirgliela fosse stato l'utente che desideriamo impersonificare. Per abilitare questa opzione, dato che abbiamo già modificato i file di configurazione di Zarafa, è sufficiente: | |||
# aprire Outlook e creare un nuovo messaggio di posta elettronica | |||
# (Outlook 2000/XP): dal menu Visualizza spuntare le voci Da: e Ccn: | |||
# (Outlook 2003): | |||
## cliccare sulla linguetta di fianco alla voce Opzioni... | |||
## spuntare le voci Ccn: e Da: | |||
== Personalizzazione della Web Interface == | |||
Se avete la necessità di personalizzare l'aspetto dell'interfaccia web di Zarafa, ad esempio aggiungendo un logo aziendale, non dovete far altro che recuperare dalla directory <code>'''/var/www/webaccess/client/layout/img'''</code> i seguenti file: <code>login.jpg</code> e <code>zarafa_top_logo.gif</code>. Modificateli con Gimp e rimetteteli al loro posto, verificando che abbiano i permessi: | |||
<pre> | |||
-rw-r--r-- root root | |||
</pre> | |||
== Configurazione di Thunderbird / Icedove == | |||
Per configurare Thunderbird in modo che acceda al server Imap installato automaticamente con Zarafa bisogna seguire alcuni veloci passaggi: | |||
* Andare in File => Nuovo => Account | |||
* Scegliere "Account di posta" | |||
* Inserire il nome che si desidera venga visualizzato dal destinatario e l'indirizzo di posta configurato su Zarafa | |||
* Scegliere il server IMAP e indicare l'indirizzo IP del server Zarafa. Cliccare Avanti | |||
* Indicare il nome utente così come impostato in Zarafa. Cliccare Avanti | |||
* Indicare un nome per l'account (es: Zarafa IMAP Server). Cliccare Avanti e poi Fine. | |||
== Aggiornamento di Zarafa == | |||
Prima di aggiornare ad una nuova versione di Zarafa è buona norma fare un backup del database e dei file di configurazione.<br/> | |||
Si proceda poi come segue in modo da assicurarsi che il database non sia più in uso: | |||
<pre> | |||
# /etc/init.d/zarafa-server stop | |||
# /etc/init.d/zarafa-dagent stop | |||
# /etc/init.d/zarafa-spooler stop | |||
# /etc/init.d/zarafa-licensed stop | |||
# /etc/init.d/zarafa-monitor stop | |||
# /etc/init.d/zarafa-gateway stop | |||
# /etc/init.d/zarafa-ical stop | |||
# /etc/init.d/zarafa-indexer stop | |||
</pre> | |||
Ora è possibile aggiornare i pacchetti di Zarafa nello stesso modo in cui sono stati installati: | |||
<pre> | |||
# dpkg -i libvmime0_[version]_[arch].deb | |||
# dpkg -i libical0_[version]_[arch].deb | |||
# dpkg -i zarafa_[version]_[arch].deb | |||
# dpkg -i zarafa-webaccess_[version]_all.deb | |||
# dpkg -i zarafa-webaccess-mobile_[version]_all.deb | |||
# dpkg -i zarafa-webaccess-muc_[version]_all.deb | |||
# dpkg -i zarafa-licensed-[version]_all.deb | |||
# dpkg -i zarafa-indexer_[version]_all.deb | |||
</pre> | |||
Sostituite [version] e [arch] con i valori corretti per il vostro sistema e, se vi viene chiesto, scegliete di mantenere i file di configurazione in uso dopo aver visualizzato le differenze.<br/> | |||
Nota: Per la versione community non è necessario il pacchetto zarafa-licensed. Tuttavia, per avere sincronizzazione con Outlook attraverso il client Zarafa è necessario inizializzare il daemon zarafa-licensed.<br/> | |||
Dopo che i nuovi pacchetti sono stati installati, controllare i file di configurazione che si trovano in <code>/usr/share/zarafa</code> per vedere le nuove caratteristiche. Questo viene discusso nella sezione Cambiamenti importanti. Ci sono anche degli script perl e SQL che aggiornano il formato del database a nuove versioni. Alcuni script devono essere eseguiti affinché Zarafa possa rimanere in esecuzione, | |||
altri script sono raccomandati per incrementare le prestazioni.<br/> | |||
Controllate innanzitutto se lo schema OpenLDAP per Zarafa è cambiato (utilizzate diff per verificare i cambiamenti tra la versione contenuta nella documentazione di Zarafa e quella in uso, oppure controllate le dimensioni dei due file). Se lo schema è stato aggiornato, sostituitelo a quello in uso: | |||
<pre> | |||
# /etc/init.d/slapd stop | |||
# mv /etc/ldap/schema/zarafa.schema /etc/ldap/schema/zarafa.schema.old | |||
# cp /usr/share/zarafa/zarafa.schema /etc/ldap/schema/zarafa.schema | |||
# /etc/init.d/slapd start | |||
</pre> | |||
Può valer la pena anche controllare quali modifiche sono state apportate ai file di configurazione. La nuova versione dei file la trovate sempre sotto <code>/etc/zarafa</code>. I file hanno il nome che finisce con <code>.dpkg</code>. Una volta visualizzate le differenze potete scegliere se integrare le novità all'interno della vostra configurazione di Zarafa. | |||
Dopo aver controllato le ulteriori nuove opzioni di configurazione, è possibile inizializzare nuovamente i servizi: | |||
<pre> | |||
# /etc/init.d/zarafa-server start | |||
# /etc/init.d/zarafa-spooler start | |||
# /etc/init.d/zarafa-licensed start | |||
# /etc/init.d/zarafa-monitor start | |||
# /etc/init.d/zarafa-gateway start | |||
# /etc/init.d/zarafa-ical start | |||
# /etc/init.d/zarafa-dagent start | |||
# /etc/init.d/zarafa-indexer start | |||
</pre> | |||
Poiché l'upgrade ha modificato l'estensione PHP di zarafa sarà necessario riavviare anche il webserver: | |||
<pre> | |||
# /etc/init.d/apache2 restart | |||
</pre> | |||
Infine se nella vostra rete ci sono dei client Windows che utilizzano Outlook, scompattate il pacchetto tar.gz di Zarafa, andate nella directory win32 e lanciate l'aggiornamento di Zarafa Client Connector (zarafaclient-[versione].exe).<br> | |||
Se avete modificato il layout dell'interfaccia web di Zarafa, questo è il momento di ricaricare le vostre immagini, dato che l'aggiornamento le ha impietosamente sovrascritte. | |||
== Backup del database di Zarafa == | |||
Il database di Zarafa è un normale database MySQL. Per effettuarne il backup si segua questa guida: [[Backup di MySQL tramite script]] | |||
== Cancellazione automatica della posta eliminata == | |||
Lo script seguente permette la rimozione automarica dei messaggi più vecchi di X giorni presenti nelle cartelle ''Junk E-mail'' e ''Deleted Items''.<br/> | |||
Scarichiamo prima di tutto lo script: | |||
<pre> | |||
# wget http://debian.easyteam.org/files/zarafa/zarafacleanup.zip | |||
</pre> | |||
e installiamo le sue dipendenze: | |||
<pre> | |||
# apt-get install php5-cli | |||
</pre> | |||
Quindi scompattiamolo e spostiamo il suo contenuto: | |||
<pre> | |||
# unzip zarafacleanup.zip | |||
# mv cleanup /usr/local/bin | |||
# mv spam.php /usr/local/bin | |||
# mv delete.php /usr/local/bin | |||
</pre> | |||
Impostiamo ora nei file <code>spam.php</code> e <code>deleted.php</code> la variabile <code>$daysBeforeDeleted</code> al valore che desideriamo e rendiamo infine eseguibile lo script: | |||
<pre> | |||
# chmod 700 /usr/local/bin/cleanup | |||
</pre> | |||
Possiamo ora impostare un <code>cron</code> per programmare lo svuotamento automatico della posta eliminata e della posta indesiderata. | |||
== To Do == | |||
Ancora da fare: | |||
* configurazione di Windows Mobile | |||
{{Autori | |||
|Autore = [[Utente:Ferdybassi|Ferdybassi]] | |||
}} | |||
[[Categoria:Groupware server]] |
Versione attuale delle 19:42, 23 apr 2015
Guida da adottare! |
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 4 "etch" Debian 5 "lenny" |
Introduzione
Zarafa è una soluzione groupware basata sull'aspetto di Microsoft Outlook, che permette la condivisione di e-mail e calendari tramite Outlook, Evolution o altri programmi, oppure attraverso una interfaccia web-based in Ajax. La versione community di Zarafa, rilasciata con licenza GPLv3, offre:
- Webaccess basato su tecnologia AJAX, accessibile anche da dispositivi portatili
- Gateway IMAP/POP3
- Gateway iCal
- Z-Push, un demone che offre compatibilità ActiveSync (licenza GPLv2)
- uno zarafa-connector per Outlook.
La versione community offre fino a 3 utenti Outlook, ed è quindi adatta a reti di piccoli uffici, a reti con predominanza di client Linux oppure per reti in cui gli utenti si servono normalmente di interfacce web. Le versioni Zarafa Professional necessitano di una licenza commerciale per estendere il numero di utenti Outlook.
Download e installazione
Zarafa è scaricabile all'indirizzo:
http://www.zarafa.com/
Scegliete la versione compilata per la vostra Debian e contenente il connettore Outlook.
Requisiti di sistema
Per installarsi correttamente, Zarafa ha bisogno che sul nostro server Debian siano in funzione:
- Un web server Apache2: LAMP: Linux, Apache, MySQL e PHP
- Un database server MySQL5: LAMP: Linux, Apache, MySQL e PHP
- Il linguaggio PHP configurato per lavorare con Apache e MySQL: LAMP: Linux, Apache, MySQL e PHP
- Un server SMTP di nostra scelta (Zarafa consiglia Postfix o Qmail). Più avanti nella guida sarà affrontata l'installazione di un server SMTP.
- (Opzionale) Un database OpenLDAP per la gestione degli utenti. In tutta la guida faremo riferimento a un server OpenLDAP configurato per servire da controller di dominio Samba con autenticazione degli utenti: Samba e OpenLDAP: creare un controller di dominio con Debian Etch
Inoltre dovremo installare alcune altre dipendenze:
# apt-get install libapache2-mod-php5 mysql-client libldap-2.4-2 libmysqlclient15off
L'installazione di Zarafa creerà anche un database MySQL chiamato zarafa
. Dovremo pertanto creare un utente MySQL che abbia i permessi sufficienti per connettersi dall'host locale al database. Collegatevi quindi al vostro database MySQL ed eseguite la query:
GRANT ALL PRIVILEGES ON zarafa.* TO 'zarafa'@'localhost' IDENTIFIED BY 'password_per_zarafa';
Installazione
L'installazione di Zarafa può avvenire in due modi.
Installazione manuale
L'installazione manuale è di pochi e semplici passaggi:
# tar -xzvf zarafa.XXX.tar.gz # cd zarafa-xxxx # dpkg -i libvmime0_[version]_[arch].deb # dpkg -i libical0_[version]_[arch].deb # dpkg -i zarafa_[version]_[arch].deb # dpkg -i zarafa-webaccess_[version]_all.deb # dpkg -i zarafa-licensed_[version]_all.deb
Installazione tramite script
Io consiglio comunque l'installazione tramite lo script fornito da Zarafa, che:
- Controllerà le dipendenze dei pacchetti;
- Installerà i pacchetti utilizzando dpkg, esattamente come nell'installazione manuale;
- Inizializzerà il database MySQL;
- Chiederà le opzioni di configurazione
# tar -xzvf zarafa.XXX.tar.gz # cd zarafa-xxxx # sh ./install.sh
Rispondete alle domande dell'installer e il gioco è fatto. Alla richiesta di inserimento del codice di licenza lasciate la riga bianca: in questo modo sarà automaticamente installata la versione community di Zarafa.
Post-installazione
ATTENZIONE L'installer di Zarafa verifica la presenza del pacchetto di API libvmime 0.7 e, a causa di pesanti differenze tra la versione 0.7 e 0.8 di queste API, se trova una versione successiva ne effettua il downgrade. Dato che nessun pacchetto di Debian dipende dalla versione 0.8 questa è un'operazione senza conseguenze. In occasione però di un successivo aggiornamento del server potrebbe succedere questo:
Calculating upgrade... Done The following packages will be REMOVED: zarafa zarafa-webaccess The following NEW packages will be installed: libgsasl7 The following packages will be upgraded: libvmime0 1 upgraded, 1 newly installed, 2 to remove and 0 not upgraded. Need to get 944kB of archives. After unpacking 16.2MB disk space will be freed. Do you want to continue [Y/n]? Per evitare la rimozione di Zarafa è consigliato di impostare lo stato di hold su questo pacchetto: # echo libvmime0 hold | dpkg --set-selections # echo libical0 hold | dpkg --set-selections |
Il file /etc/php5/apache2/php.ini
deve avere la variabile magic_quotes_gpc
settata su off
, altrimenti l'interfaccia web di Zarafa non funzionerà. Quindi:
# nano /etc/php5/apache2/php.ini
Cercate la variabile e impostatela così:
magic_quotes_gpc = Off
Se vogliamo, inoltre, che i client Outlook si connettano al webaccess sulla porta 80 dobbiamo impostare il modulo mod_proxy nel nostro Apache:
# a2enmod proxy # nano /etc/apache2/apache2.conf
e inserite la sezione:
<IfModule mod_proxy.c> ProxyPass /zarafa http://127.0.0.1:236/ ProxyPassReverse /zarafa http://127.0.0.1:236/ <Location /zarafa> Order Allow,Deny Allow from all </Location> </IfModule>
Riavviate Apache per fargli digerire le modifiche:
# /etc/init.d/apache2 restart
Configurazione
I servizi di Zarafa
Zarafa, una volta installato, ha sei servizi in esecuzione:
- zarafa-server, server Zarafa
- zarafa-spooler, per inviare le email al server SMTP
- zarafa-monitor, controlla i limiti delle quote
- zarafa-gateway, fornisce accesso POP3 e IMAP
- zarafa-ical, permette accesso iCal per clients che usano questo tipo di calendario
- zarafa-licensed, necessario quando si utilizza un modulo non open source in combinazione con zarafa-server
Per avviarli, stopparli, riavviarli si usa la solita sintassi:
# /etc/init.d/zarafa-[servicename] start|stop|restart
Configurare il server Zarafa
Il file principale di configurazione di Zarafa, ottimamente commentato, si trova in /etc/zarafa/server.cfg
. Il cambiamento minimo che è necessario apportare al file di configurazione riguarda l'opzione mysql_password
. Impostate la password corretta che zarafa utilizzerà per accedere al database MySQL e controllate, inoltre, le altre opzioni MySQL, così che le connessioni al database possano essere stabilite correttamente.
Zarafa a questo punto può già essere eseguito.
L'impostazione più importante in Zarafa, è quella relativa al plugin user_plugin
. Questa impostazione determina quale backend utente deve essere utilizzato per elencare gli utenti ed i gruppi. Le possibilità sono:
- db
- unix
- ldap
Il plugin utente db
utilizza il database MySQL per memorizzare informazioni relative a gruppi ed utenti. Si può utilizzare lo strumento zarafa-admin
per gestire i propri utenti. Se decidete di utilizzare questo plugin, dovrete creare degli utenti Zarafa dotati di propria userID e propria password, che risulteranno essere diversi dagli utenti Linux. Il plugin utente db
viene installato in modo predefinito e non necessita di nessuna configurazione.
Il plugin utente unix
usa le informazioni dai file /etc/passwd
, /etc/group
e /etc/shadow
. Un elenco di utenti e gruppi uguale a quello degli utenti Linux viene automaticamente ricreato in Zarafa.
Il plugin ldap
utilizza un server LDAP per ottenere informazioni circa gli utenti ed i gruppi. Questi verranno quindi gestiti direttamente tramite il server LDAP o il server ActiveDirectory. Il grande vantaggio di questa soluzione è che si può dotare la propria rete di funzioni single sign on, in modo che ogni utente debba ricordare una sola userID e una sola password per accedere a tutti i servizi, dal login sui client alla posta.
Normalmente tutti i servizi di registrazione degli utenti registrano tali eventi in /var/log/zarafa
. Questa directory viene creata quando i pacchetti vengono installati. È possibile cambiare il metodo di registrazione degli eventi nel file di configurazione, configurando l'opzione syslog
.
Configurare il plugin LDAP
Il plugin LDAP può essere utilizzato se nella vostra rete esiste già un server LDAP per gestire gli account utente e se desiderate accoppiare il server LDAP con Zarafa, in modo che gli utenti di sistema siano automaticamente autenticati anche in Zarafa. Tutti gli utenti, i gruppi e le informazioni su di essi verranno quindi recuperati in tempo reale dal server LDAP. Le principali caratteristiche del plugin LDAP sono:
- Accoppiamento con qualsiasi server di tipo LDAP
- Totalmente configurabile per l'uso con OpenLDAP e Active Directory
Per attivare il plugin LDAP aprite il file di configurazione di Zarafa e modificate la direttiva:
# Prima #user_plugin = db # Dopo user_plugin = ldap
Il file di configurazione del plugin è /etc/zarafa/ldap.cfg
. In una installazione from scratch di Zarafa questo file non esiste; il team Zarafa mette però gentilmente a disposizione due template per la configurazione del plugin LDAP:
ldap.openldap.cfg
già preconfigurato e ottimizzato per un database OpenLDAPldap.activedirectory.cfg
già preconfigurato e ottimizzato per Microsoft Active Directory
Quindi:
# cd /etc/zarafa # cp ldap.openldap.cfg ldap.cfg
Aprite ora il file appena creato, /etc/zarafa/ldap.cfg
, e modificate i parametri, in modo da adattarli alla vostra struttura LDAP. In particolare modificate le voci:
#Sostituite a localhost l'IP del server LDAP, se gira su un'altra macchina ldap_host = localhost #Sostituite le voci del vostro dominio quando trovate dn=zarafa,dn=com # Mettete qui un utente LDAP per il binding con il database ldap_bind_user = cn=admin,dc=zarafa,dc=com # e la sua password ldap_bind_passwd = password.utente # Le righe seguenti contengono un errore ldap_user_search_base = cn=users,dc=zarafa,dc=com ldap_group_search_base = cn=groups,dc=zarafa,dc=com # Individuatele e sostituitele con ldap_user_search_base = ou=users,dc=zarafa,dc=com ldap_group_search_base = ou=groups,dc=zarafa,dc=com
Configurazione del database OpenLDAP
Per configurare correttamente il nostro server OpenLAP occorre innanzitutto inserire nel suo file di configurazione /etc/ldap/slapd.conf
la direttiva:
include /etc/ldap/schema/zarafa.schema
e copiare lo schema di zarafa all'interno della corretta directory di OpenLDAP:
# gunzip -c /usr/share/doc/zarafa/zarafa.schema.gz > /etc/ldap/schema/zarafa.schema
Riavviate OpenLDAP e il server sarà pronto:
# /etc/init.d/slapd restart
Se avete più di un server LDAP gestiti in modo da replicare le informazioni sugli utenti, ricordatevi di effettuare le modifiche su ogni server.
Configurazione di OpenLDAP per gli email alias
Per utilizzare gli alias email nel nostro server OpenLDAP dobbiamo aggiungere uno schema:
- Per prima cosa scarichiamo lo schema:
# wget http://download.zarafa.com/zarafa/qmail.schema # mv qmail.schema /etc/ldap/schema/qmail.schema
- Quindi aggiungiamo lo schema nel nostro file di configurazione di OpenLDAP, con una nuova linea:
include /etc/ldap/schema/qmail.schema
- Infine riavviamo OpenLDAP:
# /etc/init.d/slapd restart
Test della configurazione
Un semplice riavvio dei demoni di Zarafa:
# /etc/init.d/zarafa-server restart # /etc/init.d/zarafa-spooler restart # /etc/init.d/zarafa-monitor restart # /etc/init.d/zarafa-gateway restart # /etc/init.d/zarafa-ical restart # /etc/init.d/zarafa-licensed restart
dovrebbe essere a questo punto sufficiente.
Per testare il corretto funzionamento del binding di Zarafa verso OpenLDAP potete utilizzare i seguenti comandi:
- Elenco degli utenti Zarafa
# zarafa-admin -l
- Elenco dei gruppi Zarafa
# zarafa-admin -L
Se tutto è andato per il verso giusto, in questi elenchi dovreste ritrovare anche i vostri utenti LDAP.
Installazione delle licenze
Se avete acquistato una versione di Zarafa diversa dalla Community Edition, che è opensource, siete in possesso di alcuni file contenenti le licenze. Questi file vanno collocati nella giusta posizione del filesystem.
Il server si aspetta di trovare una directory contenente un file chiamato base dal quale leggere la chiave di licenza. La directory predefinita è /etc/zarafa/license
. Per installare la propria chiave di licenza utilizzare il seguente comando:
# mkdir -p /etc/zarafa/license # echo 'license key' > /etc/zarafa/license/base
license key
deve ovviamente essere sostituito con una valida chiave di licenza.
Nota: La chiave di licenza deve essere inserita in maiuscolo.
Se si possiede una CAL addizionale (Client Access License), è possibile aggiungerla al server come segue:
# echo 'CAL key' > /etc/zarafa/license/cal1
Se si possiede più di una CAL, installare una CAL per file nella directory delle licenze. Il nome del file del CAL non ha importanza.
Verifica del funzionamento dei servizi Zarafa
Recatevi nella directory /etc/default
e verificate la presenza dei files:
# ls -la -rw-r--r-- 1 root root 528 7 feb 17:27 zarafa-dagent -rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-gateway -rw-r--r-- 1 root root 423 25 gen 18:30 zarafa-ical -rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-indexer -rw-r--r-- 1 root root 463 25 gen 18:30 zarafa-licensed -rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-monitor -rw-r--r-- 1 root root 443 25 gen 18:30 zarafa-server -rw-r--r-- 1 root root 453 25 gen 18:30 zarafa-spooler -rw-r--r-- 1 root root 212 25 gen 18:45 zarafa-ssm
Per ogni file, verificate anche che la voce:
NOMESERVIZIO_ENABLED=yes
sia effettivamente settata su yes
Il server SMTP
Arrivati a questo punto ci ritroviamo con un server groupware perfettamente funzionante, ma che ancora non sa come inviare e da chi ricevere email. Abbiamo perciò bisogno di installare e configurare un server SMTP.
Un po' di terminologia
Iniziamo con il chiarire alcuni termini legati all'installazione di un server di posta elettronica:
- MUA (Mail User Agent): il MUA è il programma che un utente utilizza per leggere la propria posta elettronica. Alcuni esempi: Microsoft Outlook, Evolution. Diversi protocolli possono essere utilizzati dal MUA; i più comuni sono Pop3 e Imap.
- MTA (Mail Transfert Agent): è il programma che si occupa di spedire le email da un server all'altro. Il protocollo utilizzato è SMTP. Alcuni MTA installabili in Debian sono: postfix, sendmail, qmail, exim4. In questa guida ci concentreremo sul server postfix.
- MDA (Mail Delivery Agent): è il programma che riceve le email dal MTA e le smista nelle caselle postali dei vari utenti. In questa guida prenderemo in considerazione fetchmail.
Schema di funzionamento
Lo schema di funzionamento del nostro sistema groupware può essere riassunto così:
- Zarafa: fornisce un MUA via web interface e un sistema groupware
- Zarafa-spooler: fornisce un gateway verso il server SMTP installato sul server e ci permetterà di inviare la posta all'interno e all'esterno
- Postfix: sarà il nostro server SMTP per la posta della nostra intranet e per la posta esterna
- Fetchmail: ci permetterà di recuperare la posta che ci viene spedita su alcuni account POP esterni e di integrarla nel nostro sistema, smistandola ai vari utenti di Zarafa
Invio di email da Zarafa
Per inviare mail dal server Zarafa deve essere in funzione il servizio zarafa-spooler
. La configurazione del servizio viene fatta attraverso il file /etc/zarafa/spooler.cfg
. L'unica modifica richiesta è alla voce:
# Outgoing mailserver name or IP address smtp_server = localhost # Se state gestendo solo caselle email esterne # dovete inserire il server SMTP del vostro provider. # Se intendete utilizzare anche caselle email locali # impostate il questo campo l'indirizzo IP del server SMTP # della vostra rete interna oppure scrivete localhost
Installazione di Postfix
Ora è il momento di installare un server SMTP sul nostro server, in modo da poter inviare email nella nostra intranet e all'esterno.
# apt-get update # apt-get install postfix
Poiché useremo un'autenticazione basata su OpenLDAP è necessario installare anche il pacchetto:
# apt-get install postfix-ldap
per permettere a Postfix di interpretare le istruzioni ldap
all'interno del proprio file di configurazione.
Riceverete un avviso da apt, che vi dice che saranno rimossi i pacchetti relativi a exim4, il server SMTP installato di default da Debian. Confermate e procedete con l'installazione. Durante l'installazione di Postfix vi verrà chiesto che tipo di configurazione di server SMTP intendete creare: scegliete nessuna configurazione, perché creeremo un file di configurazione nostro da zero.
Se tutto è andato a buon fine siamo pronti per creare il file di configurazione principale di Postfix:
# cd /etc/postfix # touch main.cf # chmod 600 main.cf # nano main.cf
Il contenuto del file deve essere il seguente:
/etc/postfix/main.cf
#Impostazioni sulle directory del programma command_directory = /usr/sbin #Utente proprietario delle mail mail_owner = postfix #Gruppo proprietario setgid_group = postdrop #Coda e deposito email queue_directory = /var/spool/postfix mail_spool_directory = /var/spool/mail #Il mio host myhostname = mailserver.dominio.local #Il mio dominio mydomain = dominio.local myorigin = $mydomain #Domini che postfix considererà locali, per i quali smisterà # la posta localmente mydestination = $myhostname, localhost.$mydomain $mydomain # Maschero la visualizzazione dei nomi host per la rete interna masquerade_domains = $mydomain #Se un dominio non è locale, postfix delegherà il compito a tale relay #per l’invio della posta relayhost = out.virgilio.it #Networks abilitati. Impostate gli IP della vostra rete mynetworks_style = subnet mynetworks = 127.0.0.0/8 10.0.0.0/24 # Configuro le mailbox mailbox_command = mailbox_size_limit = 0 # Definisco gli alias alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #Interfacce abilitate inet_interfaces = all inet_protocols = ipv4 # Disabilitiamo il comando verify per la verifica dell’esistenza degli utenti disable_vrfy_command = yes # Dimensione massima dei messaggi da accettare (in byte) message_size_limit = 20480000 # Tempo di attesa in caso di errore smtp_error_sleep_time = 1s #Banner per la connessione telenet (piccolo vezzo grafico) smtpd_banner = $myhostname ESMTP $mail_name (Debian GNU/Linux) ##################################################### # Configurazione di Postfix per Zarafa # # ------------------------------------------------- # # Eliminare questo blocco per utilizzare una # # configurazione standard di Postfix. # ##################################################### local_recipient_maps = $alias_maps alias_maps = hash:/etc/aliases ldap:ldapsrc mailbox_transport = zarafa: zarafa_destination_recipient_limit = 1 virtual_alias_maps = ldap:ldapsrc ldapsrc_server_host = 192.168.0.1 ldapsrc_search_base = ou=Users,dc=dominio,dc=local ldapsrc_query_filter = (|(mail=%s)(mailAlternateAddress=%s)) ldapsrc_bind_dn = cn=admin,dc=dominio,dc=local ldapsrc_bind_pw = password_admin_di_LDAP ldapsrc_version = 3 ldapsrc_result_attribute = uid ################################################# # Fine del blocco per l'integrazione con Zarafa # ################################################# # Alcune regole antispam smtpd_recipient_restrictions = reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, reject_unauth_destination, reject_rbl_client zombie.dnsbl.sorbs.net, reject_rbl_client relays.ordb.org, reject_rbl_client opm.blitzed.org, reject_rbl_client list.dsbl.org, reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, permit
Ovviamente dovrete modificare le voci relative al nome del vostro dominio interno, al nome del server di posta del vostro provider e gli indirizzi IP della vostra rete.
Modificate adesso il file /etc/postfix/master.cfg
, aggiungendo alla fine del file la riga:
zarafa unix - n n - 10 pipe user=vmail argv=/usr/bin/zarafa-dagent ${user}
L'utente vmail
deve essere un utente locale unix; perciò:
# adduser vmail
Di default solo l'utente root può smistare la posta a Zarafa-Server. Poiché zarafa-dagent gira con i permessi dell'utente vmail, è necessario aggiungere questo utente nel file /etc/zarafa/server.cfg
. Cambiate la linea:
local_admin_users root
con:
local_admin_users = root vmail
Se avete la necessità di forwardare le email destinate ai vostri utenti locali, potete agire sul file /etc/aliases
.
Innanzitutto bisogna aggiungere la mappa degli alias a Postfix col comando:
# postconf -e "alias_maps = hash:/etc/aliases"
Fatto questo, potete aprire il file e aggiungere nuovi alias come i seguenti:
root: ferdy
Potete forwardare le mail di sistema ad un indirizzo esterno:
ferdy: myemail@example.com
e potete anche continuare a tenerne una copia in locale:
ferdy: ferdy myemail@example.com
A questo punto basta salvare la nuova configurazione:
# newaliases # /etc/init.d/postfix reload
Siamo pronti per inviare la nostra prima mail. A questo scopo ci connettiamo via telnet alla porta 25 dove è in ascolto Postfix:
# telnet localhost 25
Dovremmo ottenere come risposta:
Trying 127.0.0.1... Connected to mailserver.dominio.local. Escape character is '^]'. 220 mailserver.dominio.local ESMTP Postfix (Debian GNU/Linux)
Ora è tempo di spedire una mail a noi stessi. Dopo ogni riga digitate invio.
mail from:<io@mioindirizzo1.com> rcpt to:<io@mioindirizzo2.com> data To: io@mioindirizzo2.com From: io@mioindirizzo1.com Subject: Prova invio mail Prova di invio tramite Debian Postfix
Terminate la spedizione della mail battendo INVIO seguito da un punto (.), seguito ancora da INVIO.
.
Infine digitate:
quit
per chiudere la connessione telnet con Postfix.
Controllate la posta: dovrebbe esservi arrivata una mail!
Una cosa da tenere presente è che la configurazione di Postfix presa in esame ci permette di configurare un server di posta interno per la sola nostra intranet; per ogni email avente come destinatario un indirizzo esterno postfix si appoggerà al server di posta SMTP del nostro provider. Questa configurazione ci libera dal compito di mantenere un server SMTP accessibile da internet, con tutti i rischi di spammer connessi.
Amministrazione di Postfix
Postfix fornisce due utili tool per poter amministrare la sua coda: postqueue
e postsuper
.
Il primo comando serve per la normale gestione della coda, il secondo permette anche di cancellare mail all'interno nella coda.
- Per vedere tutta la coda di posta presente sul server:
# postqueue -p
- Per il flush della coda di posta:
# postqueue -f
- Per cancellare tutte le mail in coda:
# postsuper -d ALL
- Cancella dalla coda una specifica mail (queue_id può essere recuperato con il comando postqueue -p):
# postsuper -d queue_id
- Per bloccare tutte le mail in coda:
# postsuper -h ALL
- Bloccare una specifica mail in coda (queue_id può essere recuperato con il comando postqueue -p):
# postsuper -h queue_id
- Per riattivare tutte le mail bloccate in coda:
# postsuper -H ALL
- Riattiva una specifica mail bloccata in coda (queue_id può essere recuperato con il comando postqueue -p):
# postsuper -H queue_id
Ricezione e smistamento della posta in arrivo
La posta locale e l'invio della posta verso destinatari esterni alla nostra rete LAN dovrebbero già funzionare. Per verificare che tutto vada per il verso giusto aprite il vostro browser su:
http://indirizzo.ip.server.zarafa/webaccess
fate login con le vostre credenziali OpenLDAP e provate a:
- inviare una email al vostro stesso utente locale
- inviare una mail ad un account esterno (gmail, yahoo o altro)
In entrambi i casi dovreste ricevere posta. Per il vostro utente locale potete leggerla direttamente da dentro il webaccess di Zarafa; per l'account esterno collegatevi via webmail.
Nel caso in cui la posta spedita vi ritorni indietro, controllate il file di log /var/log/zarafa/spooler.log
. Se trovate delle righe come queste:
Sun Feb 7 15:34:11 2010: [21609] Sending e-mail for user ferdy, subject: 'prova', size: 2386 Sun Feb 7 15:34:11 2010: [21609] No expeditor specified. Sun Feb 7 15:34:11 2010: [21609] E-mail for user ferdy could not be sent, notifying user
andate al paragrafo successivo di questa guida ( Modifica del campo From:) e applicate il suggerimento descritto.
Non resta adesso che configurare la ricezione e lo smistamento della posta elettronica, prendendola dagli account di posta dei nostri provider e smistandola ai nostri utenti locali.
Per fare questo utilizzeremo il programma fetchmail:
# apt-get install fetchmail
Dato che stiamo lavorando su un server e vogliamo che le operazioni di configurazione siano trasparenti agli utenti finali, imposteremo un singolo file di configurazione: /etc/fetchmailrc
:
# touch /etc/fetchmailrc # chown fetchmail /etc/fetchmailrc # chmod 600 /etc/fetchmailrc
Il file di configurazione deve avere un contenuto simile al seguente:
########################################################### # I M P O S T A Z I O N I: legenda # -------------------------------- # poll = imposta il tempo di attesa di connessione # proto = tipo di protocollo da usare # authenticate = tipo di autenticazione # user = nome utente per autenticazione # password = password per autenticazione # mda = mail delivery agent al quale passare la posta # is user here options = utente al quale destinare la posta # # OPZIONI: legenda # ---------------- # keep = non cancellare i messaggi sul server # fetchall = scaricare anche i messaggi vecchi ############################################################ ###################################### # INIZIO CONFIGURAZIONE DI FETCHMAIL # ###################################### # Imposto il demone per il controllo della posta ogni 5 minuti set daemon 300 # Utente a cui va a finire la posta se non ce ne sono altri disponibili set postmaster "discarica@gmail.com" # Configuro gli account da scaricare # ACCOUNT TIN.IT poll box.tin.it timeout 60 proto POP3 authenticate password user "pinco@tin.it" password "xxxxxxx" mda "/usr/bin/zarafa-dagent pinco_zarafa" # keep # ACCOUNT GMAIL / Yahoo Mail poll pop.gmail.com timeout 60 proto POP3 port 995 user "pinco@gmail.com" password "xxxxxxx" mda "/usr/bin/zarafa-dagent pinco_zarafa" options keep flush no rewrite stripcr ssl
dove pinco_zarafa
è l'utente LDAP al quale vogliamo smistare la posta recuperata da fetchmail.
Per permettere a fetchmail di funzionare come demone bisogna inoltre cambiare, dentro il fle /etc/default/fetchmail
il valore della variabile:
START_DAEMON=no
in:
START_DAEMON=yes
Affinché fetchmail sia in grado di reindirizzare le mail al server Zarafa, dobbiamo aggiungere l'utente con i cui privilegi gira fetchmail al gruppo di utenti amministratori di Zarafa. Perciò aprite il file /etc/zarafa/server.cfg
e cambiate la linea:
local_admin_users root vmail
con:
local_admin_users = root vmail fetchmail
Modifica del campo From:
Con la configurazione attuale, nel campo From:
delle nostre email comparirà l'indirizzo interno nome.utente@dominio.local
, ma in questo modo chiunque al di fuori della nostra intranet provi a risponderci riceverà un errore di utente sconosciuto. Per modificare questo comportamento la soluzione più comoda è collegarsi al nostro database OpenLDAP tramite la GUI phpLDAPadmin, ricercare l'utente e effettuare le seguenti modifiche:
- aggiungere un nuovo attributo (Add New Attribute)
- aggiungere un attributo
Mail
- attribuire come valore dell'attributo Mail l'indirizzo email da utilizzare
- cliccate su
Save Changes
in fondo alla pagina
Sempre in questo campo, prima dell'indirizzo email comparirà anche il nome utente del mittente; spesso però vogliamo che il destinatario della nostra email veda una dicitura diversa. Ad esempio il nostro indirizzo aziendale è n.cognome@dominio.local
, ma vogliamo che come indicazione del mittente appaia Nome Cognome
e non n.cognome
. Per effettuare questa modifica collegatevi al database OpenLDAP tramite la GUI phpLDAPadmin, ricercate l'utente da modificare e cambiate l'attributo cn
da n.cognome
a Nome Cognome
.
Configurazione di Microsoft Outlook
Arrivati a questo punto è possibile utilizzare Microsoft Outlook per collegarci al nostro server Zarafa.
L'unico prerequisito è che sul nostro PC sia installata una versione di Outlook pari a Outlook 2000 o successivo.
Installazione del client Zarafa
Si scompatti il file tar.gz contenente la versione di Zarafa che abbiamo scaricato, e ci si porti nella cartella win32
. Ora si clicchi due volte sul file zarafaclient.msi
per installare il connettore Outlook.
Aggiornamento automatico del client Zarafa
Se volete che il client Zarafa per Outlook si aggiorni automaticamente, agite come segue:
- aprite il file
/etc/zarafa/server.cfg
e modificate come segue le direttive:
client_update_enabled = yes client_update_path = /var/lib/zarafa/client
- scaricate dal sito di Zarafa la versione più aggiornata del connettore Zarafa Client (ad es. zarafaclient-6.20.2-12345.msi) e, senza cambiare nome al file spostatelo nella directory indicata al passaggio precedente
- infine installate su ogni client una versione di zarafaclient pari almeno alla 6.30.2 e scegliete di installare anche il servizio Auto Updater.
- da questo momento i vostri client si aggiorneranno da soli
Configurazione di Outlook
Outlook XP/2003
- Creazione di un nuovo profilo email:
- Andare su Pannello di Controllo > Posta > Profili
- Cliccare su Aggiungi... e immettere un nome per il nuovo profilo (es: Zarafa)
- Cliccare su OK per terminare
- Aggiungere un server Zarafa al profilo creato
- Scegliere Crea un nuovo account di posta e cliccare su Successivo
- Scegliere l'ultima opzione (Impostazioni del Server aggiuntive) e cliccare su Successivo
- Scegliere Zarafa Server e cliccare su Successivo
- Si aprirà una finestra, nella quale dovrete indicare:
- l'indirizzo IP del server Zarafa
- la porta di comunicazione (236)
- il nome utente LDAP e la relativa password
- Scegliere il tipo di connessione che Outlook dovrà stabilire con il server Zarafa. Per una spiegazione dettagliata dei tipi di connessione vi rimando al paragrafo relativo, più sotto
- Scegliere OK per chiudere le finestre
Outlook 2000
- Creazione di un nuovo profilo email:
- Andare su Pannello di Controllo > Posta
- Cliccare su Aggiungi profili... e scegliere Configura i servizi manualmente. Cliccare Successivo
- Scegliere un nome per il profilo, per esempio “Zarafa” e cliccare Successivo
- Cliccare su Aggiungi... > Zarafa Server > OK
- Si aprirà una finestra, nella quale dovrete indicare:
- l'indirizzo IP del server Zarafa
- la porta di comunicazione (236)
- il nome utente LDAP e la relativa password
- Ora cliccare Aggiungi.. > Rubrica Outlook > OK
- Scegliere OK per chiudere le finestre
Outlook 2007/2010
- Andare nel Pannello di Controllo > Posta > Mostra Profili
- Cliccare su Aggiungi ... Scegliere un nome per il profilo, per esempio “Zarafa” e cliccare OK
- Scegliere Configura i servizi manualmente e Successivo
- Cliccare su Aggiungi... > Zarafa Server > Successivo
- Si aprirà una finestra, nella quale dovrete indicare:
- l'indirizzo IP del server Zarafa
- la porta di comunicazione (236)
- il nome utente LDAP e la relativa password
- Ora cliccare Aggiungi.. > Rubrica Outlook > OK
- Cliccare OK e poi su Fine per finalizzare il profilo.
Tipi di connessione Outlook
Online
L'opzione Online funziona come le precedenti funzioni zarafa. Quando si ha disponibile una connessione al server, si può inizializzare Outlook. Quando la connessione di rete non è disponibile non è possibile accedere alle e-mail, all'agenda e ai contatti.
Controllo all'avvio
Con l'opzione Autodetect Offline/Online, Outlook controlla all'avvio se il server è raggiungibile. Quando Outlook ha una connessione al server Zarafa tutti gli oggetti verranno sincronizzati nella memoria offline. Quando la connessione di rete non è disponibile, Outlook non passerà automaticamente alla memoria offline. È necessario riavviare Outlook per passare alla memoria offline. Quando si avvia Outlook e non è disponibile una connessione, apparirà un pop-up che chiede se si desidera lavorare offline.
Modalità Cache Zarafa
Il terzo tipo di connessione è la Modalità Cache Zarafa. Questa funzionalità è simile alla modalità cache di MS Exchange. Se si seleziona questa opzione, si lavorerà sempre sulla memoria offline. Quando si ha una connessione di rete disponibile, Outlook sincronizzerà gli oggetti creati, cancellati o spostati col server e le e-mail ricevute sul server verranno sincronizzate con la memoria offline. La prima volta che si configura il profilo Outlook è necessario avere una connessione col server Zarafa. Dopo che il profilo è stato creato e si avvia Outlook, tutte le cartelle e gli oggetti verranno sincronizzati.
Qual'è il tipo di connessione migliore da utilizzare?
- Utente che lavora sempre nello stesso PC in ufficio: Online
- Utente che utilizza profili di roaming e effettua l'accesso da diversi PC in ufficio: Online
- Utente che lavora su un PC remoto da un sottodipartimento e utilizza una connessione internet con banda limitata: Modalità Cache Zarafa
- Utente con computer portatile che per la maggior parte del tempo lavora in ufficio: Autodetect offline / online
- Utente con computer portatile che è sempre fuori ufficio: Modalità Cache Zarafa
- Utente che lavora su un Terminal Server: Online
Invio di email come diverso utente
È possibile scegliere di inviare una email impersonificando un altro utente; il destinatario della email la vedrà recapitata come se a spedirgliela fosse stato l'utente che desideriamo impersonificare. Per abilitare questa opzione, dato che abbiamo già modificato i file di configurazione di Zarafa, è sufficiente:
- aprire Outlook e creare un nuovo messaggio di posta elettronica
- (Outlook 2000/XP): dal menu Visualizza spuntare le voci Da: e Ccn:
- (Outlook 2003):
- cliccare sulla linguetta di fianco alla voce Opzioni...
- spuntare le voci Ccn: e Da:
Personalizzazione della Web Interface
Se avete la necessità di personalizzare l'aspetto dell'interfaccia web di Zarafa, ad esempio aggiungendo un logo aziendale, non dovete far altro che recuperare dalla directory /var/www/webaccess/client/layout/img
i seguenti file: login.jpg
e zarafa_top_logo.gif
. Modificateli con Gimp e rimetteteli al loro posto, verificando che abbiano i permessi:
-rw-r--r-- root root
Configurazione di Thunderbird / Icedove
Per configurare Thunderbird in modo che acceda al server Imap installato automaticamente con Zarafa bisogna seguire alcuni veloci passaggi:
- Andare in File => Nuovo => Account
- Scegliere "Account di posta"
- Inserire il nome che si desidera venga visualizzato dal destinatario e l'indirizzo di posta configurato su Zarafa
- Scegliere il server IMAP e indicare l'indirizzo IP del server Zarafa. Cliccare Avanti
- Indicare il nome utente così come impostato in Zarafa. Cliccare Avanti
- Indicare un nome per l'account (es: Zarafa IMAP Server). Cliccare Avanti e poi Fine.
Aggiornamento di Zarafa
Prima di aggiornare ad una nuova versione di Zarafa è buona norma fare un backup del database e dei file di configurazione.
Si proceda poi come segue in modo da assicurarsi che il database non sia più in uso:
# /etc/init.d/zarafa-server stop # /etc/init.d/zarafa-dagent stop # /etc/init.d/zarafa-spooler stop # /etc/init.d/zarafa-licensed stop # /etc/init.d/zarafa-monitor stop # /etc/init.d/zarafa-gateway stop # /etc/init.d/zarafa-ical stop # /etc/init.d/zarafa-indexer stop
Ora è possibile aggiornare i pacchetti di Zarafa nello stesso modo in cui sono stati installati:
# dpkg -i libvmime0_[version]_[arch].deb # dpkg -i libical0_[version]_[arch].deb # dpkg -i zarafa_[version]_[arch].deb # dpkg -i zarafa-webaccess_[version]_all.deb # dpkg -i zarafa-webaccess-mobile_[version]_all.deb # dpkg -i zarafa-webaccess-muc_[version]_all.deb # dpkg -i zarafa-licensed-[version]_all.deb # dpkg -i zarafa-indexer_[version]_all.deb
Sostituite [version] e [arch] con i valori corretti per il vostro sistema e, se vi viene chiesto, scegliete di mantenere i file di configurazione in uso dopo aver visualizzato le differenze.
Nota: Per la versione community non è necessario il pacchetto zarafa-licensed. Tuttavia, per avere sincronizzazione con Outlook attraverso il client Zarafa è necessario inizializzare il daemon zarafa-licensed.
Dopo che i nuovi pacchetti sono stati installati, controllare i file di configurazione che si trovano in /usr/share/zarafa
per vedere le nuove caratteristiche. Questo viene discusso nella sezione Cambiamenti importanti. Ci sono anche degli script perl e SQL che aggiornano il formato del database a nuove versioni. Alcuni script devono essere eseguiti affinché Zarafa possa rimanere in esecuzione,
altri script sono raccomandati per incrementare le prestazioni.
Controllate innanzitutto se lo schema OpenLDAP per Zarafa è cambiato (utilizzate diff per verificare i cambiamenti tra la versione contenuta nella documentazione di Zarafa e quella in uso, oppure controllate le dimensioni dei due file). Se lo schema è stato aggiornato, sostituitelo a quello in uso:
# /etc/init.d/slapd stop # mv /etc/ldap/schema/zarafa.schema /etc/ldap/schema/zarafa.schema.old # cp /usr/share/zarafa/zarafa.schema /etc/ldap/schema/zarafa.schema # /etc/init.d/slapd start
Può valer la pena anche controllare quali modifiche sono state apportate ai file di configurazione. La nuova versione dei file la trovate sempre sotto /etc/zarafa
. I file hanno il nome che finisce con .dpkg
. Una volta visualizzate le differenze potete scegliere se integrare le novità all'interno della vostra configurazione di Zarafa.
Dopo aver controllato le ulteriori nuove opzioni di configurazione, è possibile inizializzare nuovamente i servizi:
# /etc/init.d/zarafa-server start # /etc/init.d/zarafa-spooler start # /etc/init.d/zarafa-licensed start # /etc/init.d/zarafa-monitor start # /etc/init.d/zarafa-gateway start # /etc/init.d/zarafa-ical start # /etc/init.d/zarafa-dagent start # /etc/init.d/zarafa-indexer start
Poiché l'upgrade ha modificato l'estensione PHP di zarafa sarà necessario riavviare anche il webserver:
# /etc/init.d/apache2 restart
Infine se nella vostra rete ci sono dei client Windows che utilizzano Outlook, scompattate il pacchetto tar.gz di Zarafa, andate nella directory win32 e lanciate l'aggiornamento di Zarafa Client Connector (zarafaclient-[versione].exe).
Se avete modificato il layout dell'interfaccia web di Zarafa, questo è il momento di ricaricare le vostre immagini, dato che l'aggiornamento le ha impietosamente sovrascritte.
Backup del database di Zarafa
Il database di Zarafa è un normale database MySQL. Per effettuarne il backup si segua questa guida: Backup di MySQL tramite script
Cancellazione automatica della posta eliminata
Lo script seguente permette la rimozione automarica dei messaggi più vecchi di X giorni presenti nelle cartelle Junk E-mail e Deleted Items.
Scarichiamo prima di tutto lo script:
# wget http://debian.easyteam.org/files/zarafa/zarafacleanup.zip
e installiamo le sue dipendenze:
# apt-get install php5-cli
Quindi scompattiamolo e spostiamo il suo contenuto:
# unzip zarafacleanup.zip # mv cleanup /usr/local/bin # mv spam.php /usr/local/bin # mv delete.php /usr/local/bin
Impostiamo ora nei file spam.php
e deleted.php
la variabile $daysBeforeDeleted
al valore che desideriamo e rendiamo infine eseguibile lo script:
# chmod 700 /usr/local/bin/cleanup
Possiamo ora impostare un cron
per programmare lo svuotamento automatico della posta eliminata e della posta indesiderata.
To Do
Ancora da fare:
- configurazione di Windows Mobile
Guida scritta da: Ferdybassi | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |