<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> 

<article>

<!-- Header -->

 <artheader>

  <!-- title of HOWTO, include the word HOWTO -->

  <title>Postfix-Cyrus-Web-cyradm-HOWTO</title>

  <author>
     <firstname>Luc</firstname>
     <surname>de Louw</surname>
     <affiliation>
        <address>
           <email>luc at delouw.ch</email>
        </address>
     </affiliation>
  </author>

<revhistory>

<revision>
        <revnumber>1.2.4</revnumber>
        <date>2003-11-30</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Input from English proofreading, minor correction and enhancements from user-input, updated software mentioned in the HOWTO
        </revremark>
</revision>


<revision>
        <revnumber>1.2.3</revnumber>
        <date>2003-03-24</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
        	Some minor correction and enhancements from user-input, updated software mentioned in the HOWTO
        </revremark>
</revision>

<revision>
        <revnumber>1.2.2</revnumber>
        <date>2003-02-14</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
        	Lots of grammar and typos fixed. Some corrections to the pam_mysql Makefile
        </revremark>
</revision>


<revision>
        <revnumber>1.2.1</revnumber>
        <date>2003-02-12</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
        	Non-official test-release: Added lots of fixes and updates. Added OpenSSL and more pam related stuff.
        </revremark>
</revision>


<revision>
        <revnumber>1.2.0</revnumber>
        <date>2002-10-16</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
        	Added lot of user requests, updated the software mentioned in the HOWTO
        </revremark>
</revision>


<revision>
        <revnumber>1.1.7</revnumber>
        <date>2002-10-15</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Added Michael Muenz' hints for SMTP AUTH, corrected ca-cert related mistake, improved SGML code (more metadata), updated the software mentioned in the document.
        </revremark>
</revision>

<revision>
        <revnumber>1.1.6</revnumber>
        <date>2002-06-14</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Added sasl_mech_list: PLAIN to imapd.conf, added web-cyradm Mailinglist, added more
		to web-cyradm
        </revremark>
</revision>


<revision>
        <revnumber>1.1.5</revnumber>
        <date>2002-06-11</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Added new SQL query to initialize web-cyradm
		to have full data integrity in the MySQL Database, mysql-mydestination.cf reported to be operational as
		expected.
        </revremark>
</revision>

<revision>
        <revnumber>1.1.4</revnumber>
        <date>2002-05-15</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Added description what is needed in /etc/services
		Another fix for pam_mysql compile, updated software versions.
        </revremark>
</revision>


<revision>
        <revnumber>1.1.3</revnumber>
        <date>2002-05-08</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Added more description for web-cyradm, fix for wrong path of the saslauthdb-socket, Fix for
		wrong place of com_err.h, protection of the TLS/SSL private key.
        </revremark>
</revision>

<revision>
        <revnumber>1.1.2</revnumber>
        <date>2002-04-29</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Added description for Redhat users how to install the init scripts.
        </revremark>
</revision>

<revision>
        <revnumber>1.1.1</revnumber>
        <date>2002-04-29</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Fixed bug in configuring cyrus-IMAP (disabled unused kerberos authentication)
        </revremark>
</revision>

<revision>
        <revnumber>1.1.0</revnumber>
        <date>2002-04-28</date>
        <authorinitials>ldl</authorinitials>
        <revremark>
                Initial support for building cyrus from source, dropped binary installation
		for Cyrus, because configuration has changed with Release 2.1.x
        </revremark>
</revision>


	<revision>
	<revnumber>1.0.2</revnumber>
	<date>2002-04-25</date>
	<authorinitials>ldl</authorinitials>
	<revremark>
		Added basic description for sieve and correct sender handling, minor fixes to db related 
		stuff, Added mysql-lookup for »mydestination« , fixed bug for building postfix 
		with mysql support.
	</revremark>
</revision>

<revision>
	<revnumber>1.0.1</revnumber>
	<date>2002-04-07</date>
	<authorinitials>ldl</authorinitials>
	<revremark>
		Added an important fix for compiling pam_mysql
	</revremark>
</revision>

<revision>
	<revnumber>1.0.0</revnumber>
	<date>2002-04-07</date>
	<authorinitials>ldl</authorinitials>
	<revremark>
		Initial Release
	</revremark>
</revision>

      <!-- Additional (*earlier*) revision histories go here -->
   </revhistory>

  <abstract>
    <indexterm>
      <primary>Postfix and Cyrus</primary>
    </indexterm>

    <para>
	Questo documento ti guiderà attraverso l'installazione di Postfix, un mail transportation agent (MTA), 
	ed il server IMAP Cyrus. L'obiettivo è l'implementazione di un mailserver altamente performante che utilizzi un'applicativo web (Web-Cyradmin)
      per amministrare gli utenti. Tutti i dati, utenti virtuali, aliases, ecc., sono immagazzinati inun database mysql.
    </para>

  </abstract>

 </artheader>


<!-- Section1: intro -->

 <sect1 id="intro">
   <title>Introduzione</title>

   <para>
   La parte relativa a Cyrus è valida solo per Cyrus-IMAP 2.1.x e Cyrus-SASL 2.1.x. Se hai intenzione di utilizzareCyrus-IMAP 2.0.x
   consulta la versione obsoleta 1.0.x di questo HOWTO.</para>
 
  <para>
   Io raccomando fortemente l'upgrade a Cyrus Versione 2.1.x. In questo modo avrai una migliore
 possibilità di ottenere un valido supporto dalla comunità di utilizzatori.
  </para>

   <indexterm>
    <primary>disk!introduction</primary>
   </indexterm>

   <sect2>
	<title>Contributi e Contatti</title>
	<para>Innanzitutto vorrei ringraziare tutte quelle persone che inviano domande e suggerimenti che rendono 
possibili ulteriori sviluppi di questo documento. Ciò significa che vale la pena condividere la conoscenza.
	Io voglio incoraggiarvi a mandarmi altri suggerimenti, basta scrivermi una email<email>luc at delouw.ch</email>
	</para>
   </sect2>

   <sect2>
	<title>Perchè ho scritto questo documento</title>

	<para>
	Ci sono diversi approcci su come implementare different mailsystem. Molti documenti disponibili riguardano Sendmail, 
	procmail, WU-IMAPd e amici. Questi pacchetti sono molto validi ma, sfortunatamente molto ostici nell'amministrazione
	 degli utenti.
	</para>

	<para>Per molto tempo ho terstato diversi MTA come qmail, postfix ed exim collegati a diversi IMAP/POP-servers come
	Cyrus, vpopmail, Courier IMAP e altri.</para>
	
	<para>Alla fine, dal mio punto di vista, l'accoppiata Postfix/Cyrus sembra essere la soluzione più flessibile 
	e più performante.</para>
	
	<para>Tutte queste combinazioni di software hanno una cosa in comune: la scarsa documentazione disponibile di come 
	questi pacchetti interagiscono l'un l'altro.
	Per installare questi software, molto sforzo è stato speso per mettere insieme tutte le informazioni 
	necessarie per far girare il software.</para>
	
    </sect2>


<!-- Section2: copyright -->

  <sect2 id="copyright">
   <title>Informazioni sul Copyright</title>

   <para>
    This document is copyrighted (c) 2002, 2003 Luc de Louw and is
    distributed under the terms of the Linux Documentation Project
    (LDP) license, stated below. 
   </para>

   <para>
    Unless otherwise stated, Linux HOWTO documents are
    copyrighted by their respective authors. Linux HOWTO documents may
    be reproduced and distributed in whole or in part, in any medium
    physical or electronic, as long as this copyright notice is
    retained on all copies. Commercial redistribution is allowed and
    encouraged; however, the author would like to be notified of any
    such distributions.
   </para>

   <para>
    All translations, derivative works, or aggregate works
    incorporating any Linux HOWTO documents must be covered under this
    copyright notice. That is, you may not produce a derivative work
    from a HOWTO and impose additional restrictions on its
    distribution. Exceptions to these rules may be granted under
    certain conditions; please contact the Linux HOWTO coordinator at
    the address given below.
   </para>

   <para>
    In short, we wish to promote dissemination of this
    information through as many channels as possible. However, we do
    wish to retain copyright on the HOWTO documents, and would like to
    be notified of any plans to redistribute the HOWTOs.
   </para>

   <para>
    If you have any questions, please contact 
    <email>linux-howto at metalab.unc.edu</email>
   </para>
  </sect2>

<!-- Section2: disclaimer -->

  <sect2 id="disclaimer">
   <title>Disclaimer</title>

   <para>
    No liability for the contents of this documents can be accepted.
    Use the concepts, examples and other content at your own risk.
    As this is a new edition of this document, there may be errors
    and inaccuracies, that may of course be damaging to your system.
    Proceed with caution, and although this is highly unlikely,
    the author(s) do not take any responsibility for that.
   </para>

   <para>
    All copyrights are held by their by their respective owners, unless
    specifically noted otherwise.  Use of a term in this document
    should not be regarded as affecting the validity of any trademark
    or service mark.
   </para>

   <para>
    Naming of particular products or brands should not be seen 
    as endorsements.
   </para>

   <para>
    You are strongly recommended to take a backup of your system 
    before major installation and backups at regular intervals.
   </para>
  </sect2>

<!-- Section2: newversions-->

  <sect2 id="newversions">
   <title>Nuove versioni</title>

    <indexterm>
     <primary>(your index root)!news on</primary>
    </indexterm>

   <para>Nuove versioni di questo documento sono annunciate su freshmeat</para>

   <para>
    La più recente versione di questo documento può essere ottenuta da 
    <ulink url="http://www.delouw.ch/linux">http://www.delouw.ch/linux</ulink> 
   </para>

   <para>
   <itemizedlist>
    <listitem>
     <para>
      <ulink url="http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/html/index.html">HTML</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
      <ulink url="http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO.ps">
	Postscript (ISO A4 format)</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
       <ulink URL="http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO.pdf">Acrobat PDF</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
       <ulink URL="http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO.sgml">SGML Source</ulink>.
     </para>
    </listitem>

    <listitem>
     <para>
      <ulink url="http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/Postfix-Cyrus-Web-cyradm-HOWTO.tar.gz">HTML gzipped tarball</ulink>.
     </para>
    </listitem>
   </itemizedlist>
   </para>

  </sect2>

<!-- Section2: credits -->

  <sect2 id="credits">
   <title>Credits</title>
<itemizedlist>
 <listitem>
	<para>
	Michael Muenz <email>m.muenz at maxonline.de</email> for his help with SMTP Authentication
	</para>
 </listitem>
 <listitem>
	<para>
	Ron Wheeler <email>rwheeler at artifact-software.com</email> for his help with editing for readability
	</para>
 </listitem>

 <listitem>
   <para>
    The nice people at <email> discuss at tldp.org</email> for
    supporting me in writing the HOWTOs.
   </para>
 </listitem>
</itemizedlist>

  </sect2>

<!-- Section2: feedback -->

  <sect2 id="feedback">
   <title>Feedback</title>

   <para>
    I Feedback sono sicuramente i benvenuti per questo documento. Senza le vostre pressioni o suggerimenti il documento non esisterebbe.
	 Inviate le vostre aggiunte, commenti o critiche al seguente indirizzo: <email>luc at delouw.ch</email>.
   </para>
  
   <para>
	Sia chiaro che non ho più intenzione di supportare Cyrus-IMAP 2.0.x in questo documento.
   </para>

   </sect2>

<!-- Section2: translations -->

  <sect2 id="translations">
   <title>Translations</title>

   <para>
     	Al momento è disponibile questa traduzione in italiano grazie al contributo di Roberto Capancioni <email>roberto at capancioni.com</email>. E' prevista una traduzine in tedesco e sarà 
	scritta da me il più presto possibile. 
   </para>

   <para>Traduzine in altre lingue sono sempre le benvenute. Se avete intenzione di tradurre questo 
documento traducete il sorgente SGML. Fatemi sapere se iniziate una taduzione così inserirò un link qui.
   </para>

   </sect2>

 </sect1>

<!-- Section1: intro: END -->


<!-- Section1: Technologies  -->

 <sect1 id="tech">
  <title>Technologies</title>



  <sect2 id="postfix">
   <title>Postfix l'MTA</title>
	<blockquote><attribution>www.postfix.org</attribution>
	<para>
        Postfix cerca di essere veloce, facile da amministrare e sicuro, mentre allo stesso tempo è abbastanza 
	compatibile con sendmail da non dover sostituire gli utenti esistenti. Così, se esternamente sembra essere sendmail, 
internamente è completamente differente.</para></blockquote>
	<para>
		<figure>
	        <title>Postfix - il diagramma</title>
      			<graphic FileRef="big-picture.png"></graphic>
     		</figure>
   	</para>

	<para>Non è impressionante? - Sembra molto più complicato di quanto sia effettivamente. Postfix è invece semplice da 
	configurare e gestire.</para>

	<para> A differenza di sendmail, postfix non è un unico programma monolitico ma un insieme di piccoli programmi, 
	ognuno con una specifica funzione. 
	      Non ho intenzione di entrare in dettaglio di ogni singolo programma.
	      Se sei interessato a come lavora Postfix, leggi la documentazione
	      <ulink url="http://www.postfix.org/docs.html">http://www.postfix.org/docs.html</ulink>
	</para>	

	<para>In questo documento troverete le informazioni sufficienti ad avere un sistema funzionante insieme
 ad altri componenti si un sistema completo di e-mail.</para>

  </sect2>

  <sect2 id="cyrus">
   <title>Cyrus IMAP</title>
	<para>Cyrus IMAP è sviluppato e mantenuto dalla Carnegie Mellon University.</para>

	<para>A differenza del package WU-IMAPd, Cyrus utilizza un suo sistema di immagazzinamento di mail degli utenti. 
	Ogni messaggio è immagazzinato in un suo proprio file.
	Il beneficio di utilizzare file separati è quello di migliorare il recupero poichè un solo messaggio è perso se 
	il file system si danneggia. I metadati, come lo stato di un messaggio (letto, ecc), sono immagazzinati in un database.
	In più, i messaggi sono indicizzati per migliorare le performance di Cyrus, specialmente quando ci sono molti utenti e/o
	parecchie grandi emails.
	Non c'è niente di più veloce del server Cyrus-IMAP.</para>

	<para>Un'altra impoortante caratteristica è che non hai bisogno di un utemte locale per ogni account. Tutti gli
	utenti sono autenticati dal server IMAP. Questa è una grande soluzione quando hai un elevato numero di utenti.</para>

	<para>
	L'amministrazione degli utenti è fatta da speciali comandi IMAP. Questo ti permette  di usare sia un interfaccia 
	a caratteri che un interfaccia web. Questo metodo è più sicuro di un Interfaccia Web su
	<filename> /etc/passwd</filename>.</para>

	<para>Partendo da Cyrus 2.1, SASL-lib versione 2 è utilizzato per l'autenticazione. 
	Per il setup descritto in questo HOWTO, è utilizzata un'autenticazione a tre livelli.
	Cyrus autentica con saslauthdaemon che inoltra la richiesta a pam_mysql che finalmente cerca l'informazione 
	dell'utente in una tabella mysql.</para>

	<para>
		Da quando CMU ha cambiato la licenza di Cyrus, questo software sta venendo utilizzato da sempre più persone.</para>

  </sect2>

  <sect2 id="sasl">
   <title>Cyrus SASL</title>
	<para>SASL significa »Simple Authentication and Security Layer«. E' standardizzato da IETF (Internet 
	Engineering Taskforce). SASL è utililzzato da server di rete (in questo caso Cyrus-IMAP) per gestire le 
	richieste di autenticazionedei clients.</para>

	<para>Cyrus SASL è un software esteso e spesso non semplice da capire. Io ne ho appena la conoscenza necessaria
	 per scrivere questo HOWTO.</para>

  </sect2>

  <sect2 id="openssl">
   <title>OpenSSL</title>
	<para>OpenSSL è una libreria richiesta da SASL per la criptazione dello stream dei dati. E' usato da quasi
	 tutti i software opensource che hanno bisogno di criptazione.
	Quasi tutte le distribuzioni Un*x arrivano con OpenSSL preinstallato.
	Assicuratevi di installare l'appropriato devel-package. Se volete potete compilare da soli Openssl.
	Questo sarà necessario se dovete fixare un buco di sicurezza.
	</para>
  </sect2>

  <sect2 id="mysql">
   <title>Database MySQL</title>
        <para>MySQL è un database veloce, potente e molto semplice da usare .</para>
	
	<para>poiché Cyrus può autenticare gli utenti con pam, potete utilizzare pam_mysql come connettore al database degli 
	utenti immagazzinato in MYSQL. Questo vi permette di creare una buona interfaccia Web per i vostri utenti per cambiare
	 password,definire e cancellare aliases e altro.</para>
	
  </sect2>

  <sect2 id="pam-mysql">
  <title>pam_mysql</title>
	
	<para>pam significa "Pluggable Authentication module" e originariamente venne proposto da qualcuno alla Sun.
	Nel frattempo parecchi moduli sono stati sviluppati. Uno di essi è un interfaccia a MySQL</para>

	<para>Con pam_mysql immagazzini le password degli utenti in un database MySQL. In seguito, Postfix riesce a ricercare
	gli aliases da una tabella MYSQL. Alla fine, hai una base per tutte le operazioni amministrative fatte dal postmaster.
	</para>
	
	<para>E' possibile delegare alcune attività ad un gruppo di Powerusers. Per esempio, attività come creare account,
	modificare password e creare nuovi aliases può essere delegata ad un certo amministratore per un particolare dominio. 
	Alla fine, voi, come Sysadmin, avrete tempo da impiegare in attività più produttive o scrivere un HOWTO per il Linux 
	Documentation Project.</para>
  </sect2>	

  <sect2 id="web-cyradm">
   <title>Interfaccia Web Web-cyradm</title>
	<para>
                <figure>
                <title>Web-cyradm Amministrazione domini</title>
                        <graphic FileRef="home.png"></graphic>
                </figure>
        </para>

        <para>Web-cyradm è l'interfaccia web che vi permette di eseguire le attività amministrative richieste per
	mantenere il vostro mailsystem.
	Questa figura mostra la parte di amministrazione domini di Web-cyradm.</para>
	
       <para>Web-cyradm è scritto in PHP, il più sofisticato linguaggio preprocessore-html.
	   Se non avete un webserver con php installato dovreste riferirvi a
        <ulink url="http://www.delouw.ch/linux/apache.phtml">Apache-Compile-HOWTO</ulink>.
	  Questo documento descrive come metter su Apache con PHP e altri moduli.</para>


	<para>Web-cyradm è in pieno e attivo sviluppo grazie a persone da tutto il mondo. La lista delle caratteristiche
	cresce ad ogni release. Se volete contribuire a web-cyradm o avete una buona idea contattate tranquillamente la mailinglist
	<ulink url="http://www.web-cyradm.org">http://www.web-cyradm.org</ulink>
	</para>
	
	<para>
	Questa che segue è una lista parziale di caratteristiche:
	<itemizedlist>

	<listitem>
	<para>Amministrazione di domini virtuali</para>
	</listitem>

	<listitem>
	<para>Impostazione delle quote disco</para>
	</listitem>

	<listitem>
	<para>Creazione automatica di usenames sia con prefisso predefinito che con il nome del dominio</para>
	</listitem>

	<listitem>
	<para>Delega di attività come la creazione di nuovi utenti per i singoli domini a dei »Domain Masters« </para>
	</listitem>

	<listitem>
	<para>Mappatura di utenti-accounts su indirizzi email</para>
	</listitem>

	<listitem>
	<para>Inoltro di account su singoli aliases</para>
	</listitem>

	<listitem>
	<para>Funzioni di assenza temporanea per aliases</para>
	</listitem>
	
	<listitem>
	<para>Supporto per tabelle di trasporto SMTP </para>
	</listitem>

	<listitem>
	<para>Supporto per MySQL e PostgreSQL</para>
	</listitem>

	<listitem> 
	<para>supporto i18n (internazionalizzazione) (inclusi differenti charsets)</para>
	</listitem>

	<listitem> 
	<para>Traduzione in 18 lingue ed sta aumentando</para>
	</listitem>

	</itemizedlist>
	</para>
	
	<para>Web-cyradm supporta differenti ruoli dei suoi utenti. 
	Se avete intenzione di usarlo come frontend per i tuoi powerusers notate che vi possono essere dei problemi di sicurezza.
	Il sistema basato sui ruoli necessita di una revisione per migliorare la sicurezza.
	</para>

  </sect2>


 </sect1>

<!-- Section1: Technologies: END -->


<!-- Section1: Install -->

 <sect1 id="install">
  <title>Ottenere ed installare il software</title>

	<para>
	Parecchi del software necessario è già incluso nella tua distribuzione Linux, ad esempio SuSE include Cyrus, 
	da che mi ricordi già dalla 7.1.
	Dalla SuSE 8.1, cyrus-imap 2.1 and sasl2 sono inclusi e funzionano. E' comunque raccomandato compilare Cyrus da te.
	SuSE inoltre non include Postfix abilitato per MySQL.
	</para>

	<tip><title>Pacchetti obsoleti per Debian stable e testing</title>
	<para>Gli utenti Debian probabilmente vorranno installare i pacchetti forniti da Debian. Sfortunatamente Debian
	 stable (Woody) e testing (sarge) usano versioni obsolete delsoftware usato in questo HOWTO. Ho testato i rispettivi
	pacchetti dalla Debian unstable (sid) e funzionano. Notate che i manteiners di Debian sono molto conservatori. Il pacchetti
	 »postfix-mysql«, »libsasl2« and »cyrus21-imapd« sono stabili »stabili« anche se si trovano solo nell' »unstable« tree.
</para>
</tip>
	
<!-- Section2: Mysql -->

  <sect2 id="MySQL-install">
   <title>Ottenere ed installare MySQL</title>

	<sect3><title>Download</title>
		<para>
		Origine: <ulink url="http://www.mysql.com/downloads/">http://www.mysql.com/downloads/</ulink>
		</para>
   	</sect3>

	<sect3><title>Compilazione e installazione</title>
<screen>
cd /usr/local
tar -xvzf mysql-4.0.16.tar.gz
cd mysql-4.0.16

./configure \
--prefix=/usr/local/mysql \
--enable-assembler \
--with-innodb

make
make install

/usr/local/mysql/bin/mysql_install_db
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf
ldconfig

ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
</screen>

	<para>Per migliorare la sicurezza,aggiungete un utente mysql al vostro sistema ad es. »mysql«, quindi</para>
	
<screen>
chown -R mysql /usr/local/mysql/var
</screen>
	<para>Se volete far partire automaticamente MySQL al boot, copiate 
	<filename>/usr/local/mysql/share/mysql/mysql.server</filename> su <filename>/etc/init.d/</filename>
	 per SuSE, per Redhat esso è<filename>/etc/rc.d/init.d</filename> invece di <filename>/etc/init.d/</filename>. 
	In seguito dovrete aggiungere link simbolici su <filename>/etc/init.d/rc3.d</filename> 
	per SuSE e <filename>/etc/rc.d/rc3.d</filename> per Redhat.
	</para>

	<para>
	Il seguente esempio riguarda SuSE Linux ma può facilmente essere cambiato per Redhat o altre distribuzioni Linux
	o Unix commerciali.
	</para>
	
<screen>
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/
ln -s /etc/init.d/mysql.server /etc/init.d/rc3.d/S20mysql
ln -s /etc/init.d/mysql.server /etc/init.d/rc3.d/k08mysql
</screen>

	</sect3>
   </sect2>



  <sect2 id="berkeley-db">
  <title>Ottenere e installare Berkeley DB</title>

	<para>Berkeley DB è un requisito ber compilare Cyrus-SASL e Cyrus-IMAP. Alcuni sistemi lo propongono
	con versioni recenti ma senza gli header fil installati. Controlla i cd/DVD della tua distribuzione per vedere se 
	puoi installare gli header file del pacchetto. Normalmente questo pacchetto è chiamato bdb-devel.
	</para>
	<para>La versione presente in GNU/Debian Linux è superata, dovrai invece compilare la versione più recente. 
	Se hai già installato Berkely DB sulla tua Debian, disinstallalo per prevenire conflitti.
	</para>

	<para>E' anche molto importante che Cyrus-SASL e Cyrus-IMAP vengano compilati con la stessa versione di
	Berkely DB se no potreste avere dei problemi.</para>

<tip><title>Versioni Berkeley DB</title>
<para>
Io ho testato solo la versione 4.0.x di bdb. Fatemi sapere se funziona se usate versioni più nuove.
</para></tip>

  <sect3><title>Download Berkely DB</title>
	<para>
	Origin-Site: <ulink url="http://www.sleepycat.com/update/snapshot/db-4.0.14.tar.gz">
	http://www.sleepycat.com/update/snapshot/db-4.0.14.tar.gz</ulink>
	</para>
  </sect3>

  <sect3><title>Compilazione e Installazione di Berkeley DB</title>
	<para>
<screen>
cd dist

./configure --prefix=/usr/local/bdb

make
make install

echo /usr/local/bdb/lib >> /etc/ld.so.conf
ldconfig
</screen>

</sect3>
</sect2>

	

<sect2><title>Ottenere e Installare OpenSSL</title>

<sect3><title>Download OpenSSL</title>
<para>Origin-Site
<ulink url="http://www.openssl.org">http://www.openssl.org</ulink>
</para>

</sect3>

<sect3><title>Compilazione e Installazione </title>

<screen>
cd /usr/local
tar -xvzf openssl-0.9.7c.tar.gz

cd openssl-0.9.7c

./config shared

make
make test
make install

echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig
</screen>

<tip><title>Selezionate la vostra CPU per migliorare la velocità</title>
<para>
Di il Makefile genera codice per il processore i486. Potete cambiare questa impostazione modificando il
<filename>Makefile</filename> dopo aver lanciato il <command>config </command><option>shared</option>.
Cercate <option>-m486</option> e sostite ad es. con<option>-march=athlon</option>
</para></tip>

</sect2>


<!-- Section2: cyrus -->

  <sect2 id="cyrus-install">
  <title>Ottenere ed Installare Cyrus SASL and IMAP</title>

	<para>
	Compilare  Cyrus SASL and IMAP dai sorgenti non è un'attività semplice. Ci sono una serie di requisiti
	che devono essere soddisfatti, una serie di difficoltà legate alle autenticazioni da considerare.
	</para>

	
  <sect3><title>Download Cyrus SASL and Cyrus IMAP</title>
	<para>
	Origin-Site: <ulink url="ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.17.tar.gz">
	ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.17.tar.gz</ulink>
	</para>
	<para>Origin-Site: <ulink url="ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.1.16.tar.gz">
	ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.1.16.tar.gz</ulink>

	</para>

	</sect3>

	<sect3><title>Creare l'utente cyrus</title>
<para>In molti sistemi non c'è l'utente e il mailgroup cyrus di default. Cerca un UID libero, normalmente i demoni girano con UID 
minori di 100. Ad esempio io uso UID 96 perchè in SuSE c'è di default<filename>/etc/passwd</filename>.
</para>

<screen>
groupadd mail
useradd -u 96 -d /usr/cyrus -g mail cyrus
passwd cyrus
</screen>

	<sect3><title>Compilazione e Installazione Cyrus SASL</title>

<screen>
tar -xvzf cyrus-sasl-2.1.17.tar.gz
cd cyrus-sasl-2.1.17

./configure \
--enable-anon \
--enable-plain \
--enable-login \
--disable-krb4 \
--disable-otp \
--disable-cram \
--disable-digest \
--with-saslauthd=/var/run/saslauthd \
--with-pam=/lib/security \
--with-dblib=berkeley \
--with-bdb-libdir=/usr/local/bdb/lib \
--with-bdb-incdir=/usr/local/bdb/include \
--with-openssl=/usr/local/ssl \
--with-plugindir=/usr/local/lib/sasl2


make
make install

mkdir -p /var/run/saslauthd

cd saslauthd
make testsaslauthd
cp testsaslauthd /usr/local/bin

echo /usr/local/lib/sasl2 >> /etc/ld.so.conf
ldconfig
</screen>

<para>
La libreria  SASL è installata in <filename>/usr/local/lib/sasl2</filename> ma alcuni programmi si aspettano SASL in 
<filename>/usr/lib/sasl2</filename>. Quindi è una buona idea creare un link simbolico:
 <command>ln -s /usr/local/lib/sasl2 /usr/lib/sasl2</command>.
</para> 

</sect3>

<sect3><title>Compilare Cyrus-IMAP</title>

<screen>
tar -xvzf cyrus-imapd-2.1.16.tar.gz
cd cyrus-imapd-2.1.16

export CPPFLAGS="-I/usr/include/et" 

./configure \
--with-sasl=/usr/local/lib \
--with-perl \
--with-auth=unix \
--with-dbdir=/usr/local/bdb \
--with-bdb-libdir=/usr/local/bdb/lib \
--with-bdb-incdir=/usr/local/bdb/include \
--with-openssl=/usr/local/ssl \
--without-ucdsnmp \

make depend
make
make install
</screen>


</sect3>	

<sect3 id="startupscript"><title>Script per l'avvio automatico</title>

<para>
Se volete far partire il demone di Cyrus IMAP automaticamente al boot, avete bisogno di uno script di avvio. 
Inserite questo script in <filename>/etc/init.d/</filename>. Per Redhat, è in <filename>/etc/rc.d/init.d</filename> 
invece di<filename>/etc/init.d/</filename>.</para>

<screen>
#!/bin/bash
#
# Cyrus startup script

case "$1" in
    start)
        # Starting SASL saslauthdaemon
        /usr/local/sbin/saslauthd -c -a pam&

        # Starting Cyrus IMAP Server
        /usr/cyrus/bin/master &
        ;;

    stop)

        # Stopping SASL saslauthdaemon
        killall saslauthd

        # Stopping Cyrus IMAP Server
        killall /usr/cyrus/bin/master

        ;;

    *)
        echo "Usage: $0 {start|stop}"
        exit 1
        ;;

esac
</screen>

<para>Se avrò tempo, provvederò ad uno script più sofisticato, intanto questo funziona.</para>

<para>Ora create i link simbolici nelle directory dei runlevel (SuSE):</para>

<screen>
ln -s /etc/init.d/cyrus /etc/init.d/rc3.d/S20
ln -s /etc/init.d/cyrus /etc/init.d/rc3.d/K10
</screen>

<para>For Redhat:</para>

<screen>
ln -s /etc/rc.d/init.d/cyrus /etc/rc.d/rc3.d/S20cyrus
ln -s /etc/rc.d/init.d/cyrus /etc/rc.d/rc3.d/K10cyrus
</screen>

</sect3>


	
</sect2>

<!-- Section2: postfix -->

<sect2 id="postfix-install">
   <title>Ottenere e Installare Postfix</title>


        <sect3><title>Download</title>
                <para>
                Origin-Site: <ulink url="http://www.postfix.org/ftp-sites.html">http://www.postfix.org/ftp-sites.html</ulink>
                </para>

        </sect3>

        <sect3> <title>Creazione di uno User-ID (UID) e Group-ID (GID) per postfix</title>
        <para>
       Prima di compilare e installare postfix,assicuratevi di creare un utente e gruppo »postfix« and a »maildrop« 
	se già non esistono. Prima controllate i gruppi, potete farlo con <command>grep postfix /etc/group</command> e
		<command>grep maildrop /etc/group</command>
        </para>

        <para>
        Se non ci sono gruppi e utenti potete crearli. Cerca un UID e un GID liberi, nel seguente esempio io userò come UID 
	 e GID 33333 per Postfix e 33335 per maildrop. Questi ID's corrispondoni negli altri documenti.
        </para>

<screen>
groupadd -g 33333 postfix
groupadd -g 33335 maildrop

useradd -u 33333 -g 33333 -d /dev/null -s /bin/false postfix
useradd -u 33335 -g 33335 -d /dev/null -s /bin/false maildrop
</screen>

        </sect3>



        <sect3><title>Compilazione e Installazione</title>

        <para>
        La seguente sezione mostra cosa dovete fare per installare MySQL dal sorgente comedescritto sopra.
        Se installate MySQL da un package binario come rpm o deb, allora dovete cambiare gli include e library flags
        a -I/usr/include/mysql e -L/usr/lib/mysql.
        </para>

	<caution><title>Il vecchio MTA deve essere disinstallato</title>
	<para>E' importante che disinstalliate ogni versione di sendmail dal sistema basato su RPM.
	Io suggerisco di rimuovere sendmail e installare al suo posto Postfix. Gli RPM di SuSE hanno bisogno di almeno un MTA.
	Dopo aver installato l'RPM di Postfix, reinstallate Postfix sopra quell'installazione RPM seguendo questo HOWTO.</para>
	</caution>



<screen>
tar -xvzf postfix-2.0.16.tar.gz

cd postfix-2.0.16

make makefiles 'CCARGS=-DHAS_MYSQL \
-I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH \
-I/usr/local/include/sasl -I/usr/local/bdb/include' \
'AUXLIBS=-L/usr/local/mysql/lib/mysql \
-lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -L/usr/local/bdb/lib'
make
make install
</screen>

        <para>Durante <command>make install</command> verranno chieste una serie di domande. Premendo sempre
	<keycap>Enter</keycap> dovreste soddisfare le richieste. Per gli utenti Redhat potrebbe essere utile inserire
	 <filename>/usr/local/share/man</filename></para>

	<para>Ora avete bisogno di creare alcuni link simbolici per far partire Postfix automaticamente all'avvio.
	L'esempio è per SuSE Linux, consulta il manuale del produttore per altre distribuzioni.</para>

<screen>
ln -s /usr/sbin/postfix /etc/init.d/rc3.d/S14postfix
ln -s /usr/sbin/postfix /etc/init.d/rc3.d/K07postfix
</screen>



        </sect3>
  </sect2>

<sect2 id="pam-install">
<title>Ottenere ed Installare PAM</title>
        <para>PAM è installato di default nella maggior parte delle distribuzioni Linux. 
Io non descriverò come compilare PAM da soli perchè potrebbe bloccare il sistema, descriverò invece come installare il package. 
        <para>

	<para>Gli utenti di una distribuzione basata su RPM possono dare i seguenti comandi:<para>

<screen>
rpm -i pam-devel.rpm
</screen>

<para>Gli utenti Debian possono installare il package devel con i segienti comandi:</para>

<screen>
apt-get install libpam0g-dev
</screen>


</sect2>



  <sect2 id="pam-mysql-install">
  <title>Ottenere ed installare pam_mysql</title>

	<sect3><title>Download</title>
		<para>Origin-Site: <ulink url="http://sourceforge.net/projects/pam-mysql/">
			http://sourceforge.net/projects/pam-mysql/</ulink>
		</para>

	</sect3>

	<sect3><title>Installazione</title>

<screen>
tar -xvzf pam_mysql-0.5.tar.gz

cd pam_mysql
</screen>


	<para>Se avete compilato mysql da soli, controllate il <filename>Makefile</filename> ed inserite il 
	corretto percorso alle vostre librerie mysql e aggiungete il flag di compilazione<varname>CFLAGS</varname>
	 <option>-I/path/to/mysql/include</option>.
	</para>

<screen>
ifndef FULL_LINUX_PAM_SOURCE_TREE
export DYNAMIC=-DPAM_DYNAMIC
export CC=gcc
export CFLAGS=-O2 -Dlinux -DLINUX_PAM \
       -ansi -D_POSIX_SOURCE -Wall -Wwrite-strings \
       -Wpointer-arith -Wcast-qual -Wcast-align -Wtraditional \
       -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline \
       -Wshadow -pedantic -fPIC -I/usr/local/mysql/include
export MKDIR=mkdir -p
export LD_D=gcc -shared -Xlinker -x -L/usr/local/mysql/lib/mysql -lz
endif
</screen>

<para>Dopo aver personalizzato il file potete continuare con la compilazione di pam_mysql.</para>

<screen>
make

cp pam_mysql.so /lib/security

[[ ! -d /var/lib/mysql ]] && mkdir /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
</screen>		

	</sect3>
</sect2>


  <sect2 id="web-cyradm-install">
   <title>Ottenere ed Installare Web-cyradm</title>

	<sect3><title>Download</title>
                <para>
                Origin-Site: <ulink url="http://www.web-cyradm.org">http://www.web-cyradm.org</ulink>
                </para>
        </sect3>

        <sect3><title>Installazione</title>

<screen>
cd /usr/local/apache/htdocs

tar -xvzf web-cyradm-0.5.4.tar.gz

touch /var/log/web-cyradm.log
chown nobody /var/log/web-cyradm.log
</screen>

        <para>Dopo avere scompattato web-cyradm, spostatelo all'interno della DocumentRoot del vostro Web server.</para>
        <para>Questo è tutto. Non dovete configurare lintero malloppo del software.</para>

	<para>Web-cyradm 0.5.4 è considerato stabile, ed è stato rilasciato il 5-12-2003</para>

	<para>Poiché web-cyradm usa PEAR per il suo livello di astrazione di database, avete bisogno di una copia recente di
	PEAR. Questa è inclusa nelle recenti versioni di PHP. Io suggerisco fortemente di aggiornare il PHP alla 4.3.4, 
	in quanto sono stati corretti parecchi importanti bachi.
	</para>

	<para>Un errore frequente è quello di dimenticare di creare il logfile e cambiare la proprietà dell'UID di Apache.
	Questo è solitamente »nobody« o »wwwrun«.</para>
        </sect3>

        <sect3 id="mysql-create-db">
                <title>Creare il database e le tabelle</title>
                <para>Ora abbiamo bisogno di creare il database e le tabelle per Postfix e Web-cyradm e aggiungere un
			utente al database.</para>

                <para>
                Web-cyradm si presenta con parecchi scripts MySQL: <filename>insertuser_mysql.sql</filename> e
                <filename>create_mysql.sql</filename>.
                Il primo inserisce gli utenti del database nel database »mysql« e crea il database »mail«. Il
			secondo crea le tabelle richieste e popola il database con un utente amministratore iniziale e l'utente cyrus.</para>

                <para>Gli altri scripts sono usati per gli aggiornamenti incrementali da vecchie releases.</para>

                <para>La password per l'utente del database »mail« in questo esempio è »secret«. Inserite l'utente e la password che preferisci.</para>

                <para>Il nome utente per il superuser iniziale è »admin« con password »test«.</para>

                <caution><title>Cambia la password di default!</title>
                <para>Se utenti malintenzionati vogliono ottenere un accesso non autorizzato al sistema,
			il primo tentativo che fanno è sempre l'username e la password fornita dal produttore. 
			E' importante che li cambiate negli scripts prima di utilizzarli.</para></caution>


                <para>Dopo aver cambiato la username e la password, applicate gli scripts:</para>
<screen>
/usr/local/mysql/bin/mysql -u root -p &lt; \
/usr/local/apache/htdocs/web-cyradm/scripts/insertuser_mysql.sql

/usr/local/mysql/bin/mysql mail -u mail -p &lt; \
/usr/local/apache/htdocs/web-cyradm/scripts/create_mysql.sql
</screen>

	</sect3>

	<sect3 id="web-cyradm-update"><title>Upgrading from 0.5.3 to 0.5.4</title>
	<para>Nella versione 0.5.4 c'è un piccolo miglioramento nel database. Potete aggiornare il database utilizzanto il 
	relativo script fornito con il pacchetto.</para>

<screen>
mysql mail -u mail -p &lt; \ 
scripts/upgrade-0.5.3-to-0.5.4_mysql.sql
</screen>

<para>
Dalla Versione 0.5.3 web-cyradm supporta pienamente le password criptate DES. Potete usare lo script in php
<filename>migrate.php</filename> per convertire le password degli utenti da testo in chiaro a criptato compatibile unix (DES).
</para> 

<caution><title>La migrazione da testo in chiaro a criptata non può essere annullata</title>
<para>Assicuratevi di avere un backup recente del database prima di fare qualunque cosa con lo script di migrazione.
</para></caution>

</sect3>
</sect2>


 </sect1>

<!-- Section1: Install: END -->


<!-- Section1: configuration -->

<!--  <sect1 id="configuration">
  <title>Configurazione</title> -->

 <sect1 id="mysql-config">
   <title>Configurare  MySQL</title>

	<sect2 id="mysql-config-securing">
	<title>Rendere sicuro MySQL</title>

	<para>Poichè state utilizzando MySQL per autenticare gli utenti, avete bisogno di restringere gli accessi dalla rete alla porta 3306.</para>
	<para>Il modo più semplice è quello di collegare MySQL all'interfaccia di loopback 127.0.0.1. 
	Questo ci assicura che nessuno si può connettere al vostro demone MySQL via rete.</para>

	<para>
	Editate <filename>/etc/init.d/mysql.server</filename> e cambiate la linea 107 come segue:</para>

	<para>Linea originale:</para>

 
<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file&
</screen>

	<para>Linea modificata:</para>
	
<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file \
--bind-address=127.0.0.1&
</screen> 

	<para>Riavviate il vostro demone MySQL digitando il seguente comando<command>/etc/init.d/mysql.server start</command></para>

	<para>Pe essere sicuri che le modifiche alla configurazione hanno avuto successo, <command>netstat -an|grep LISTEN</command>.
	L'output dovrebbe essere simile a questo:</para>

<screen>
bond:~ # netstat -an|grep LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
</screen>
	</sect2>


	<sect2 id="mysql-rinetd">
	<title>Impostazione rinetd</title>

	<para>Questo step è necessario solo se avete il server MySQL su un host differente da quello del mailserver. Questo
	vi permette di avere una connessione sicura poiché l'accesso è permesso solo da indirizzi IP predefiniti.</para>

	<para>L'esempio usate è dal punto di vista del server con attivo il database MySQL. Assumiamo che il vostromailserver
	abbia l'IP 192.168.0.100 e l'host MySQL abbia 192.168.0.200</para>

	<para>
	Editate <filename>/etc/rinetd.conf</filename> e aggiungete:</para>


<screen>
192.168.0.200 3306 127.0.0.1 3306
allow 192.168.0.100
</screen>

	<para>Questo significa: L'host MySQL è in ascolto su 192.168.0.200 porta 3306. Se 192.168.0.100 
	tenta una connessione, essa è inoltrata su 127.0.0.1:3306. Tutti gli altri host sono rifiutati. </para>

	</sect2>
  </sect1>

  <sect1 id="pam-config">
  <title>Configurare PAM</title>

  <para>Ora dobbiamo essere sicuri che PAM conosca come autenticare gli utenti di Cyrus</para>

  <para>Dovete creare il file <filename>/etc/pam.d/imap</filename> con i seguenti valori:</para>

<screen>
auth sufficient pam_mysql.so user=mail passwd=secret host=localhost db=mail table=accountuser usercolumn=username passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

auth sufficient pam_unix_auth.so

account required pam_mysql.so user=mail passwd=secret host=localhost db=mail table=accountuser usercolumn=username passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

account  sufficient       pam_unix_acct.so
</screen>

	<para>Le linee contenenti<option>pam_unix_auth.so</option> e <option>pam_unix_acct.so</option>
	 sono necessarie sole se state migrando da WU-IMAP a Cyrus. Questo vi permette di autenticare con le vecchie password unix
	e le sue nuove password mysql.</para>

	<para>Per utilizzare gli altri servizi forniti da cyrus e l'autenticazione-smt (smtp-auth) avete bisogno di copiare
	i file in moo che essi combacino con il service-ID</para>

<screen>
cp /etc/pam.d/imap /etc/pam.d/pop
cp /etc/pam.d/imap /etc/pam.d/sieve
cp /etc/pam.d/imap /etc/pam.d/smtp
</screen>


</sect1>

<!-- Section2: postfix -->

  <sect1 id="postfix-config">
   <title>Configurare Postfix</title>

   <para>Postfix utilizza due principali file di configurazione: <filename>main.cf</filename> e <filename>master.cf</filename>. 
	Entranbi necessitano della vostra attenzione.</para>

	<sect2 id="postfix-master"><title>master.cf</title>

	<para>Dovete cambiare soltanto una linea:</para>
	<para>vecchia: </para>
<screen>
flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
</screen>
   	<para>nuova: </para>
<screen>
flags= user=cyrus argv=/usr/cyrus/bin/deliver -r ${sender} -m ${extension} ${user}
</screen>

	<para>
	Cosa cambia?
	</para>

	<para>
	Uno sguardo a <command>man deliver </command>chiarirà la modifica:
	</para>
	
	<para>L'installazione di Postfix di default utilizza una percorso sbagliato per il trasporto di cyrus, questa
	è la prima modifica. Il parametro »-r« inserisce un corretto percorso di ritorno. Senza questo, le mail rifiutate 
o cancellate da sieve saranno inviate all'utente cyrus al vostro dominio.
	</para>

</sect2>

<sect2 id="postfix-main"><title>main.cf</title>
	<para>Qui potete cambiare parecchie cose come l'hostname, la redirezione, gli alias-lookups ecc.</para>

	<para>Modifica dell'hostname:</para>
<screen>myhostname = foo.bar.org</screen>

<para>mydestination</para>
<para>Qui dovete inserire tutti i nomi dominio locali(corrispondenti al file di sendmail <filename>/etc/mail/sendmail.cw)</filename>. 
Se avete più domini, separateli con una virgola.</para>

<screen>
mydestination = foo.bar.org, example.com, furchbar-grausam.ch, 
 whatever.domain.tld, mysql:/etc/postfix/mysql-mydestination.cf
</screen>

<para>Relayhost</para>

<para>Qui definite dove inviare la posta in uscita. Se non fornitenessun host, la posta viene inviata direttamente 
all'host smtp di destinazione. Normalmente i vostri relayhosts sono i servers smtp dei vostri provider internet.</para>

<screen>relayhost = relay01.foobar.net relay02.foobar.net relay03.foobar.net</screen>

<para>Mailtransport</para>

<para>Qui definite come deve essere gestita la posta per il trasporto locale. Nel vostro caso, dovrebbe essere smistata 
dal programma di trasporto cyrus.</para>

<screen>mailbox_transport = cyrus</screen>

<para>Alla fine del file dovete aggiungere:</para>
<screen>virtual_alias_maps = hash:/etc/postfix/virtual, mysql:/etc/postfix/mysql-virtual.cf</screen>

<para>Se non volete sovrascrivere /etc/postfix/virtual, saltate la voce relativa all'hash</para>

<para>Indirizzi in uscita dovrebbero essere riscritti da test0002 at dominio a nome.utente at virtualhost.com. 
Questo è importante se volete utilizzare un interfaccia web.
</para>

<screen>
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf 
</screen>

<para>Ora dovete creare il file<filename>/etc/postfix/mysql-virtual.cf</filename>: </para>
 
<screen>
#
# mysql config file for alias lookups on postfix
# comments are ok.
#

# the user name and password to log into the mysql server
hosts = localhost
user = mail
password = secret

# the database name on the servers
dbname = mail

# the table name
table = virtual

#
select_field = dest
where_field = alias
additional_conditions = and status = '1'
</screen>

<para>The file <filename>/etc/postfix/mysql-canonical.cf</filename>:</para>

<screen>
# mysql config file for canonical lookups on postfix
# comments are ok.
#

# the user name and password to log into the mysql server
hosts = localhost
user = mail
password = secret

# the database name on the servers
dbname = mail

# the table name
table = virtual
#
select_field = alias
where_field = username
# Return the first match only
additional_conditions = and status = '1' limit 1
</screen>

<para>
Infine il file<filename>/etc/postfix/mysql-mydestination.cf</filename>:
</para>

<screen>
# mysql config file for local domain (like sendmail's sendmail.cw) lookups on postfix
# comments are ok.
#

# the user name and password to log into the mysql server
hosts = localhost
user = mail
password = secret

# the database name on the servers
dbname = mail

# the table name
table = domain
#
select_field = domain_name
where_field = domain_name
</screen>

<para>Autenticazione SMTP con SASL e PAM</para>
<para>Inserite le seguenti linee nel file <filename>/etc/postfix/main.cf</filename></para>
<screen>
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = 
broken_sasl_auth_clients = yes
</screen>

<para>Inoltre dovete creare il file <filename>/usr/local/lib/sasl2/smtpd.conf</filename> con i seguenti
contenuti:</para>

<screen>
pwcheck_method: saslauthd
</screen>

<para>Il prossimo step è quello di dire a postfix come trovare il socket saslauthd:</para>

<screen>
mv /var/run/sasl2 /var/run/sasl2-old
ln -s /var/run/saslauthd /var/run/sasl2
</screen>
<para></para>
</sect2> 

<sect2 id="antispam">
<title>Combattere lo SPAM</title>
<para>Questa sezione descrive come implementare una protezione di base contro lo SPAM con postfix. Non fa uso di software esterno come spamassasin o altri.</para>

<para>
Postfix ha dei filtri predefiniti che permette di arrestare ovvi tentetivi di SPAM. In particolare questi sono:</para>

<itemizedlist>
	<listitem>
	<para>
	smtpd_helo_required = yes
	</para>
	<para>
	Questa impostazione in <filename>main.cf</filename> significa che i clients SMTP, quando si connettono, devono dare un comando »helo«.
	</para>
	</listitem>

	<listitem>
	<para>
	smtpd_recipient_restrictions
	</para>

	<para>Questa opzione <filename>main.cf</filename> vi permette di definire diverse regole per gestire l'accettazione delle mail.
	Il seguente esempio rifiuta tutti i dati di mittenti e destinatari non validi. In più definisce come ricercare spammers conosciuti da blacklists online.
	</para>
	
	<screen>
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
</screen>
<para></para>
	</listitem>
	
	<listitem>
	<para>mime_header_checks=pcre:/etc/postfix/body_checks</para>
	
	<para>Il controllo delle intestazioni MIME vi permette di rifiutare mail che contengono contenuto MIME cattivo, ad es. allegati pericolosi con eseguibili WIndows.
	Create il file <filename>/etc/postfix/body_checks</filename>. 
	Il seguente esempio rifiuta tutte le mail che contengono allegati potenzialmente pericolosi. Nella mia esperienza. l'utilizzo di questo esempio
	tiene fuori la maggiorparte dei virus spediti via mail. In ogni caso, uno sistema antivirus dovrebbe sempre essere installato.
	</para>

	<screen>
	/^((Content-(Disposition: attachment;|Type:).*|\ +)| *)(file)?name\ *=\ *"?.*\.(lnk|asd|hlp|ocx|reg|bat|c[ho]m|cmd|exe|dll|vxd|pif|scr|hta|jse?|sh[mbs]|vb[esx]|ws[fh]|wmf)"?\ *$/      REJECT  attachment type not allowed
	</screen>

	</listitem>

	
</itemizedlist>

</sect2>


 </sect1>

<!-- RMW end of revision-->

<!-- Section2: cyrus -->

  <sect1 id="cyrus-config">
   <title>Configurare Cyrus IMAP</title>

  <sect2 id="cyrus-configfiles"><title>Creating the config files</title>

   <para>Dovete crare <filename>/etc/imapd.conf</filename> e <filename>/etc/cyrus.conf</filename>
   </para>


<sect3 id="etc-services"><title><filename>/etc/services</filename></title>

<para>
Se volete usare sieve (un linguaggio per filtrare mail), dovete modificare le voci in <filename>/etc/services</filename>. 
Con SuSE 8.0 fate attenzione alle porte per sieve, sono sbagliate. Aggiungete o modificate le seguenti linee:
</para>

<screen>
pop3		110/tcp
imap		143/tcp
imaps           993/tcp
pop3s           995/tcp 
sieve           2000/tcp
</screen>
</sect3>


<sect3 id="etc-imapd"><title><filename>/etc/imapd.conf</filename></title> 

<screen>
postmaster: postmaster
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus
allowanonymouslogin: no
allowplaintext: yes
sasl_mech_list: PLAIN
servername: servername
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
dracinterval: 0
drachost: localhost
sasl_pwcheck_method: saslauthd
sievedir: /usr/sieve
sendmail: /usr/sbin/sendmail
sieve_maxscriptsize: 32
sieve_maxscripts: 5
#unixhierarchysep: yes
</screen>

<para>Assicuratevi che »servername« contenga il vostro FQHN (Fully Qualified Hostname)</para>
<para>Il parametro »unixhierarchysep: yes« è usato soltanto se volete avere nomi come »hans.mueller.somedomain.tld«
vedi <xref linkend="web-cyradm-config"> per maggiori informazioni.</para>

</sect3>

<sect3 id="tls"><title>Creare certificati TLS/SSL</title>

<para>Se volete abilitare le opzioni TLS/SSL di Cyrus, dovete prima creare un certificato. Questo richiede un'installazione OpenSSL.</para>

<screen>
openssl req -new -nodes -out req.pem -keyout key.pem  
openssl rsa -in key.pem -out new.key.pem
openssl x509 -in req.pem -out ca-cert -req \
-signkey new.key.pem -days 999 

mkdir /var/imap

cp new.key.pem /var/imap/server.pem
rm new.key.pem
cat ca-cert >> /var/imap/server.pem

chown cyrus:mail /var/imap/server.pem
chmod 600 /var/imap/server.pem # Your key should be protected

echo tls_ca_file: /var/imap/server.pem &gt;&gt; /etc/imapd.conf
echo tls_cert_file: /var/imap/server.pem &gt;&gt; /etc/imapd.conf
echo tls_key_file: /var/imap/server.pem &gt;&gt; /etc/imapd.conf

</screen>

</sect3>

<sect3 id="etc-cyrus-conf"><title><filename>/etc/cyrus.conf</filename></title>

<para>L'altro file che dovete creare è<filename>/etc/cyrus.conf</filename>
E' il file di configurazione per il principale processo di Cyrus. Esso definisce le procedure, i servizi e gli eventi di avvio forniti dal processo »master«.</para>

<screen>
# standard standalone server implementation

START {
  # do not delete this entry!
  recover       cmd="ctl_cyrusdb -r"

  # this is only necessary if using idled for IMAP IDLE
#  idled                cmd="idled"
}

# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
  # add or remove based on preferences
  imap          cmd="imapd" listen="imap" prefork=0
  imaps         cmd="imapd -s" listen="imaps" prefork=0
  pop3          cmd="pop3d" listen="pop3" prefork=0
  pop3s         cmd="pop3d -s" listen="pop3s" prefork=0
  sieve         cmd="timsieved" listen="sieve" prefork=0

  # at least one LMTP is required for delivery
#  lmtp         cmd="lmtpd" listen="lmtp" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0

  # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1
}

EVENTS {
  # this is required
  checkpoint    cmd="ctl_cyrusdb -c" period=30

  # this is only necessary if using duplicate delivery suppression
  delprune      cmd="ctl_deliver -E 3" period=1440

  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" period=1440
}
</screen>

</sect3>
</sect2>

<sect2 id="cyrus-directories"><title>Creare le directories</title>

<para>Devono essere create differenti directories. Inoltre dovete modificare diversi attributi del filesystem</para>


<sect3 id="var-imap"><title><filename>/var/imap</filename></title>

<screen>
cd /var
mkdir imap
chown cyrus:mail imap
chmod 750 imap
</screen>

</sect3>

<sect3 id="var-spool-imap"><title><filename>/var/spool/imap</filename></title>

<screen>
cd /var/spool
mkdir imap
chown cyrus:mail imap
chmod 750 imap
</screen>

</sect3>

<sect3 id="usr-sieve"><title><filename>/usr/sieve</filename></title>

<screen>
cd /usr
mkdir sieve
chown cyrus:mail sieve
chmod 750 sieve
</screen>

</sect3>

<sect3 id="other-dirs"><title>Le altre directories</title>
<para>
Le altre directories possono essere create dal tool <command>mkimap</command>
</para>

<screen>
su - cyrus
/usr/local/cyrus-imapd-2.1.12/tools/mkimap
</screen>

</sect3>

</sect2>

<sect2 id="ch-attrib"><title>Modificare gli attributi del filesystem</title>

<para>Quando usate il filesystem ext2, dovete impostare un attributo che definisce che tutte le modifiche
fatte sono immediatamente registrate sul disco. Con gli attuali filesystem journaling questo non è necessario. 
Se utilizzate il filesistem ext2, consiglio di passare all'ext3.Ext2 and ext3 sono completamente compatibili l'un l'altro.</para>

<para>Per controllare che tipo di filesystem è usato per<filename>/var</filename> usate il comando<command>mount</command> o guardate il vostro
<filename>/etc/fstab</filename>. Notate che <filename>/var</filename> potrebbe anche essere parte del filesystem di root o di altri.
</para>

<screen>
cd /var/imap

chattr +S user quota user/* quota/*
chattr +S /var/spool/imap /var/spool/imap/*
</screen>

</sect2>

  </sect1>


  <sect1 id="web-cyradm-config">
   <title>Configurare Web-cyradm</title>

   <para>Prima copiate il file config della distribuzioine e create il logfile.Il log file deve appartenere all'utente sotto cui gira il server web.
	Esso è solitamente l'utente »nobody« o »wwwrun«.</para>
<screen>
cd /usr/local/apache/htdocs/web-cyradm/config

cp conf.php.dist conf.php

touch /var/log/web-cyradm-login.log
chown nobody /var/log/web-cyradm-login.log
</screen>

   <sect2><title>Cyrus setup</title>

<screen>
#The Cyrus login stuff
$CYRUS = array(
        'HOST'  => 'localhost',
        'PORT'  => 143,
        'ADMIN' => 'cyrus',
        'PASS'  => 'secret'
);
</screen>
<para>
Quanto sopra si spiega da solo. Notate che al momento non c'è supporto per le connessioni SSL, questo è molto importante 
 soprattutto per quelli utenti che volessero avere web-cyradm su un server differente da quello u cui gira cyrus-imapd ..</para>

</sect2>




   <sect2><title>Database setup</title>


	<para>Dalla versione 0.5.2 web-cyradm usa PEAR come livello di asrazioine database. Questo aggiunge più flessibilità. 
	MySQL e PostgreSQL sono attualmente supportati. Notate che per PostgreSQL è richiesta una patch poichè Postfix non supporta PostgreSQL in modo nativo.
	Io suggerisco fortemente di utilizzare MySQL. MySQL ha alcune restrizioni sulle transizioni e stuff ma è supportato nel codice distriubuito da Postfix.
	</para>

	<para>The entries should be self explanatory</para>

<screen>
$DB = array(
        'TYPE'  => 'mysql',
        'USER'  => 'mail',
        'PASS'  => 'secret',
        'PROTO' => 'unix',      // set to "tcp" for TCP/IP
        'HOST'  => 'localhost',
        'NAME'  => 'mail'
);
</screen>

  </sect2>

  <sect2><title>Default Quota</title>
   <para> Le quote predefinite devono essere impostate nella variabile <varname>DEFAULT_QUOTA=20000</varname> e sono usate uando si crea un nuovo dominio</para>

  </sect2>

  <sect2><title>Password criptate</title>
	<para>Web-cyradm supporta il salvataggio di password criptate. Io suggerisco fortemente l'uso della crittogafia.
	Al momento sono supportati tre metodi:Unix-compatibile(crypt), md5 and MySQL.
	Il metodo Unix-compatible vi permette di importare password criptate da un file shadow esistente<filename>/etc/shadow</filename>. 
	Questa è l'opzione preferita.
	</para>

	<para>Sfortunatamente MySQL usa un metodo di criptazione proprietario che è disponibile solo usando MySQL.
	Io sto pensando di abbandonare il supporto per la criptazione MySQL, perchè lavora solo con MySQL e rende la migrazione da un altro database impossibile.
	Appena ci sarà un metodo disponibile per re-ingegnerizzare la criptazione MySQL in PHP verrà risolto il problema (Aiuto nella programmazione, restrizioni legali?)
	</para>

	<para>Controlla la variabile <varname>$CRYPT</varname> nel file<filename>config.inc.php</filename>. 
	Il valore  »plain« significa nessuna criptazione, »crypt« significa criptazione compatibile Shadow, 
	mysql significa criptazione MySQL.</para>

	<caution><title>Scegliete il metodo di criptazione attentamente</title>
	<para>Poichè i metodi supportati di criptazione sono a senso unico, NON C'E' POSSIBILITA' di migrare da un metodo all'altro.
	Notate anche che questa è una variabile globale, è usata per tutte le password comprese le password degli amministratori.
	Suggerisco FORTEMENTE di utilizzare la criptazione compatibile Unix Shadow poichè vi rende indipendenti dal software del produttore.
	</para>
	</caution>

  </sect2>

  <sect2><title>Usernames</title>
	<para>Ci sono due tipi di schemi usernames supportati, definiti nella variabile »DOMAIN_AS_PREFIX«.
	Il predefinito è quello di avere un prefisso definito ($DOMAIN_AS_PREFIX=0), ad es. »test« per il dominio »expample.com«.
	Con questo schema, il primo utente avrà test0001, il secondo test0002 e così via.
	</para>

	<para>L'altro è quello di avere usernames come »hans.mueller.example.com«. 
	In questo caso $DOMAIN_AS_PREFIX=1</para>

	<para>Al momento non si possono mischiare i due schemi, valutate attentamente quale schema meglio si adatta alle vostre esigenze</para>

	<para>Se scegliete di avere $DOMAIN_AS_PREFIX=1, assicuratevi di decommentare all'opzione <option>unixhierarchysep: yes</option> 
 	come descritto in<xref linkend="etc-imapd"></para>

	</sect2>

  </sect1>

<!--  </sect1> -->

<!-- Section1: config: END -->


<!-- Section1: test -->

 <sect1 id="test">
  <title>Testare il setup</title>

   <indexterm>
    <primary>(your index root)!implementation</primary>
   </indexterm>

<sect2 id="test-running">
<title>(Ri-)Avvio dei demoni</title>

  <para>Ora che il software è stato installato e configurato facciamo alcuni test. 
Primo, dovete (ri-)avviare tutti i demoni coinvolti</para>

<itemizedlist>
    <listitem>
     <para>
	<command>postfix start</command>
     </para>
    </listitem>

    <listitem>
     <para>
        <command>/etc/init.d/cyrus start</command>
     </para>
    </listitem>

    <listitem>
     <para>
        <command>/etc/init.d/mysql.server start</command>
     </para>
    </listitem>

    <listitem>
     <para>
        <command>/usr/local/apache/bin/apachectl startssl</command>
     </para>
    </listitem>
</itemizedlist>

<para>I demoni dovrebbero partire senza segnalazione di errori. Notate che saslauthd dovrebbe partire nello script di avvio di cyrus.</para>

<para>Ora puoi verificare se i demoni girano correttamente utilizzando il comando<command>netstat -an|grep LISTEN</command></para>
<para>L'output dovrebbe apparire così:</para>

<screen>
bond:~ # netstat -an|grep LISTEN
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:2000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN
</screen>

<para>Le porte sono assegnate come segue:</para>

<itemizedlist>
    <listitem>
     <para>
	993	imap-ssl
     </para>
    </listitem>


    <listitem>
     <para>
        995     pop3-ssl
     </para>
    </listitem>


    <listitem>
     <para>
        3306     mysql
     </para>
    </listitem>

    <listitem>
     <para>
        110     pop3
     </para>
    </listitem>

    <listitem>
     <para>
        143     imap
     </para>
    </listitem>

    <listitem>
     <para>
        2000     sieve
     </para>
    </listitem>


    <listitem>
     <para>
        80     http
     </para>
    </listitem>

    <listitem>
     <para>
        25     smtp
     </para>
    </listitem>

    <listitem>	
     <para>
        443     https
     </para>
    </listitem>

</itemizedlist>

</sect2>

<sect2 id="testing-web-cyradm">
<title>Testare Web-cyradm</title>

<para>Ora dovreste essere in grado di connetterti a<ulink url="http://localhost/web-cyradm/">http://localhost/web-cyradm/</ulink>
Entrate con le credenziali fornite sopra.</para>

<para>Definite un nome dominio e degli accounts. Assicuratevi che il nome dominio appartenga al vostro server. Se no devi inserire il dominio nel file host
<filename>/etc/hosts</filename>. Il dominio deve anche essere definito come locale in <filename>/etc/postfix/main.cf</filename> (mydestination = domain)</para>

<para>Assicuratevi di aver fornito un unico prefisso di dominio ad es. test per il dominio test.org. Se non fornite un corretto prefisso
riceverete un messaggio di errore.</para>

</sect2>


<sect2 id="testing-postfix">
<title>Testare postfix</title>

<para>Ora andiamo a scrivere una mail:</para>

<screen>
telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail ESMTP Postfix

helo localhost
250 mail
mail from: testing at example.com
250 Ok
rcpt to: tester at localhost
250 Ok

data
354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;
some text
.
250 Ok: queued as B58E141D33

quit
</screen>

<para>Se osservate il messaggio, tutto sembra funzionare bene. Asicuratevi di specificare un destinatario precedentemente definito nel database web-cyradm</para>

<para>Se ottenete un errore come questo:</para>

<screen>
rcpt to: tester at localhost
451 &lt;tester  at localhost&gt;: Temporary lookup failure
</screen>

<para>Allora o MySQL non è attivo, o i permessi sul DB non sono impostati correttamente o avete malconfigurato<filename>/etc/postfix/main.cf</filename></para>

<para>Ad ogni errore consiglio di esaminare <filename>/var/log/mail</filename>. Spesso trovo dei suggerimenti su cosa non funziona.</para>

</sect2>

<sect2 id="testing-cyrus">
<title>Testare le funzionalità IMAP</title>

<para>Molti utenti vorrebbero utilizzare  cyrus-imapd con la Command Line Interface (CLI) »cyradm« ma non ci riescono.
Per poterlo fare è necessario aggiungere l'utente cyrus al file <filename>/etc/sasldb2</filename> perchè »cyradm«autentica sempre con SASL e IMAP.</para>
<para>Per aggiungere l'utente Cyrus a sasldb usate il comando:</para>

<screen>
saslpasswd2 -c cyrus
Password: (enter your passwd)
Again (for verification): (enter your password)
</screen> 

<para>Per usare la »cyradm« CLI fate attenzione al fatto che il tool non ricononsce le opzioni CLI standard come -u e similari ma 
utilizza una sintassi descritta nella pagna man »cyradm 1« come nel seguente esempio:</para>

<screen>
bond:~ # cyradm --user cyrus --server localhost --auth plain
Password: # This is the SASL2 password
IMAP Password: # This is the IMAP password that you need to enter in the mysql-table »accountusers«
localhost>
</screen>

<para>Con il comando Cyrus <command>help</command> potete vedere tutti i possibili comandi e le abbreviazioni.
</para>



<para>Per fare questo tipo di test avete bisogno di un client mail come kmail o netscape (Si, naturalmente anche i prodotti M$ funzionano)
ma inquesto esempio userò kmail.</para>

<figure>
      <title>Creazione nuovo account</title>
      <graphic FileRef="imap-account.png"></graphic>
</figure>

<para>Se abilitate TLS/SSL, potreste anche voler testare la configurazione seguente:</para>

<figure>
      <title>Testare le funzionalità TLS/SSL </title>
      <graphic FileRef="imap-tls.png"></graphic>
</figure>

<para>Se il login fallisce e siete sicuri di aver digitato la giusta password fate attenzione che MySQL sia in funzione.</para>

</sect2>
</sect1>

<!-- Section1: test: END -->


<!-- Section1: moreinfo -->

 <sect1 id="moreinfo">
  <title>Ulteriori informazioni</title>

   <indexterm>
    <primary>(your index root)!information resources</primary>
   </indexterm>

  <para>
	Qui troverete ulteriori informazioni disponibili su internet.
  </para>

<!-- Section2: newsgroups -->

  <sect2 id="newsgroups">
   <title>News groups</title>

    <indexterm>
     <primary>disk!information resources!news groups</primary>
    </indexterm>

   <para>Alcuni dei più interessanti newsgroups sono:

    <itemizedlist>

     <listitem>
      <para>
       <ulink url="news:alt.comp.mail.postfix">alt.comp.mail.postfix</ulink>
      </para>
	<para>Questo è un gruppo a basso traffico.</para>
     </listitem>


     <listitem>
      <para>
       <ulink url="news:comp.mail.imap">comp.mail.imap</ulink>
      </para>
     </listitem>

    </itemizedlist>
   </para>

   <para>Potreste anche cercare newsgroup della vostra nazione ed es. it.comp.os.linux</para>

   <para>Molti newsgroups hanno le loro proprie FAQ che già rispondono a molte vostre domande, come il nome FAQ (Domande ricorrenti) indica.
    Versioni aggiornate dovrebbero essere postate regolarmente. Se non le trovate nel newsroup potete andare direttamente su
    <ulink url="ftp://rtfm.mit.edu/">FAQ main archive FTP site</ulink>. La versione web può essere trovata su
    <ulink url="http://www.cis.ohio-state.edu/hypertext/faq/usenet/FAQ-List.html">FAQ
    main archive WWW site</ulink>.
   </para>
  </sect2>

<!-- Section2: maillists -->

  <sect2 id="maillists">
   <title>Mailing Lists</title>

    <indexterm>
     <primary>disk!information resources!mailing lists</primary>
    </indexterm>

   <sect3>
   <title><email>postfix-users at postfix.org</email></title>
   <para>
   Invia un email a <email>majordomo at postfix.org</email> con il contenuto (not subject):
<screen>
subscribe postfix-users</screen> </para>
   <para>Prima di scrivere alla lista controlla l'archivio: <ulink url="http://www.deja.com/group/mailing.postfix.users">
   http://www.deja.com/group/mailing.postfix.users</ulink></para>

  </sect3>

  <sect3>

   <title><email>info-cyrus at lists.andrew.cmu.edu</email></title>
   <para>Invia un email a <email>majordomo at lists.andrew.cmu.edu</email> con il contenuto (not subject):
<screen>
subscribe info-cyrus</screen> </para>
   <para>Prima di scrivere alla lista controlla l'archivio: 
   <ulink url="http://asg.web.cmu.edu/archive/index.php?mailbox=archive.info-cyrus">
   http://asg.web.cmu.edu/archive/index.php?mailbox=archive.info-cyrus </ulink></para> 

  </sect3>


   <sect3>
   <title><email>web-cyradm at web-cyradm.org</email></title>
   <para>
   Sottoscrizioni possono essere fatte da web su <ulink url="http://www.web-cyradm.org/mailman/listinfo/web-cyradm">
	http://www.web-cyradm.org/mailman/listinfo/web-cyradm</ulink>

   <para>Prima di scrivere alla lista controlla l'archivio per problematiche simili:
   <ulink url="http://www.web-cyradm.org/pipermail/web-cyradm/">http://www.web-cyradm.org/pipermail/web-cyradm/
	</ulink>

  </sect3>



  </sect2>

<!-- Section2: howto -->

  <sect2 id="howto">
   <title>HOWTO</title>

    <indexterm>
     <primary>disk!information resources!HOWTOs</primary>
    </indexterm>

   <para>Questo dovrebbe essere il punto di partenza per avere delle informazioni di base per risolvere specifici problemi.
	Alcuni rilevanti HOWTO sono
    <Literal remap="tt"><ulink url="http://www.tldp.org/HOWTO/Cyrus-IMAP.html">Cyrus-IMAP</ulink></Literal> and 
    <Literal remap="tt"><ulink url="http://www.tldp.org/HOWTO/Apache-Compile-HOWTO/index.html">
	Apache-Compile-HOWTO</ulink></Literal>.  Il sito principale per questi è
    <ulink url="http://www.tldp.org/">LDP archive</ulink>.</para>

  </sect2>

  <sect2 id="ebooks">
 	<title>Ebooks</title>
	<para>Ci sono altri HOWTO e documentazioni liberamente distribuibile su TLDP.org</para>
	<para>IBM ha ecentemente rilasciato un nuovo Redbook:
	<Literal remap="tt"><ulink url="http://www.redbooks.ibm.com/redbooks/pdfs/sg247034.pdf">BladeCenter, Linux, and Open Source: Blueprint for e-business on demand</ulink>.</Literal>Especially chapter 6 is interesting when looking for email solutions.
</para>

</sect2>

<!-- Section2: local-res -->

  <sect2 id="local-res">
   <title>Risorse Locali</title>

    <indexterm>
     <primary>disk!information resources!local</primary>
    </indexterm>

   <para>Spesso le distribuzioni installano della documentazione sul vostro sistema. Come standard essa si trova in <filename>/usr/share/doc/packages</filename></para>
	<para>Gli RPM SuS di Cyrus contengono molta documentazione.</para>
	<para>Postfix ha molti files html nella sua directory sorgente<filename>/usr/local/postfix-2.0.16/html</filename></para>
	<para>PAM viene dato con molta documentazione in<filename>/usr/share/doc/packages/pam</filename></para>
	<para>Il modulo pam_mysql ha un readme con un incredibile peso di 1670 bytes.</para>
	
  </sect2>

<!-- Section2: web -->

  <sect2 id="web">
   <title>Web Sites</title>

    <indexterm>
     <primary>disk!information resources!WWW</primary>
    </indexterm>
    <indexterm>
     <primary>disk!information resources!web pages</primary>
    </indexterm>

   <para>Ci sono un enorme numero di siti web informativi a disposizione ma per loro stessa natura essi cambiano 
	rapidamente così non vi sorprendete se questi link diventano rapidamente obsoleti.
   </para>

   <para>Un buon punto di partenza è naturalmente l'home page di 
    <ulink url="http://www.tldp.org/">Linux Documentation
    Project</ulink> un centro di informazione per documentazione, progetti e molto altro.
   </para>

   <para>
	Per avere informazioni più approfondite su Postfix, allora <ulink url="http://www.postfix.org">www.postfix.org</ulink>
	potrebbe essere il punto di partenza.
   </para>

   <para>Fatemi  sapere se avete altri argomenti di vostro interesse.
   </para>
  </sect2>

 </sect1>

<!-- Section1: moreinfo: END -->

<!-- Section1: faq -->

 <sect1 id="faq">
  <title>Domande  e Risposte</title>

<para>
	Here I answer the questions which I got from users. If you don't find an answer feel free to contact me
</para>


<qandaset>
<qandadiv><title>FAQ</title>
<qandaentry>
<question>
  <para>
Does web-cyradm only support users like »test0001« ? I'd like to have a more descriptive username
</para>
</question>

<answer>
	<para>
	web-cyradm does also support usernames like »user.name.example.com« if you configure it.
	Your need to change config.inc.php and change the value of DOMAIN_AS_PREFIX to 1. then you need to add
	»unixhierarchysep: yes« to your <filename>/etc/imapd.conf</filename>
	</para>
</answer>
</qandaentry>

<qandaentry><question>
	<para>
	Messages are bouncing. Postfix/pipe complains that "Mailbox does not exist". Whats wrong?
	</para>
</question>

<answer>
	<para>
	Check that the cyrus login on web-cyradm (config.inc.php) is correct.
	The username and password must exist in MySQL on table accountuser. 
	Web-cyradm will not complain if the cyrus login info is incorrect.
	</para>
</answer></qandaentry>

<qandaentry><question>

     <para>
	web-cyradm complains about »Fatal error: Call to undefined function: bindtextdomain()
 	in /www/web-cyradm-0.5.3/index.php on line 46«, whats wrong?
     </para>
</question>

<answer>
	<para>
	Web-cyradm needs gettext enabled PHP. Please compile PHP with the configure-option --with-gettext.
	</para>
	<para>	
	gettext is needed for NLS (Native Language Support) which means
	contributors can easily translate web-cyradm to there language. Fill in your Language in the file
	<filename>/usr/local/apache/htdocs/web-cyradm/locale/templates/web-cyradm.pot</filename> and send me
	the file, then your language will be supported in the next CVS snapshot</para>

</answer>
</qandaentry>

<qandaentry><question>

	<para>
	I got a error from Web-cyradm like this »Fatal error: Call to undefined function: query() in
	/usr/local/httpd/htdocs/web-cyradm/auth.inc.php on line 17«
	</para>
</question>

<answer>
	<para>
	Web-cyradm depends on PEAR for database abstraction. PEAR is included in recent PHP versions. Often
	PEAR is a separate package, check out the package base of your distribution. I strongly suggest to update
	to the most recent version of PHP anyway, because a lot of bugs have been fixed.</para>

	<para>Another reason could be an authentication error with MySQL. Be sure the user »mail« has enough
	rights to access the database and tables.</para>

</answer>	
</qandaentry>

<qandaentry><question>

     <para>
      Why MySQL and not LDAP?
     </para>

</question>

<answer>
     <para>
      Good question. LDAP is role-based and it would be indeed a better solution for such applications. 
      Unfortunately LDAP is very hard to set up. You have to make proper schemes etc. MySQL is the 
      way strait ahead, it is very easy to handle and versatile. There is a PAM module available 
      for LDAP, feel free to use it.
     </para>

</answer>
</qandaentry>

<qandaentry><question>
     <para>
      Why Postfix and not Qmail?
     </para>
</question>

<answer>
     <para>
      Lots of people like to see such a setup with Qmail. The reason why is, Mysql-support is a hack and not in the
      included in the main source-tree. This could end up in a bad situation. Think if a security-hole is found in qmail
      and the patch does not work with the corrected version. Postfix is supporting MySQL natively. 
      Another (personal) reason is that I find Postfix more sympatic (I don't know why)
     </para>

</answer>
</qandaentry>

<qandaentry><question>

     <para>
      I got a Error: "Temporary lookup failure"
     </para>

</question>
<answer>

     <para>
      Postfix cannot look up the alias table. Must common failure is that MySQL is not running, 
      or there is a authentication Error. Check <filename>/var/log/mail</filename> and 
      <filename>/usr/local/mysql/var/&lt;hostname&gt;.err</filename> to track the error.
     </para>

</answer>
</qandaentry>

<qandaentry><question>

     <para>
      For what platforms does this HOWTO work?
     </para>

</question>
<answer>

     <para>
      It is primarily for Linux. Until now I only tested it on Linux/IA32. Most probably it will also work on other 
      architectures.
      FreeBSD is reported working fine. AIX has problems with at least PHP. Please report if you got it running 
      on other platform, so I can update this section.
     </para>

</answer>
</qandaentry>

</qandadiv>
</qandaset>

 </sect1>


</article>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

