Mail Server: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (→‎Mailscanner: task #30)
 
(41 versioni intermedie di 8 utenti non mostrate)
Riga 1: Riga 1:
= '''SERVER DI POSTA''' =
{{Versioni compatibili|Lenny|Squeeze|Wheezy|Jessie}}
==Introduzione==
L'idea è quella di avere una connessione permanente ad Internet che può ricevere posta dall'esterno e gestire la posta interna alla Lan, quindi, a meno che non abbiate già un dominio, per prima cosa sarà necessario andare su http://www.dyndns.org o un servizio analogo(ad esempio http://www.no-ip.com), registrarsi, scegliersi un dominio (mandare le email a utente@123.231.201.178 non è proprio comodissimo, soprattutto quando il giorno dopo il numero cambia) e associarlo al proprio indirizzo IP. Se avete un IP dinamico, installate sul vostro computer un programmino come <code>ddclient</code> (basta installarlo con apt-get e rispondere alle domande) che aggiorna automaticamente l'indirizzo IP associato al dominio ogni volta che vi collegate.


== Postfix ==
Cominciamo con un server MTA, Mail Transport Agent, che riceve la posta (è quello che tiene aperta la porta 25 SMTP in ricezione, per intenderci). Si può scegliere tra exim, postfix, sendmail, qmail e altri. Scegliamo postfix perché è un buon compromesso in quanto a prestazioni, compatibilità, flessibilità, sicurezza. Per installarlo diamo il solito:
<pre>
# apt-get install postfix
</pre>
Installandolo verrà automaticamente rimosso un altro eventuale MTA già installato con apt, probabilmente exim o exim4 che è quello di default su Debian.


Debconf pone delle domande quando si installa postfix. Grazie a queste possiamo avere un server di posta già praticamente pronto, molto semplice certo, ma funzionante.


L'idea è quella di avere una connessione permanente a internet che può ricevere posta dall'esterno e gestire la posta interna alla lan ,quindi a meno che non abbiate già un dominio per prima cosa andare su www.dyndns.org o servizio analogo(www.no-ip.com), registratevi, sceglietevi un dominio (mandare le email a utente@123.231.201.178 non è proprio comodissimo, soprattutto quando il giorno dopo il numero cambia) e associatelo al vostro indirizzo ip. Se avete un ip dinamico, installate sul vostro computer un programmetto come ddclient (basta apt-gettarlo e rispondere alle domande) che aggiorna automaticamente l'indirizzo ip associato al dominio ogni volta che vi collegate.
Diamo una spiegazione delle varie schermate.


Nella prima vi informa delle scelte possibili: sono previste varie configurazioni; noi sceglieremo ''Internet site using smarthost'', che in pratica consiste nell'avere un server che riceve posta e che la invia tutta ad un altro server (quello fornito dal nostro ISP per esempio). Premete ok per passare alla prossima schermata.


Nella schermata successiva scegliamo "Internet with smarthost".


== POSTFIX ==
* '''Mail name''': sarà quello che appare dopo la chiocciola nell'indirizzo di posta. Ovviamente deve essere il nome valido del vostro server, dal momento che chi vi risponderà vi manderà la posta a quell'indirizzo.
   


Cominciamo con un server MTA, Mail Transport Agent, che riceve la posta (è quello che tiene aperta la porta 25 smtp in ricezione per intenderci). Si può scegliere tra exim, postfix, sendmail, qmail e altri. Scegliamo postfix perche è un buon compromesso in quanto a prestazioni, compatibilità, flessibilità, sicurezza.
* '''SMTP relay host''': qui indichiamo il server di posta a cui facciamo il relay. In parole semplici, quando inviamo una mail al nostro server, esso la spedirà a questo relay che poi la recapiterà. È necessario dato che molti bloccano l'arrivo di email da IP non ritenuti affidabili.


''apt-get install postfix''  
* '''Other destinations to accept mail for''': indirizzi che identificano questo server. Quando gli arriva una mail con questa destinazione, capirà che è lui il destinatario. Qua mettete il vostro nome di dominio.


Installandolo verrà automaticamente rimosso un altro eventuale MTA già installato con apt, probabilmente exim o exim4 che è quello di default su debian.  
* '''Local networks''': quali reti sono abilitate a spedire mail. Non mettendo nulla postfix inserirà tutte le reti connesse. Meglio inserire a mano localhost (127.0.0.0/8) e la nostra LAN (192.168.1.0/24) nel caso la nostra LAN sia 192.168.1.xxx.


Debconf pone delle domande quando si installa postfix. Grazie a queste possiamo avere un server di posta già praticamente pronto, molto semplice certo, ma funzionante.  
* '''Use procmail for local delivery''': rispondete SÌ, dato che useremo procmail.


Diamo una spiegazione delle varie schermate.
* '''Mailbox size limit''': dimensione massima della casella di posta. 0 significa illimitata. Impostatela a vostro piacimento.
 
Vi informa delle scelte possibili. Sono previste varie configurazioni; noi sceglieremo "Internet site using smarthost", che in pratica sarebbe l'avere un server che riceve posta e che la invia tutta ad un altro server (quello fornito dal nostro ISP per esempio). Premete ok per passare alla prossima schermata.
 
Sciegliamo "Internet with smarthost"


Mail name: sarà quello che appare dopo la chiocciola nell'indirizzo di posta. Ovviamente deve essere il nome valido del vostro server, dal momento che chi vi risponderà vi manderà la posta a quell'indirizzo.
* '''message_size_limit''': dimensione massima per gli allegati , se associate la posta a una web-app occorre impostare in ''/etc/php5/php.ini'' :
post_max_size = xxM


SMTP relay host: qui indichiamo il server di posta a cui facciamo il relay. In parole semplici, quando inviamo una mail al nostro server, esso la spedirà a questo relay che poi la recapiterà. È necessario dato che molti bloccano l'arrivo di email da ip non ritenuti affidabili.
upload_max_filesize = xxM


Other destinations to accept mail for: indirizzi che identificano questo server. Quando gli arriva una mail con questa destinazione, capirà che è lui il destinatario. Qua mettete il vostro nome di dominio.
dove xx corrisponde al valore in bytes inserito in ''message_size_limit''


Local networks: quali reti sono abilitate a spedire mail. Non mettendo nulla postfix inserirà tutte le reti connesse.
* '''Where should mail for root go''': questa imposta un alias per l'utente root, dato che non può ricevere posta. Tutto quello che è indirizzato a lui andrà nella casella di un altro utente, non root, che sceglierete voi.


Meglio che inseriamo noi a mano localhost (127.0.0.0/8) e la nostra LAN (192.168.1.0/24) nel caso la nostra LAN sia 192.168.1.xxx.
In particolare attenzione a mettere /24 in "local networks" e non /255 o altre robe strane che possono venirvi in mente. Se non sapete cosa vuol dire quel /24, tenete /24. Se sapete cosa vuol dire, non avete bisogno di spiegazioni.  
 
Use procmail for local delivery: rispondete SI, dato che useremo procmail.
 
Mailbox size limit: dimensione massima della casella di posta. 0 significa illimitata. Impostatela a vostro piacimento.
 
Where should mail for root go: questa imposta un alias per l'utente root, dato che non può ricevere posta. Tutto quello che è indirizzato a lui andrà nella casella di un altro utente, non root, che scieglierete voi.
 
In particolare occhio a mettere /24 in "local networks" e non /255 o altre robe strane che possono venirvi in mente. Se non sapete cosa vuol dire quel /24, tenete /24. Se sapete cosa vuol dire, non avete bisogno di spiegazioni.  


Non preoccupatevi se vi sembra che "local networks" specifichi a postfix di ricevere posta solo da quei computer, in realtà dice a postfix di fare RELAY solo per la posta che arriva da quei computer, la posta che arriverà da internet la riceve lo stesso.
Non preoccupatevi se vi sembra che "local networks" specifichi a postfix di ricevere posta solo da quei computer, in realtà dice a postfix di fare RELAY solo per la posta che arriva da quei computer, la posta che arriverà da internet la riceve lo stesso.


A questo punto dobbiamo fare solo dei piccoli ritocchi. Editiamo dunque il file di configurazione principale che si chiama ''/etc/postfix/main.cf''. Le voci da sistemare sono:
A questo punto dobbiamo fare solo dei piccoli ritocchi. Editiamo dunque il file di configurazione principale che si chiama <code>/etc/postfix/main.cf</code>. Le voci da sistemare sono:


''myhostname'': controlliamo che ci sia il nome giusto. Vdi /etc/hostname
''myhostname'': controlliamo che ci sia il nome giusto. Vedi <code>/etc/hostname</code>


Poi in  ''/etc/aliases'' come da esempio giriamo tutti i messaggi di sistema all'utente se vogliamo ricevere tutto noi
Poi in  <code>/etc/aliases</code> come da esempio giriamo tutti i messaggi di sistema all'utente se vogliamo ricevere tutto noi
esempio:
esempio:
 
<pre>
  ''haldaemon: root
  haldaemon: root
  mail: root
  mail: root
  news: root
  news: root
Riga 58: Riga 56:
  sync: root
  sync: root
  root: nomeutente
  root: nomeutente
''
</pre>
 
 
nomeutentex è quello che verrà usato da chi vorrà inviare posta, ad esempio all'indirizzo nomeutente1@tuo.dominio.org. Si possono creare utenze che puntano ad altre utenze, nel senso: root che punta a utente1, e utente1 che punta ad utenteposta. Il vero e proprio database di postfix si chiama '/etc/aliases.db', che non va editato a mano. Per sincronizzarlo con le nostre modifiche, lanciamo il comando newaliases:
 
''newaliases''
 
che non restituisce alcun output se tutto va bene. Nel caso vi spari fuori qualcosa tipo "duplicate entry:", editate di nuovo '/etc/aliases', eliminate il duplicato ed eseguite di nuovo il comando newaliases. Tenete presente che non è necessario che siano associati direttamente agli utenti di sistema normali.


nomeutenteX è quello che verrà usato da chi vorrà inviare posta, ad esempio all'indirizzo nomeutente1@tuo.dominio.org. Si possono creare utenze che puntano ad altre utenze, ad esempio: root che punta a utente1, e utente1 che punta ad utenteposta. Il vero e proprio database di postfix si chiama <code>/etc/aliases.db</code>, che non va editato a mano. Per sincronizzarlo con le nostre modifiche, lanciamo il comando newaliases:
<pre>
# newaliases
</pre>
che non restituisce alcun output se tutto va bene. Nel caso vi spari fuori qualcosa tipo <code>duplicate entry:</code>, editate di nuovo <code>/etc/aliases</code>, eliminate il duplicato ed eseguite di nuovo il comando <code>newaliases</code>. Tenete presente che non è necessario che siano associati direttamente agli utenti di sistema normali.


Qesto esempio riporta in parte la configurazione di /etc/postfix/main.cf :


  ''# appending .domain is the MUA's job.
Questo esempio riporta in parte la configurazione di <code>/etc/postfix/main.cf</code> :
<pre>
  # appending .domain is the MUA's job.
  append_dot_mydomain = no
  append_dot_mydomain = no
  # Uncomment the next line to generate "delayed mail" warnings
  # Uncomment the next line to generate "delayed mail" warnings
Riga 85: Riga 82:
  mailbox_command = procmail -a "$EXTENSION"
  mailbox_command = procmail -a "$EXTENSION"
  mailbox_size_limit = 0
  mailbox_size_limit = 0
# Size limit attachment in bytes : in esempio 20MB
message_size_limit = 20480000
  recipient_delimiter = +
  recipient_delimiter = +
  inet_interfaces = all
  inet_interfaces = all
  disable_dns_lookups = yes
  disable_dns_lookups = yes
  sender_canonical_maps = hash:/etc/postfix/sender_canonical
  sender_canonical_maps = hash:/etc/postfix/sender_canonical
  # aggiunta per mailscanner
smtp_generic_maps = hash:/etc/postfix/generic
  # aggiunta per mailscanner, decommentare dopo averlo installato
  # header_checks = regexp:/etc/postfix/header_checks
  # header_checks = regexp:/etc/postfix/header_checks
  # aggiunta per server da DEBIANIZZATI
  # decommentare dopo l'installazione di spamassassin
  # mailbox_command = /usr/bin/spamc | procmail -a "&SENDER &RECIPIENT $EXTENSION"''
  # mailbox_command = /usr/bin/spamc | procmail -a "&SENDER &RECIPIENT $EXTENSION"


</pre>
Le due parti aggiunte, lasciatele commentate fino alla fine altrimenti senza aver installato procmail, vi daranno errori.


Le due parti aggiunte , lasciatele commentate fino alla fine altrimenti senza aver installato procmail , vi daranno errori.
Ora create i file per far corrispondere i vostri indirizzi email ai vostri utenti locali. Si tratta dei file <code>/etc/postfix/sender_canonical</code> (che contiene gli indirizzi che verranno inseriti nel campo <code>from</code> per ogni utente al posto di utente@vostra.macchina) .  


Ora create i file per far corrispondere i vostri indirizzi email ai vostri utenti locali. Si tratta dei file'' /etc/postfix/sender_canonical'' (che contiene gli indirizzi che verranno inseriti nel campo from per ogni utente al posto di utente@vostra.macchina) .  
Questo è un esempio <code>/etc/postfix/sender_canonical</code>:
<pre>
root root@myserver.it
gino gino.pioli@myserver.it
www-data security@myserver.it
utente1 pierino@myserver.it
</pre>


Questo è un esmpio ''/etc/postfix/sender_canonical'':
se modificate il file <code>/etc/postfix/sender_canonical</code> date:
<pre>
# postmap /etc/postfix/sender_canonical
</pre>


Secondo l'attuale configurazione se si vuole mandare una mail a un'utente all'interno del server è possibile usare l'indirizzo utente@nomeserver.nomedominio.it , in questo modo le mail verranno girate internamente senza uscire da SMTP.


  ''root root@myserver.it
Potrebbe essere necessario riscrivere l'indirizzo di invio , per esempio si potrebbe inviare localmente da :
  gino gino.paoli@myserver.it
 
  www-data security@myserver.it
  dbsupport@thisdomain.com
  utente1 pierino@myserver.it
  helpdesk@thisdomain.com
  ''
 
e voler uscire con
admins@thatdomain.com
 
in questo caso si possono inserire in ''/etc/postfix/sender_canonical'' alcune espressioni regolari come ad esempio
  /^(.*@box1[.])thisdomain[.]com$/ ${1}thatdomain.com
  /^(.*@)box1[.]thisdomain[.]com$/ ${1}box2.thatdomain.com
  /^(.*)thisdomain[.]com$/ ${1}thatdomain.com


se modificate il file ''/etc/postfix/sender_canonical'' date:
per testare il corretto funzionamento senza aggiornare ''sender_canonical.db'' e senza riavviare ''postfix'' usare il comando :
postmap -q "fubar@box1.thisdomain.com" regexp:/etc/postfix/sender_canonical


''postmap /etc/postfix/sender_canonical''
l'output ci mostrerà se quanto scritto funziona


Il problema sorge se la mail ha diversi destinatari con indirizzi interni ed esterni , infatti l'indirizzo esterno che riceverà la mail si trovera l'indirizzo ''user@nomeserver.nomedominio.it'' al quale non potrà rispondere.


Ora da un utente a vostra scelta provate a verificare se il server funziona
In questo caso andremo a riscrivere l'indirizzo in modo corretto usando ''/etc/postfix/generic'' , in cui scriveremo :
@nomeserver.nomedominio.it @nomedominio.it
aggiorniamo
#postmap  /etc/postfix/generic


Dovete avere installato ''mail'' , altrimenti
nel caso vengano fatte modifiche ai file indicati occorre aggirornarli con il comando :
   
  postmap  /etc/postfix/nome_file
  ''apt-get install mailutils''
Per terminare riavviare postfix per sicurezza
  #/etc/init.d/postfix restart


con il comando ''mail''  esempio :
Ora da un utente a vostra scelta provate a verificare se il server funziona.


Dovete avere installato ''mailutils'' , altrimenti
<pre>
# apt-get install mailutils
</pre>
con il comando <code>mail</code>  esempio:
<pre>
  ''nomeuser@nomeserver:~$ mail root
  ''nomeuser@nomeserver:~$ mail root
  (invio)
  (invio)
  Subject: test
  Subject: test
  (invio)
  (invio)
Riga 129: Riga 161:
  Cc: www-data
  Cc: www-data
  (invio)
  (invio)
  nomeuser@nomeserver:~$''
  nomeuser@nomeserver:~$
</pre>


potete inviare anche le mail verso indirizzi esterni
potete inviare anche le mail verso indirizzi esterni.


se vi arrivano vuol dire che tutto funziona
Se vi arrivano vuol dire che tutto funziona.


== PROCMAIL ==
== Procmail ==


In questa guida ho preferito una configurazione in un unico file, intanto perché per me è stata più semplice da gestire e poi perché il lavoro che dovevo svolgere io era semplice.
Quindi se non volete complicarvi la vita fate come ho fatto io, altrimenti leggetevi qualche guida e potrete capire un po' meglio.


 
Postfix così sarebbe a posto, ma non possiamo ancora fare una prova, perché manca procmail, un programma che smista la posta.  
In questa guida ho preferito una configurazione in un unico file ,che per me è stata più semplice da gestire
e anche perchè il lavoro che dovevo svolgere io era semplice
 
qui se non volete complicarvi la vita fate come ho fatto io , altrimenti leggetevi qualche guida e potrete capire un po meglio
 
 
Postfix così sarebbe a posto, ma non possiamo ancora fare una prova, perchè manca procmail, un programma che smista la posta.  


Postfix ne potrebbe anche fare a meno, ma con procmail si possono fare cose più belle, per esempio filtrare la posta mettendola in varie directory a seconda dell'user (fittizio) o a seconda della sorgente (vedi mailing list).  
Postfix ne potrebbe anche fare a meno, ma con procmail si possono fare cose più belle, per esempio filtrare la posta mettendola in varie directory a seconda dell'user (fittizio) o a seconda della sorgente (vedi mailing list).  


Quindi installiamolo.
Quindi installiamolo.
 
<pre>
''apt-get install procmail''
# apt-get install procmail
 
</pre>
Il suo file di configurazione va messo nella home dell'utente per la posta, ovvero "utenteposta". Creiamolo con i giusti permessi:
Il suo file di configurazione va messo nella home dell'utente per la posta, ovvero "utenteposta". Creiamolo con i giusti permessi:
<pre>
$ touch /home/utenteposta/.procmailrc
$ chmod 600 /home/utenteposta/.procmailrc
$ chown utenteposta:usergroup /home/utenteposta/.procmailrc
</pre>


''touch /home/utenteposta/.procmailrc
A questo punto occorre decidere come farlo, infatti in base alle proprie esigenze e alla complessità del file è possibile seguire due tipi di configurazione del file.
chmod 600 /home/utenteposta/.procmailrc
chown utenteposta:usergroup /home/utenteposta/.procmailrc''
 
 
A questo punto occorre decidere come farlo , infatti in base alle proprie esigenze e alla complessità del file
è possibile seguire due tipi di configurazione del file.
 
Esiste chi crea più file per filtri vari,diversi utenti e altro che poi fanno riferimento al file principale oppure chi mette tutti i comandi in un unico file.


Per me la scelta del file unico è stata migliore dato che è molto semplice e in un solo file ho tutta la configurazione di procmail
C'è chi crea più file per filtri vari, diversi utenti e altro che poi fanno riferimento al file principale; oppure chi mette tutti i comandi in un unico file.


Quello sotto è un esempio del mio file
Per me la scelta del file unico è stata migliore dato che è molto semplice e in un solo file ho tutta la configurazione di procmail.


  ''# ~/.procmailrc
Quello sotto è un esempio del mio file:
<pre>
  # ~/.procmailrc
  SHELL=/bin/sh
  SHELL=/bin/sh
  #log
  #log
Riga 177: Riga 204:
  SENDMAIL=/usr/sbin/sendmail # path di sendmail
  SENDMAIL=/usr/sbin/sendmail # path di sendmail
  # File di log
  # File di log
  #se tutto funziona dopo un potete commentarlo
  #se tutto funziona dopo un po' potete commentarlo
  LOGFILE=${HOME}/procmail.log
  LOGFILE=${HOME}/procmail.log
  # Directory della posta
  # Directory della posta
Riga 189: Riga 216:
  ## SPAMASSASSIN ##
  ## SPAMASSASSIN ##
  ## Prima di consegnare le mail, le filtriamo tutte con spamassassin
  ## Prima di consegnare le mail, le filtriamo tutte con spamassassin
  :0fw:
  ## dato che il controllo viene effettuato da mailscanner con spamassassin
  | spamassassin
## le due righe qui sotto sono commentate per non fare un doppio controllo
#:0fw:
  #| spamassassin
  # Poi salviamo lo spam in una cartella a parte denominata Spam/
  # Poi salviamo lo spam in una cartella a parte denominata Spam/
  # Lo spam dientificato da un controllo negli header sul campo
  # Lo spam identificato da un controllo negli header sul campo
  # X-Spam-Status agiunto da spamassassin quando la mail viene analizzata
  # X-Spam-Status aggiunto da spamassassin quando la mail viene analizzata
  :0:
  :0:
  * ^X-Spam-Status: Yes
  * ^X-Spam-Status: Yes
Riga 200: Riga 229:
  :0:
  :0:
  * ^TO_nomeutente@nomedominio.it
  * ^TO_nomeutente@nomedominio.it
  nomeutente/.Maildir/`$FORMAIL -rt -xMessage-Id:`''
  nomeutente/.Maildir/`$FORMAIL -rt -xMessage-Id:`
</pre>




<code>:0:</code>: marca l'inizio della sezione;


........................................................................................................................................
<code>* ^TO_</code> indica l'indirizzo email completo dell'utente.




':0:' marca l'inizio della sezione;
La successiva riga indica la directory in cui le mail di quell'utente verranno parcheggiate, e con che formato.


'* ^TO_' indica l'indirizzo email completo dell'utente;
Quindi avremo ad esempio per ogni utente la parte prima indicata e correggeremo solo il finale:
 
<pre>
 
  :0:
La successiva riga indica la directory dove le mail di quell'utente verranno parcheggiate, e con che formato.
 
Quindi avremo ad esempio per ogni utente la parte prima indicata e correggerremo solo il finale
 
  '':0:
  * ^TO_nomeutente1@tuo.dominio.com
  * ^TO_nomeutente1@tuo.dominio.com
  nomeutente1/.Maildir/`$FORMAIL -rt -xMessage-Id:`
  nomeutente1/.Maildir/`$FORMAIL -rt -xMessage-Id:`
Riga 222: Riga 248:
  :0:
  :0:
  * ^TO_nomeutente2@tuo.dominio.com
  * ^TO_nomeutente2@tuo.dominio.com
  nomeutente2/.Maildir/`$FORMAIL -rt -xMessage-Id:`''
  nomeutente2/.Maildir/`$FORMAIL -rt -xMessage-Id:`
 
</pre>
...


eccetera.  
eccetera.  


Nel caso arrivino mail che non soddisfano i filtri precedentemente applicati nel file di cfg di procmail possiamo scaricarle in una directory precisa aggiungendo queste 3 righe:
Nel caso arrivino mail che non soddisfano i filtri precedentemente applicati nel file di configurazione di procmail possiamo scaricarle in una directory precisa aggiungendo queste 3 righe:
 
<pre>
  '':0:
  :0:


  * ^TO_
  * ^TO_


  nomeutentex/.Maildir/`$FORMAIL -rt -xMessage-Id:`''
  nomeutentex/.Maildir/`$FORMAIL -rt -xMessage-Id:`
 
</pre>
 
Precisazione: `$FORMAIL -rt -xMessage-Id:` serve ovviamente per dare un nome al file.
 
 
 
 
== SERVER IMAP ==
 
 


Precisazione: <code>`$FORMAIL -rt -xMessage-Id:`</code> serve ovviamente per dare un nome al file.


Bene, a questo punto abbiamo un sistema pronto, per quanto semplice, che riceve posta e la smista in directory. Non è ancora funzionante perchè le directory non gliele abbiamo ancora create, e prima di farlo dobbiamo scegliere un server IMAP o POP da usare, cioè il server a cui gli utenti si collegheranno per leggere la posta col loro client. In teoria potrebbero leggere la posta direttamente dal filesystem, ma non è molto comodo. Abbiamo varie possibilità, fra cui due sono state prese in considerazione e spiegate: 'courier-imap' e 'dovecot'. Entrambi sono server IMAP, che ci consentono di tenere tutta la posta nel server senza scaricarla nel client. Quale scegliere? Beh, quello che preferite. Ovviamente sono già pronti e pacchettizzati in debian (dovecot però c'è solo in debian sid in questo momento) quindi per installarli usamo al solito apt-get.
== Server IMAP4 ==
 
Bene, a questo punto abbiamo un sistema pronto, per quanto semplice, che riceve posta e la smista in directory. Non è ancora funzionante perché le directory non gliele abbiamo ancora create, e prima di farlo dobbiamo scegliere un server IMAP o POP da usare, cioè il server a cui gli utenti si collegheranno per leggere la posta col loro client. In teoria potrebbero leggere la posta direttamente dal filesystem, ma non è molto comodo. Abbiamo varie possibilità, fra cui due sono state prese in considerazione e spiegate: 'courier-imap' e 'dovecot'. Entrambi sono server IMAP, che ci consentono di tenere tutta la posta nel server senza scaricarla nel client. Quale scegliere? Beh, quello che preferite. Ovviamente sono già pronti e pacchettizzati in Debian quindi per installarli usiamo, come al solito, apt-get.
''apt-get install courier-imap fam''
<pre>
# apt-get install courier-imap fam
</pre>


Notare che con courier installiamo anche fam, File Alteration Monitor. Non è un elemento indispensabile, tuttavia courier è già pronto ad usarlo, permettendo che vari utenti possano condividere delle stesse directory e venir immediatamente avvisati dei cambiamenti. Ora che sono installati (o uno o l'altro) abbiamo a disposizione uno strumento che ci permette di finire il lavoro con procmail, cioè creare le directory organizzate correttamente.
Notare che con courier installiamo anche fam, File Alteration Monitor. Non è un elemento indispensabile, tuttavia courier è già pronto ad usarlo, permettendo che vari utenti possano condividere delle stesse directory e venir immediatamente avvisati dei cambiamenti. Ora che sono installati (o uno o l'altro) abbiamo a disposizione uno strumento che ci permette di finire il lavoro con procmail, cioè creare le directory organizzate correttamente.


=== Creazione directory per ogni utente ===


=== CREAZIONE DIRECTORY PER OGNI UTENTE ===
Creiamo una directory per ogni utente che abbiamo specificato. Entriamo nella directory home dell'utente designato come root per la gestione delle email (<code>/home/utenteposta</code>) e cominciamo.
<pre>
$ maildirmake.courier /home/utenteposta/.Maildir
$ chown -R utenteposta:usergroup /home/utenteposta/.Maildir


$ maildirmake.courier /home/utenteposta2/.Maildir
$ chown -R utenteposta2:usergroup /home/utenteposta2/.Maildir
</pre>


Creiamo una directory per ogni utente che abbiamo specificato. Entriamo nella directory home dell'utente designato come root per la gestione delle email ('/home/utenteposta') e cominciamo.
Ripetete quelle 2 righe di comando per ogni utente che avete aggiunto al file <code>/etc/aliases</code>, o comunque ogni utente che deve avere una casella di posta distinta.  
 
 
''maildirmake.courier /home/utenteposta/.Maildir
chown -R utenteposta:usergroup /home/utenteposta/.Maildir
 
maildirmake.courier /home/utenteposta2/.Maildir
chown -R utenteposta2:usergroup /home/utenteposta2/.Maildir''
 
...
 
Ripetete quelle 2 righe di comando per ogni utente che avete aggiunto al file /etc/aliases, o comunque ogni utente che deve avere una casella di posta distinta.  


Notate che impostiamo l'utente di tutto a utenteposta e i permessi a 700, così utenteposta sarà l'unico oltre a root a poter leggere la posta direttamente dal disco.
Notate che impostiamo l'utente di tutto a utenteposta e i permessi a 700, così utenteposta sarà l'unico oltre a root a poter leggere la posta direttamente dal disco.
Riga 276: Riga 290:


Ricordatevi di aprire la porta 25 sul vostro firewall se ne state usando uno, altrimenti non potrete ricevere posta dall'esterno:
Ricordatevi di aprire la porta 25 sul vostro firewall se ne state usando uno, altrimenti non potrete ricevere posta dall'esterno:
<pre>
iptables -I INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
</pre>
Aprite il vostro client di posta abituale, la vostra webmail preferita (o chiedete a qualche amico collegato a internet di farlo, così vedete se la posta arriva anche da fuori) e mandate un'email a <code>nomeutente1@tuo.dominio.com</code>. Se tutto va bene dentro a <code>/home/utenteposta/nomeutente1/new/</code> trovate i files di testo corrispondenti a ciascuna email.


''iptables -I INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT''
=== Creazione DB utenze ===
 
Come prima, dobbiamo creare il database degli utenti. Oltre a indicare chi si può loggare a IMAP, e guardare la posta, dobbiamo dirgli con quale password e qual è la sua posta. Per fare questo creiamo un file, di tipo database GDBM o DB, che si chiama <code>/etc/courier/userdb</code>:
Aprite il vostro client di posta abituale, la vostra webmail preferita (o chiedete a qualche amico collegato a internet di farlo, così vedete se la posta arriva anche da fuori) e mandate un'email a nomeutente1@tuo.dominio.com. Se tutto va bene dentro a /home/utenteposta/nomeutente1/new/ trovate i files di testo corrispondenti a ciascuna email.
<pre>
 
# touch /etc/courier/userdb
 
# chmod 600 /etc/courier/userdb
 
# chown root:root /etc/courier/userdb
 
</pre>
=== CREAZIONE DATABASE UTENTE ===
Notate che non deve avere permessi alcuni per gli appartenenti del gruppo o per gli altri. Ora recuperiamo l'UID e il GID dell'utente utenteposta, andando a leggere <code>/etc/passwd</code>
 
<pre>
 
$ grep utenteposta /etc/passwd
Come prima, dobbiamo creare il database degli utenti. Oltre a indicare chi si può loggare a imap, e guardare la posta, dobbiamo dirgli con quale password e qual è la sua posta. Per fare questo creiamo un file, di tipo database GDBM o DB, che si chiama ''/etc/courier/userdb'':
 
''touch /etc/courier/userdb
chmod 600 /etc/courier/userdb
chown root:root /etc/courier/userdb''
 
Notate che non deve avere permessi alcuni per gli appartenenti del gruppo o per gli altri. Ora recuperiamo l'UID e il GID dell'utente utenteposta, andando a leggere ''/etc/passwd''
 
''grep utenteposta /etc/passwd
 
utenteposta:x:107:65534::/home/utenteposta:/bin/bash''


utenteposta:x:107:65534::/home/utenteposta:/bin/bash
</pre>
Bene, ora possiamo cominciare a inserire a mano i vari utenti. Usiamo un programma del pacchetto courier, che si chiama userdb.
Bene, ora possiamo cominciare a inserire a mano i vari utenti. Usiamo un programma del pacchetto courier, che si chiama userdb.
 
<pre>
''userdb "john@example.com" set home=/home/utenteposta/ mail=/home/utenteposta/.Maildir/ uid=107 gid=65534''
# userdb "john@example.com" set home=/home/utenteposta/ mail=/home/utenteposta/.Maildir/ uid=107 gid=65534
 
</pre>
Ripetiamo l'operazione per ogni utente.  
Ripetiamo l'operazione per ogni utente.  


Manca da inserire la password, però: lo facciamo con un altro programma che si chiama userdbpw, che ci chiede la password criptandola in md5sum:
Manca da inserire la password, però: lo facciamo con un altro programma che si chiama userdbpw, che ci chiede la password criptandola in md5sum:
 
<pre>
''userdbpw -md5 | userdb "john@example.com" set imappw''
# userdbpw -md5 | userdb "john@example.com" set imappw
 
</pre>
Ci chiederà di inserire la password due volte, senza farci vedere l'echo sul terminale, e la inserirà nel file userdb.
Ci chiederà di inserire la password due volte, senza farci vedere l'echo sul terminale, e la inserirà nel file userdb.
   
   
Riga 316: Riga 325:


Compiliamo il database con il comando
Compiliamo il database con il comando
<pre>
# makeuserdb
</pre>
che creerà due file: <code>userdb.dat</code> contenente le informazioni tranne le password e <code>userdbshadow.dat</code> che conterrà le password.


''makeuserdb''
L'ultima cosa da fare abilitare l'uso di userdb: aprite il file <code>/etc/courier/authdaemonrc</code> e modificate:
 
<pre>
che creerà due file: ''userdb.dat'' contenente le informazioni tranne le password e 'userdbshadow.dat' che conterrà le password.
  authmodulelist="authpam"  
 
</pre>
L'ultima cosa da fare abilitare l'uso di userdb: aprite il file ''/etc/courier/authdaemonrc'' e modificate:
in:
 
<pre>
  ''authmodulelist="authpam"''
  authmodulelist="authuserdb"
 
</pre>
in
 
  ''authmodulelist="authuserdb"''
 
Ora possiamo passare a configurare il demone di autenticazione di courier.  
Ora possiamo passare a configurare il demone di autenticazione di courier.  


Esso verrà chiamato ogni volta che qualcuno tenta una connessione. Il suo file di configurazione si chiama ''/etc/courier/authdaemonrc'' ed è molto ben commentato... l'unica opzione da cambiare è 'authmodulelist'.  
Esso verrà chiamato ogni volta che qualcuno tenta una connessione. Il suo file di configurazione si chiama <code>/etc/courier/authdaemonrc</code> ed è molto ben commentato, l'unica opzione da cambiare è <code>authmodulelist</code>.  


Qua indichiamo quale o quali moduli di autenticazione verranno usati, ovvero in che modo il demone deve recuperare la lista degli utenti e delle password.  
Qua indichiamo quale o quali moduli di autenticazione verranno usati, ovvero in che modo il demone deve recuperare la lista degli utenti e delle password.  


Dal momento che abbiamo preparato un database DB, carichiamo il modulo authuserdb. Ora che abbiamo sistemato la parte di autenticazione, possiamo far partire il demone che se ne occupa, quindi:
Dal momento che abbiamo preparato un database DB, carichiamo il modulo <code>authuserdb</code>. Ora che abbiamo sistemato la parte di autenticazione, possiamo far partire il demone che se ne occupa, quindi:
 
<pre>
''/etc/init.d/courier-authdaemon start''
# /etc/init.d/courier-authdaemon start
 
</pre>
Il file di configurazione di courier-imap si chiama ''/etc/courier/imapd''. Contiene già tutto quello che serve al demone per funzionare, quindi non lo modificheremo. L'unica opzione che val la pena guardare è ''ADDRESS'': essa indica quali indirizzi deve ascoltare.  
Il file di configurazione di courier-imap si chiama <code>/etc/courier/imapd</code>. Contiene già tutto quello che serve al demone per funzionare, quindi non lo modificheremo. L'unica opzione che val la pena guardare è <code>ADDRESS</code>: essa indica quali indirizzi deve ascoltare.  
 
Non so come inserire un range di indirizzi, quindi lasciamo 0 (prego qualcuno che lo sa di spiegarlo). Avviamo quindi il servizio.
 
''/etc/init.d/courier-imap start''
 
== FETCHMAIL ==
 
 


Non so come inserire un range di indirizzi, quindi lasciamo <code>0</code> (prego qualcuno che lo sa di spiegarlo). Avviamo quindi il servizio.
<pre>
# /etc/init.d/courier-imap start
</pre>
== Fetchmail ==
Fetchmail è un programma che diventa molto comodo quando si hanno altre caselle di posta e si vuole concentrare tutto su una.  
Fetchmail è un programma che diventa molto comodo quando si hanno altre caselle di posta e si vuole concentrare tutto su una.  


Ha due modalità di funzionamento, come demone e come normale programma ma noi lo useremo come demone per controllare ad intervalli profissati la presenza di posta.  
Ha due modalità di funzionamento, come demone e come normale programma ma noi lo useremo come demone per controllare ad intervalli prefissati la presenza di posta.  


Se c'è verrà scaricata e inoltrata al nostro server che provvederà a smistarla e a recapitarla nella casella locale.  
Se c'è, verrà scaricata e inoltrata al nostro server che provvederà a smistarla e a recapitarla nella casella locale.  


Procediamo ad installarlo:
Procediamo ad installarlo:
<pre>
# apt-get install fetchmail
</pre>
Il file di configurazione lo dobbiamo creare in <code>/etc</code>, si chiamerà <code>fetchmailrc</code>.
<pre>
# touch /etc/fetchmailrc
# chown fetchmail /etc/fetchmailrc
# chmod 600 /etc/fetchmailrc''
</pre>
La cosa più semplice da fare è un copia/incolla di questo file di esempio, che comunque è quello che uso io nel mio server.


''apt-get install fetchmail''
Nei commenti c'è la spiegazione delle impostazioni (<code>man fetchmailrc</code> per informazioni ulteriori).
 
<pre>
Il file di configurazione lo dobbiamo creare in /etc, si chiamerà ''fetchmailrc''.
  # Intervallo di tempo che passa fra ogni controllo. 300 secondi = 5 minuti
 
''touch /etc/fetchmailrc
chown fetchmail /etc/fetchmailrc
chmod 600 /etc/fetchmailrc''
 
La cosa più semplice da fare è un copia/incolla di questo file di esempio, che cmq è quello che uso io nel mio server.
 
Nei commenti c'è la spiegazione delle impostazioni (man fetchmailrc per informazioni ulteriori).
 
  ''# Intervallo di tempo che passa fra ogni controllo. 300 secondi = 5 minuti
  # 180 = 3 minuti
  # 180 = 3 minuti
  #
  #
Riga 375: Riga 381:
  # Il log delle operazioni viene fatto tramite syslog
  # Il log delle operazioni viene fatto tramite syslog
  set syslog
  set syslog
  # Utente a cui va a finire la posta se non ce ne sono altri disponibili
  # Utente a cui viene recapitata la posta se non ce ne sono altri disponibili
  #
  #
  set postmaster "discarica@example.com"
  set postmaster "discarica@example.com"
  # Evita di perdere le mail se succede un essore 4xx. Dall'altro lato,
  # Evita di perdere le mail se succede un errore 4xx. Dall'altro lato,
  # però, gli errori 5xx diventano più pericolosi
  # però, gli errori 5xx diventano più pericolosi
  #
  #
Riga 395: Riga 401:
  #
  #
  tracepolls
  tracepolls
  # Usa pop3 come protocollo di default
  # Usa POP3 come protocollo di default
  #
  #
  protocol POP3
  protocol POP3
Riga 410: Riga 416:
  # Caselle di posta da controllare
  # Caselle di posta da controllare
  #
  #
  poll mail.provider.it
  poll mail.provider.it proto pop3
  username "user" password "pass"
  username "user" password "pass"
  is "john@example.com" here
  is "john@example.com" here
Riga 416: Riga 422:
  poll in.virgilio.it timeout 60 with protocol imap
  poll in.virgilio.it timeout 60 with protocol imap
  username "utente" there with password "xyzxyz"  
  username "utente" there with password "xyzxyz"  
  is "nomeutentex@example.com" here options keep''
  is "nomeutentex@example.com" here options keep
 
</pre>


Come potete vedere la sinstassi del poll è molto varia. Nel primo esempio abbiamo una casella di posta che verrà controllata e le email che contiene verranno girate all'utente locale john@example.com. Nel secondo esempio vediamo la possibilità di aggiungere altre opzioni, ad esempio un timeout oltre al quale fetchmail desiste dal contattare un server, oppure indicare esplicitamente un protocollo, e infine la possibilità di lasciare le email nel server (keep).
Come potete vedere la sintassi del poll è molto varia. Nel primo esempio abbiamo una casella di posta che verrà controllata e le email che contiene verranno girate all'utente locale <code>john@example.com</code>. Nel secondo esempio vediamo la possibilità di aggiungere altre opzioni, ad esempio un timeout oltre al quale fetchmail desiste dal contattare un server, oppure indicare esplicitamente un protocollo, e infine la possibilità di lasciare le email nel server (keep).


Ce ne sono molte altre, la cosa migliore da fare è leggere le pagine di manuale.
Ce ne sono molte altre, la cosa migliore da fare è leggere le pagine di manuale.


La configurazione di fetchmail si esaurisce qui. Facciamo partire il servizio:
La configurazione di fetchmail si esaurisce qui. Facciamo partire il servizio:
<pre>
# /etc/init.d/fetchmail start
</pre>
andando a modificare anche in <code>/etc/default/fetchmail</code> mettendo:
<pre>
start_daemon=yes
</pre>


''/etc/init.d/fetchmail start''
Adesso bisogna aggiungere alla configurazione di procmail 3 righe per dirgli dove mettere le email che sono state spedite all'utente <code>utente@virgilio.it</code>, altrimenti le scarterà. Per fare questo andiamo ad editare il file che descrive gli utenti di procmail, <code>/home/utenteposta/.pm/utenti.rc</code>, e aggiungiamo:
 
<pre>
andando a modificare anche in ''/etc/default/fetchmail''
  :0:
 
mettendo :
 
''Italic text''start_daemon=yes
 
 
Adesso bisogna aggiungere alla configurazione di procmail 3 righe per dirgli dove mettere le email che sono state spedite all'utente "utente@virgilio.it", altrimenti le scarterà. Per fare questo andiamo ad editare il file che descrive gli utenti di procmail, ''/home/utenteposta/.pm/utenti.rc'', e aggiungiamo:
 
  '':0:


  * ^TO_utente@virgilio.it
  * ^TO_utente@virgilio.it


  nomeutentex/Maildir/`$FORMAIL -rt -xMessage-Id:`''
  nomeutentex/Maildir/`$FORMAIL -rt -xMessage-Id:`
 
</pre>
In questo modo le mail prelevate da quella casella di posta saranno recapitate nella casella locale dell'utente nomeutentex. Le modifiche a questo file si possono fare al volo senza riavviare procmail, e verranno prese immediatamente.
In questo modo le mail prelevate da quella casella di posta saranno recapitate nella casella locale dell'utente nomeutentex. Le modifiche a questo file si possono fare al volo senza riavviare procmail, e verranno recepite immediatamente.
 
 
== MAILSCANNER SPAMASSASSIN CLAMAV AMAVISD-NEW RAZOR ==
 
 
 
a questo punto installiamo con :
 
''apt-get install mailscanner spamassassin clamav razor amavisd-new(opzionale)''


== Mailscanner Spamassasin ClamAV  Razor ==
A questo punto installiamo con:
<pre>
# apt-get install mailscanner spamassassin clamav razor </pre>


=== Spamassassin ===
=== Spamassassin ===


Riguardo la configurazione di spamassassin io ho usato webmin, anche se non c'è molto da fare.


Riguardo la configurazione di spamassassin io ho usato webmin ,anche se non c'è molto da fare .  
Per settaggi particolari di spamassassin vi consiglio di dare un'occhiata al file <code>/etc/spamassassin/local.cf</code> oppure consultare il sito web http://www.yrex.com/spam/spamconfig.php che vi consente di creare un file di configurazione personalizzato rispondendo alle varie domande.


Per settaggi particolari di spamassassin vi consiglio di dare un'occhiata al file ''/etc/spamassassin/local.cf'' oppure consultare il sito web http://www.yrex.com/spam/spamconfig.php che vi consente di creare un file di configurazione personalizzato rispondendo alle varie domande.
Abilitiamo spamassassin modificando in <code>/etc/default/spamassassin</code>
<pre>
ENABLE=1
</pre>


abilitiamo spamassassin modificando in ''/etc/default/spamassassin''
=== Clamav ===
''ENABLE=1''


Fa tutto da solo.


=== clamav ===
=== Mailscanner ===


{{ Warningbox |


fa tutto da solo
Per motivi di sicurezza la versione di mailscanner nei repo Lenny è stata rimossa


prelevare la versione aggiornata da lenny-backports


per maggiori informazioni sull'installazione consultare [http://wp.me/pr97u-ry questa guida] }}


=== mailscanner ===
Stop Postfix usando il comando:
<pre>
# /etc/init.d/postfix stop
</pre>
Nel file di configurazione di Postfix <code>/etc/postfix/main.cf</code> aggiungete questa linea:
<pre>
header_checks = regexp:/etc/postfix/header_checks
</pre>
create il file:
<pre>
# touch /etc/postfix/header_checks
# chmod 644 /etc/postfix/header_checks
</pre>
adesso inserite dentro al file creato la seguente linea:
<pre>
/^Received:/ HOLD
</pre>
Nel vostro <code>MailScanner.conf</code> file (probabilmente in <code>/etc/MailScanner</code>), avrete 5 settaggi da modificare:
<pre>
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
# per avere i rapporti in italiano
%report-dir% = /etc/MailScanner/reports/it
</pre>
Commentare anche l'ultima riga se non si hanno configurazioni particolari
#include /etc/MailScanner/conf.d/* 
Dovrete anche essere sicuri che postfix possa scrivere in alcune cartelle, andremo ora a modificare i permessi:
<pre>
# chown postfix.postfix /var/spool/MailScanner/incoming
# chown postfix.postfix /var/spool/MailScanner/quarantine
# chown postfix.postfix /var/run/mailscanner
# chown postfix.postfix /var/spool/MailScanner/
# chown postfix.postfix /var/lib/Mailscanner/
# chown postfix.postfix /var/lock/subsys/Mailscanner/
</pre>
Prima di avviare tutto abilitiamo mailscanner, in /etc/default/mailscanner decommentare :
# Uncomment this line once MailScanner has been fully configured.
#
run_mailscanner=1
A questo punto lanciamo i servizi:
<pre>
# /etc/rc.d/init.d/
# ./postfix start
# ./mailscanner start
</pre>
Al termine decommentare in /etc/default/mailscanner come indicato.
<pre># Uncomment this line once MailScanner has been fully configured.                                                         
#                                                                                                                         
run_mailscanner=1 </pre>


{{Warningbox|In una recente installazione in Squeeze ho rilevato l'errore:
<pre>Configuration: Failed to find any configuration files like /etc/MailScanner/conf.d/*,
skipping them. at /usr/share/MailScanner//MailScanner/Config.pm line 2020</pre>
Per risolvere il primo problema citato, basta commentare l’ultima riga del file Mailscanner.conf.


dalla guida http://www.mailscanner.info/postfix.html
Questa nuova riga è stata aggiunta in questa recente versione e visto che non ho configurazioni particolari
( la dir ''/etc/MailScanner/conf.d/'' risulta vuota) commentandola l’errore cessa di esistere.}}


Stop Postfix usando il comando
== Client IMAP4 ==


' '/etc/init.d/postfix stop''
Dopo aver aperto la porta IMAP 143 potete usare il client di posta che più vi aggrada, da Thunderbird su Windows a Evolution su Linux, purchè supporti il protocollo IMAP.


Nel file di configuratione di Postfix ''/etc/postfix/main.cf'' aggiungete questa linea:
Per configurarlo inserite nelle configurazione le coordinate del server per la posta, nome utente e password.


''header_checks = regexp:/etc/postfix/header_checks''
Unico difetto per ora riscontrato nella configurazione è che per poter inviare la posta in locale dovrete usare:
 
<pre>
create il file
  nomeutente@nomeserver.nomedominio
 
</pre>
''touch /etc/postfix/header_checks''
esempio:
''chmod 644 /etc/postfix/header_checks''
<pre>
 
  prova@server.pasticcio.it
adesso inserite dentro al file creato la segunete linea
</pre>
 
nel caso la mail abbia utenti interni ed esterni, un ''reply to all'' da parte del destinatario porterebbe le mail a indirizzi inesistenti.
''/^Received:/ HOLD''
 
Nel vostro MailScanner.conf file (probabilmente in /etc/MailScanner), avrete 5 settaggi da modificare
 
''Run As User = postfix''
''Run As Group = postfix''
''Incoming Queue Dir = /var/spool/postfix/hold''
''Outgoing Queue Dir = /var/spool/postfix/incoming''
''MTA = postfix''
''# per avere i rapporti in italiano''
''%report-dir% = /etc/MailScanner/reports/it''
 
 
 
Dovrete anche essere sicuri che postfix possa scrivere in
 
''chown postfix.postfix /var/spool/MailScanner/incoming''
''chown postfix.postfix /var/spool/MailScanner/quarantine''
''chown postfix.postfix /var/run/mailscanner''
''chown postfix.postfix /var/spool/MailScanner/''
''chown postfix.postfix /var/lib/Mailscanner/''
''chown postfix.postfix /var/lock/subsys/Mailscanner/''
 
 
 
A questo punto rilanciamo i servizi
 
''/etc/rc.d/init.d/''
''./postfix restart''
''./mailscanner restart''
 
 
 
== CLIENT IMAP ==
 
 
 
potete usare il client che piu vi aggrada, da thunderbir su win o evolution su linux
 
Per poter inviare la posta in locale dovrete usare :
 
  ''nomeutente@nomeserver.nomedominio''
 
esempio
 
  ''prova@server.pasticcio.it''
 
 
 
== WEBMAIL ==


Nel mio utilizzo gli indirizzi ''nomeutente@nomeserver.nomedominio'' vengono usati per la sola posta interna perchè non escono dal sever ma dopo l'invio vengono subito dirottati all'utente.


Dovete avere i servizi ''apache2 , mysql , php4 o php5''
== Webmail ==


A questo punto per rendere più sicuro il sistema ho preferito non aprire la porta 143 (IMAP)
Alternativa al client IMAP è portare la posta su una pagina web facilmente consultabile da qualsiasi postazione senza dover configurare per forza un programma.


Io subito ho installato ilohamail , disponibile come pacchetto che si installa con apt-get ma io ho scelto di installarlo manualmete , dato che avevo avuto problemi con la configurazione , ho copiato l'intero contenuto del file tar.gz nella cartella HTML
Per fare questo il server deve avere i servizi ''apache2'', ''mysql'', ''php4'' o ''php5''abilitati e configurati correttamente.


Dopo le giuste configurazioni indirizzate il vostro browser su http://vostrosito/cartella ilohamail
A questo punto per rendere più sicuro il sistema ho preferito mantenere chiusa la porta 143 (IMAP).


dovreste vedere la finestra iniziale di accesso.
In passato ho usato <code>ilohamail</code>, disponibile come pacchetto che si installa con apt-get anche se io io ho preferito installarlo manualmente, dato che avevo avuto problemi con la configurazione, ho copiato l'intero contenuto del file tar.gz nella cartella ''/www''.


Ma dato che Ilohamail mi sembra un progetto abbandonato da qualche annetto ho preferito passare a altro
Dopo le giuste configurazioni indirizzate il vostro browser su ''http://vostrosito/dir_ilohamail'', dovreste vedere la finestra iniziale di accesso.


Esistono altri programmi come http://openwebmail.org/ e altri ancora , questa è una vostra scelta
Ma dato che Ilohamail pare abbandonato da qualche annetto ho preferito passare ad altro.


Adesso sto sando group office che sembra essere il migliore in circolazione.
Esistono altri programmi come http://openwebmail.org/ e altri ancora, questa è una vostra scelta.


Ottimo il servizio di posta con IMAP , una vera suite per ufficio con calendario , rubrica con vcard ,
Adesso sto usando ''group office'' che mi è sembrato per le mie esigenze il più adatto.
gestione progetti , note e altro ancora il tutto collegato da un database mysql, davvero un bel prodotto .


L'installazione è semplice , basta seguire le informazioni all'interno del file .
Ottimo il servizio di posta con IMAP, una vera suite per ufficio con calendario, rubrica con vcard, spazio file, note e altro ancora il tutto collegato da un database MySQL in grado di collegare molti dati.


Si scompatta nella cartella web e in pochi passi sarete sbaloditi dalla grafica e dalla velocità.
L'installazione è semplice, basta seguire le informazioni all'interno del file.


il sito è -http://www.group-office.com/  ma quasta è la versione full a pagamento ,la potete provare in versione demo on-line visitando il sito ,ma  esiste anche una versione sviluppata dalla comunità.
Si scompatta nella cartella web e in pochi passi sarete sbalorditi dalla grafica e dalla velocità.


il forum della versione free -http://www.group-office.com/forum/
Il sito ufficiale è http://www.group-office.com/ e propone una versione full a pagamento,che potete provare in versione demo on-line visitando il sito, ma  esiste anche una versione sviluppata dalla comunità, gratuita con alcune limitazioni che non compromettono l'uso della posta.


qui potete scaricarlo scaricarlo -http://sourceforge.net/projects/group-office/
Il forum della versione free si trova all'indirizzo: http://www.group-office.com/forum/ mentre [http://sourceforge.net/projects/group-office/ qui] potete scaricarlo.


Questa come soluzione mi è sembrata più elegante e completa a confronto del client di posta
Questa come soluzione mi è sembrata più elegante e completa a confronto del client di posta.


{{Autori
|Autore = [[Utente:Mm-barabba|Mm-barabba]] 09:16, 3 Apr 2008 (CDT)
}}


--[[Utente:Mm-barabba|Mm-barabba]] 09:16, 3 Apr 2008 (CDT)


[[Categoria:Server]]
[[Categoria:Mail server]]

Versione attuale delle 17:33, 16 dic 2015

Edit-clear-history.png 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.


Debian-swirl.png Versioni Compatibili

Debian 5 "lenny"
Debian 6 "squeeze"
Debian 7 "wheezy"
Debian 8 "jessie"

Introduzione

L'idea è quella di avere una connessione permanente ad Internet che può ricevere posta dall'esterno e gestire la posta interna alla Lan, quindi, a meno che non abbiate già un dominio, per prima cosa sarà necessario andare su http://www.dyndns.org o un servizio analogo(ad esempio http://www.no-ip.com), registrarsi, scegliersi un dominio (mandare le email a utente@123.231.201.178 non è proprio comodissimo, soprattutto quando il giorno dopo il numero cambia) e associarlo al proprio indirizzo IP. Se avete un IP dinamico, installate sul vostro computer un programmino come ddclient (basta installarlo con apt-get e rispondere alle domande) che aggiorna automaticamente l'indirizzo IP associato al dominio ogni volta che vi collegate.

Postfix

Cominciamo con un server MTA, Mail Transport Agent, che riceve la posta (è quello che tiene aperta la porta 25 SMTP in ricezione, per intenderci). Si può scegliere tra exim, postfix, sendmail, qmail e altri. Scegliamo postfix perché è un buon compromesso in quanto a prestazioni, compatibilità, flessibilità, sicurezza. Per installarlo diamo il solito:

# apt-get install postfix

Installandolo verrà automaticamente rimosso un altro eventuale MTA già installato con apt, probabilmente exim o exim4 che è quello di default su Debian.

Debconf pone delle domande quando si installa postfix. Grazie a queste possiamo avere un server di posta già praticamente pronto, molto semplice certo, ma funzionante.

Diamo una spiegazione delle varie schermate.

Nella prima vi informa delle scelte possibili: sono previste varie configurazioni; noi sceglieremo Internet site using smarthost, che in pratica consiste nell'avere un server che riceve posta e che la invia tutta ad un altro server (quello fornito dal nostro ISP per esempio). Premete ok per passare alla prossima schermata.

Nella schermata successiva scegliamo "Internet with smarthost".

  • Mail name: sarà quello che appare dopo la chiocciola nell'indirizzo di posta. Ovviamente deve essere il nome valido del vostro server, dal momento che chi vi risponderà vi manderà la posta a quell'indirizzo.
  • SMTP relay host: qui indichiamo il server di posta a cui facciamo il relay. In parole semplici, quando inviamo una mail al nostro server, esso la spedirà a questo relay che poi la recapiterà. È necessario dato che molti bloccano l'arrivo di email da IP non ritenuti affidabili.
  • Other destinations to accept mail for: indirizzi che identificano questo server. Quando gli arriva una mail con questa destinazione, capirà che è lui il destinatario. Qua mettete il vostro nome di dominio.
  • Local networks: quali reti sono abilitate a spedire mail. Non mettendo nulla postfix inserirà tutte le reti connesse. Meglio inserire a mano localhost (127.0.0.0/8) e la nostra LAN (192.168.1.0/24) nel caso la nostra LAN sia 192.168.1.xxx.
  • Use procmail for local delivery: rispondete SÌ, dato che useremo procmail.
  • Mailbox size limit: dimensione massima della casella di posta. 0 significa illimitata. Impostatela a vostro piacimento.
  • message_size_limit: dimensione massima per gli allegati , se associate la posta a una web-app occorre impostare in /etc/php5/php.ini :

post_max_size = xxM

upload_max_filesize = xxM

dove xx corrisponde al valore in bytes inserito in message_size_limit

  • Where should mail for root go: questa imposta un alias per l'utente root, dato che non può ricevere posta. Tutto quello che è indirizzato a lui andrà nella casella di un altro utente, non root, che sceglierete voi.

In particolare attenzione a mettere /24 in "local networks" e non /255 o altre robe strane che possono venirvi in mente. Se non sapete cosa vuol dire quel /24, tenete /24. Se sapete cosa vuol dire, non avete bisogno di spiegazioni.

Non preoccupatevi se vi sembra che "local networks" specifichi a postfix di ricevere posta solo da quei computer, in realtà dice a postfix di fare RELAY solo per la posta che arriva da quei computer, la posta che arriverà da internet la riceve lo stesso.

A questo punto dobbiamo fare solo dei piccoli ritocchi. Editiamo dunque il file di configurazione principale che si chiama /etc/postfix/main.cf. Le voci da sistemare sono:

myhostname: controlliamo che ci sia il nome giusto. Vedi /etc/hostname

Poi in /etc/aliases come da esempio giriamo tutti i messaggi di sistema all'utente se vogliamo ricevere tutto noi esempio:

 haldaemon: root
 mail: root
 news: root
 proftpd: root
 sync: root
 root: nomeutente

nomeutenteX è quello che verrà usato da chi vorrà inviare posta, ad esempio all'indirizzo nomeutente1@tuo.dominio.org. Si possono creare utenze che puntano ad altre utenze, ad esempio: root che punta a utente1, e utente1 che punta ad utenteposta. Il vero e proprio database di postfix si chiama /etc/aliases.db, che non va editato a mano. Per sincronizzarlo con le nostre modifiche, lanciamo il comando newaliases:

# newaliases

che non restituisce alcun output se tutto va bene. Nel caso vi spari fuori qualcosa tipo duplicate entry:, editate di nuovo /etc/aliases, eliminate il duplicato ed eseguite di nuovo il comando newaliases. Tenete presente che non è necessario che siano associati direttamente agli utenti di sistema normali.


Questo esempio riporta in parte la configurazione di /etc/postfix/main.cf :

 # appending .domain is the MUA's job.
 append_dot_mydomain = no
 # Uncomment the next line to generate "delayed mail" warnings
 # delay_warning_time = 4h
 mydomain = nomeserver
 myhostname = nomeserver.nomedominio.it
 alias_maps = hash:/etc/aliases
 alias_database = hash:/etc/aliases
 mydestination = nomeserver, localhost.localdomain, localhost, nomeserver.nomedominio.it
 myorigin = $mydomain
 relayhost = out.virgilio.it
 relay_domains = $mydestination
 mynetworks = 127.0.0.0/8 192.168.0.0/24
 mailbox_command = procmail -a "$EXTENSION"
 mailbox_size_limit = 0
 # Size limit attachment in bytes : in esempio 20MB
 message_size_limit = 20480000
 recipient_delimiter = +
 inet_interfaces = all
 disable_dns_lookups = yes
 sender_canonical_maps = hash:/etc/postfix/sender_canonical
 smtp_generic_maps = hash:/etc/postfix/generic
 # aggiunta per mailscanner, decommentare dopo averlo installato
 # header_checks = regexp:/etc/postfix/header_checks
 # decommentare dopo l'installazione di spamassassin 
 # mailbox_command = /usr/bin/spamc | procmail -a "&SENDER &RECIPIENT $EXTENSION"

Le due parti aggiunte, lasciatele commentate fino alla fine altrimenti senza aver installato procmail, vi daranno errori.

Ora create i file per far corrispondere i vostri indirizzi email ai vostri utenti locali. Si tratta dei file /etc/postfix/sender_canonical (che contiene gli indirizzi che verranno inseriti nel campo from per ogni utente al posto di utente@vostra.macchina) .

Questo è un esempio /etc/postfix/sender_canonical:

 root root@myserver.it
 gino gino.pioli@myserver.it
 www-data security@myserver.it
 utente1 pierino@myserver.it

se modificate il file /etc/postfix/sender_canonical date:

# postmap /etc/postfix/sender_canonical

Secondo l'attuale configurazione se si vuole mandare una mail a un'utente all'interno del server è possibile usare l'indirizzo utente@nomeserver.nomedominio.it , in questo modo le mail verranno girate internamente senza uscire da SMTP.

Potrebbe essere necessario riscrivere l'indirizzo di invio , per esempio si potrebbe inviare localmente da :

dbsupport@thisdomain.com
helpdesk@thisdomain.com

e voler uscire con

admins@thatdomain.com

in questo caso si possono inserire in /etc/postfix/sender_canonical alcune espressioni regolari come ad esempio

/^(.*@box1[.])thisdomain[.]com$/ ${1}thatdomain.com
/^(.*@)box1[.]thisdomain[.]com$/ ${1}box2.thatdomain.com
/^(.*)thisdomain[.]com$/ ${1}thatdomain.com

per testare il corretto funzionamento senza aggiornare sender_canonical.db e senza riavviare postfix usare il comando :

postmap -q "fubar@box1.thisdomain.com" regexp:/etc/postfix/sender_canonical

l'output ci mostrerà se quanto scritto funziona

Il problema sorge se la mail ha diversi destinatari con indirizzi interni ed esterni , infatti l'indirizzo esterno che riceverà la mail si trovera l'indirizzo user@nomeserver.nomedominio.it al quale non potrà rispondere.

In questo caso andremo a riscrivere l'indirizzo in modo corretto usando /etc/postfix/generic , in cui scriveremo :

@nomeserver.nomedominio.it @nomedominio.it

aggiorniamo

#postmap  /etc/postfix/generic

nel caso vengano fatte modifiche ai file indicati occorre aggirornarli con il comando :

postmap  /etc/postfix/nome_file

Per terminare riavviare postfix per sicurezza

#/etc/init.d/postfix restart

Ora da un utente a vostra scelta provate a verificare se il server funziona.

Dovete avere installato mailutils , altrimenti

# apt-get install mailutils

con il comando mail esempio:

 ''nomeuser@nomeserver:~$ mail root
 (invio)

 Subject: test
 (invio)
 prova
 (ctrl-D)
 Cc: www-data
 (invio)
 nomeuser@nomeserver:~$

potete inviare anche le mail verso indirizzi esterni.

Se vi arrivano vuol dire che tutto funziona.

Procmail

In questa guida ho preferito una configurazione in un unico file, intanto perché per me è stata più semplice da gestire e poi perché il lavoro che dovevo svolgere io era semplice. Quindi se non volete complicarvi la vita fate come ho fatto io, altrimenti leggetevi qualche guida e potrete capire un po' meglio.

Postfix così sarebbe a posto, ma non possiamo ancora fare una prova, perché manca procmail, un programma che smista la posta.

Postfix ne potrebbe anche fare a meno, ma con procmail si possono fare cose più belle, per esempio filtrare la posta mettendola in varie directory a seconda dell'user (fittizio) o a seconda della sorgente (vedi mailing list).

Quindi installiamolo.

# apt-get install procmail

Il suo file di configurazione va messo nella home dell'utente per la posta, ovvero "utenteposta". Creiamolo con i giusti permessi:

$ touch /home/utenteposta/.procmailrc
$ chmod 600 /home/utenteposta/.procmailrc
$ chown utenteposta:usergroup /home/utenteposta/.procmailrc

A questo punto occorre decidere come farlo, infatti in base alle proprie esigenze e alla complessità del file è possibile seguire due tipi di configurazione del file.

C'è chi crea più file per filtri vari, diversi utenti e altro che poi fanno riferimento al file principale; oppure chi mette tutti i comandi in un unico file.

Per me la scelta del file unico è stata migliore dato che è molto semplice e in un solo file ho tutta la configurazione di procmail.

Quello sotto è un esempio del mio file:

 # ~/.procmailrc
 SHELL=/bin/sh
 #log
 VERBOSE = yes # impostare a no dopo il debug
 LOGABSTRACT = all # produce log MOLTO estesi, impostare a no in seguito
 FORMAIL=/usr/bin/formail # path di formail, usato per processare alcune email
 SENDMAIL=/usr/sbin/sendmail # path di sendmail
 # File di log
 #se tutto funziona dopo un po' potete commentarlo
 LOGFILE=${HOME}/procmail.log
 # Directory della posta
 MAILDIR=${HOME}"/.Maildir"
 # Cartella di default. Notare lo slash (/) alla fine che indica a Procmail
 # di trattare la cartella in formato Maildir (compatibile con il server IMAP
 # che configureremo) e non Mbox !!!
 DEFAULT=${MAILDIR}/
 YEAR=`date +%Y`
 MONTH=`date +%m`
 ## SPAMASSASSIN ##
 ## Prima di consegnare le mail, le filtriamo tutte con spamassassin
 ## dato che il controllo viene effettuato da mailscanner con spamassassin
 ## le due righe qui sotto sono commentate per non fare un doppio controllo
 #:0fw:
 #| spamassassin
 # Poi salviamo lo spam in una cartella a parte denominata Spam/
 # Lo spam identificato da un controllo negli header sul campo
 # X-Spam-Status aggiunto da spamassassin quando la mail viene analizzata
 :0:
 * ^X-Spam-Status: Yes
 .Spam/
 #utenti
 :0:
 * ^TO_nomeutente@nomedominio.it
 nomeutente/.Maildir/`$FORMAIL -rt -xMessage-Id:`


:0:: marca l'inizio della sezione;

* ^TO_ indica l'indirizzo email completo dell'utente.


La successiva riga indica la directory in cui le mail di quell'utente verranno parcheggiate, e con che formato.

Quindi avremo ad esempio per ogni utente la parte prima indicata e correggeremo solo il finale:

 :0:
 * ^TO_nomeutente1@tuo.dominio.com
 nomeutente1/.Maildir/`$FORMAIL -rt -xMessage-Id:`

 :0:
 * ^TO_nomeutente2@tuo.dominio.com
 nomeutente2/.Maildir/`$FORMAIL -rt -xMessage-Id:`

eccetera.

Nel caso arrivino mail che non soddisfano i filtri precedentemente applicati nel file di configurazione di procmail possiamo scaricarle in una directory precisa aggiungendo queste 3 righe:

 :0:

 * ^TO_

 nomeutentex/.Maildir/`$FORMAIL -rt -xMessage-Id:`

Precisazione: `$FORMAIL -rt -xMessage-Id:` serve ovviamente per dare un nome al file.

Server IMAP4

Bene, a questo punto abbiamo un sistema pronto, per quanto semplice, che riceve posta e la smista in directory. Non è ancora funzionante perché le directory non gliele abbiamo ancora create, e prima di farlo dobbiamo scegliere un server IMAP o POP da usare, cioè il server a cui gli utenti si collegheranno per leggere la posta col loro client. In teoria potrebbero leggere la posta direttamente dal filesystem, ma non è molto comodo. Abbiamo varie possibilità, fra cui due sono state prese in considerazione e spiegate: 'courier-imap' e 'dovecot'. Entrambi sono server IMAP, che ci consentono di tenere tutta la posta nel server senza scaricarla nel client. Quale scegliere? Beh, quello che preferite. Ovviamente sono già pronti e pacchettizzati in Debian quindi per installarli usiamo, come al solito, apt-get.

# apt-get install courier-imap fam

Notare che con courier installiamo anche fam, File Alteration Monitor. Non è un elemento indispensabile, tuttavia courier è già pronto ad usarlo, permettendo che vari utenti possano condividere delle stesse directory e venir immediatamente avvisati dei cambiamenti. Ora che sono installati (o uno o l'altro) abbiamo a disposizione uno strumento che ci permette di finire il lavoro con procmail, cioè creare le directory organizzate correttamente.

Creazione directory per ogni utente

Creiamo una directory per ogni utente che abbiamo specificato. Entriamo nella directory home dell'utente designato come root per la gestione delle email (/home/utenteposta) e cominciamo.

$ maildirmake.courier /home/utenteposta/.Maildir
$ chown -R utenteposta:usergroup /home/utenteposta/.Maildir

$ maildirmake.courier /home/utenteposta2/.Maildir
$ chown -R utenteposta2:usergroup /home/utenteposta2/.Maildir

Ripetete quelle 2 righe di comando per ogni utente che avete aggiunto al file /etc/aliases, o comunque ogni utente che deve avere una casella di posta distinta.

Notate che impostiamo l'utente di tutto a utenteposta e i permessi a 700, così utenteposta sarà l'unico oltre a root a poter leggere la posta direttamente dal disco.

A questo punto si può già provare a vedere se il server riceve la posta e la mette nel posto giusto.

Ricordatevi di aprire la porta 25 sul vostro firewall se ne state usando uno, altrimenti non potrete ricevere posta dall'esterno:

 iptables -I INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT

Aprite il vostro client di posta abituale, la vostra webmail preferita (o chiedete a qualche amico collegato a internet di farlo, così vedete se la posta arriva anche da fuori) e mandate un'email a nomeutente1@tuo.dominio.com. Se tutto va bene dentro a /home/utenteposta/nomeutente1/new/ trovate i files di testo corrispondenti a ciascuna email.

Creazione DB utenze

Come prima, dobbiamo creare il database degli utenti. Oltre a indicare chi si può loggare a IMAP, e guardare la posta, dobbiamo dirgli con quale password e qual è la sua posta. Per fare questo creiamo un file, di tipo database GDBM o DB, che si chiama /etc/courier/userdb:

# touch /etc/courier/userdb
# chmod 600 /etc/courier/userdb
# chown root:root /etc/courier/userdb

Notate che non deve avere permessi alcuni per gli appartenenti del gruppo o per gli altri. Ora recuperiamo l'UID e il GID dell'utente utenteposta, andando a leggere /etc/passwd

$ grep utenteposta /etc/passwd

 utenteposta:x:107:65534::/home/utenteposta:/bin/bash

Bene, ora possiamo cominciare a inserire a mano i vari utenti. Usiamo un programma del pacchetto courier, che si chiama userdb.

# userdb "john@example.com" set home=/home/utenteposta/ mail=/home/utenteposta/.Maildir/ uid=107 gid=65534

Ripetiamo l'operazione per ogni utente.

Manca da inserire la password, però: lo facciamo con un altro programma che si chiama userdbpw, che ci chiede la password criptandola in md5sum:

# userdbpw -md5 | userdb "john@example.com" set imappw

Ci chiederà di inserire la password due volte, senza farci vedere l'echo sul terminale, e la inserirà nel file userdb.

Notate che in questo modo le password salvate sul disco sono criptate, ma non quelle mandate dal client al server per l'autenticazione.

In quel caso bisogna usare un sistema diverso, di tipo CRAM-MD5 per esempio.

Compiliamo il database con il comando

# makeuserdb

che creerà due file: userdb.dat contenente le informazioni tranne le password e userdbshadow.dat che conterrà le password.

L'ultima cosa da fare abilitare l'uso di userdb: aprite il file /etc/courier/authdaemonrc e modificate:

 authmodulelist="authpam" 

in:

 authmodulelist="authuserdb"

Ora possiamo passare a configurare il demone di autenticazione di courier.

Esso verrà chiamato ogni volta che qualcuno tenta una connessione. Il suo file di configurazione si chiama /etc/courier/authdaemonrc ed è molto ben commentato, l'unica opzione da cambiare è authmodulelist.

Qua indichiamo quale o quali moduli di autenticazione verranno usati, ovvero in che modo il demone deve recuperare la lista degli utenti e delle password.

Dal momento che abbiamo preparato un database DB, carichiamo il modulo authuserdb. Ora che abbiamo sistemato la parte di autenticazione, possiamo far partire il demone che se ne occupa, quindi:

# /etc/init.d/courier-authdaemon start

Il file di configurazione di courier-imap si chiama /etc/courier/imapd. Contiene già tutto quello che serve al demone per funzionare, quindi non lo modificheremo. L'unica opzione che val la pena guardare è ADDRESS: essa indica quali indirizzi deve ascoltare.

Non so come inserire un range di indirizzi, quindi lasciamo 0 (prego qualcuno che lo sa di spiegarlo). Avviamo quindi il servizio.

# /etc/init.d/courier-imap start

Fetchmail

Fetchmail è un programma che diventa molto comodo quando si hanno altre caselle di posta e si vuole concentrare tutto su una.

Ha due modalità di funzionamento, come demone e come normale programma ma noi lo useremo come demone per controllare ad intervalli prefissati la presenza di posta.

Se c'è, verrà scaricata e inoltrata al nostro server che provvederà a smistarla e a recapitarla nella casella locale.

Procediamo ad installarlo:

# apt-get install fetchmail

Il file di configurazione lo dobbiamo creare in /etc, si chiamerà fetchmailrc.

# touch /etc/fetchmailrc
# chown fetchmail /etc/fetchmailrc
# chmod 600 /etc/fetchmailrc''

La cosa più semplice da fare è un copia/incolla di questo file di esempio, che comunque è quello che uso io nel mio server.

Nei commenti c'è la spiegazione delle impostazioni (man fetchmailrc per informazioni ulteriori).

 # Intervallo di tempo che passa fra ogni controllo. 300 secondi = 5 minuti
 # 180 = 3 minuti
 #
 set daemon 300
 # Il log delle operazioni viene fatto tramite syslog
 set syslog
 # Utente a cui viene recapitata la posta se non ce ne sono altri disponibili
 #
 set postmaster "discarica@example.com"
 # Evita di perdere le mail se succede un errore 4xx. Dall'altro lato,
 # però, gli errori 5xx diventano più pericolosi
 #
 set no bouncemail
 # Non manda insulti a chi manda spam
 #
 set no spambounce
 # Ignora le stringhe; potrebbero essere usate da script
 #
 set properties ""
 # I default seguenti sono usati nelle connessioni ai vari server, ma
 # possono venire sovrascritti dalle impostazioni locali
 #
 defaults:
 # Aggiunge un header di debug
 #
 tracepolls
 # Usa POP3 come protocollo di default
 #
 protocol POP3
 # Ignora gli errori antispam di postfix, dato che è molto lontano
 # dalla sicurezza usarli assieme all'opzione bouncemail
 #
 antispam -1
 # Massimo numero di email da forwardare in un colpo
 #
 batchlimit 100
 # Scarica tutte le email, anche quelle marcate come lette
 #
 fetchall
 # Caselle di posta da controllare
 #
 poll mail.provider.it proto pop3
 username "user" password "pass"
 is "john@example.com" here
 #
 poll in.virgilio.it timeout 60 with protocol imap
 username "utente" there with password "xyzxyz" 
 is "nomeutentex@example.com" here options keep

Come potete vedere la sintassi del poll è molto varia. Nel primo esempio abbiamo una casella di posta che verrà controllata e le email che contiene verranno girate all'utente locale john@example.com. Nel secondo esempio vediamo la possibilità di aggiungere altre opzioni, ad esempio un timeout oltre al quale fetchmail desiste dal contattare un server, oppure indicare esplicitamente un protocollo, e infine la possibilità di lasciare le email nel server (keep).

Ce ne sono molte altre, la cosa migliore da fare è leggere le pagine di manuale.

La configurazione di fetchmail si esaurisce qui. Facciamo partire il servizio:

# /etc/init.d/fetchmail start

andando a modificare anche in /etc/default/fetchmail mettendo:

 start_daemon=yes

Adesso bisogna aggiungere alla configurazione di procmail 3 righe per dirgli dove mettere le email che sono state spedite all'utente utente@virgilio.it, altrimenti le scarterà. Per fare questo andiamo ad editare il file che descrive gli utenti di procmail, /home/utenteposta/.pm/utenti.rc, e aggiungiamo:

 :0:

 * ^TO_utente@virgilio.it

 nomeutentex/Maildir/`$FORMAIL -rt -xMessage-Id:`

In questo modo le mail prelevate da quella casella di posta saranno recapitate nella casella locale dell'utente nomeutentex. Le modifiche a questo file si possono fare al volo senza riavviare procmail, e verranno recepite immediatamente.

Mailscanner Spamassasin ClamAV Razor

A questo punto installiamo con:

# apt-get install mailscanner spamassassin clamav razor 

Spamassassin

Riguardo la configurazione di spamassassin io ho usato webmin, anche se non c'è molto da fare.

Per settaggi particolari di spamassassin vi consiglio di dare un'occhiata al file /etc/spamassassin/local.cf oppure consultare il sito web http://www.yrex.com/spam/spamconfig.php che vi consente di creare un file di configurazione personalizzato rispondendo alle varie domande.

Abilitiamo spamassassin modificando in /etc/default/spamassassin

 
 ENABLE=1

Clamav

Fa tutto da solo.

Mailscanner

Warning.png ATTENZIONE

Per motivi di sicurezza la versione di mailscanner nei repo Lenny è stata rimossa

prelevare la versione aggiornata da lenny-backports

per maggiori informazioni sull'installazione consultare questa guida


Stop Postfix usando il comando:

# /etc/init.d/postfix stop

Nel file di configurazione di Postfix /etc/postfix/main.cf aggiungete questa linea:

 header_checks = regexp:/etc/postfix/header_checks

create il file:

# touch /etc/postfix/header_checks
# chmod 644 /etc/postfix/header_checks

adesso inserite dentro al file creato la seguente linea:

 /^Received:/ HOLD

Nel vostro MailScanner.conf file (probabilmente in /etc/MailScanner), avrete 5 settaggi da modificare:

 Run As User = postfix
 Run As Group = postfix
 Incoming Queue Dir = /var/spool/postfix/hold
 Outgoing Queue Dir = /var/spool/postfix/incoming
 MTA = postfix
 # per avere i rapporti in italiano
 %report-dir% = /etc/MailScanner/reports/it

Commentare anche l'ultima riga se non si hanno configurazioni particolari

#include /etc/MailScanner/conf.d/*  

Dovrete anche essere sicuri che postfix possa scrivere in alcune cartelle, andremo ora a modificare i permessi:

# chown postfix.postfix /var/spool/MailScanner/incoming
# chown postfix.postfix /var/spool/MailScanner/quarantine
# chown postfix.postfix /var/run/mailscanner
# chown postfix.postfix /var/spool/MailScanner/
# chown postfix.postfix /var/lib/Mailscanner/
# chown postfix.postfix /var/lock/subsys/Mailscanner/

Prima di avviare tutto abilitiamo mailscanner, in /etc/default/mailscanner decommentare :

# Uncomment this line once MailScanner has been fully configured.
#
run_mailscanner=1

A questo punto lanciamo i servizi:

# /etc/rc.d/init.d/
# ./postfix start
# ./mailscanner start

Al termine decommentare in /etc/default/mailscanner come indicato.

# Uncomment this line once MailScanner has been fully configured.                                                           
#                                                                                                                           
run_mailscanner=1 
Warning.png ATTENZIONE
In una recente installazione in Squeeze ho rilevato l'errore:
Configuration: Failed to find any configuration files like /etc/MailScanner/conf.d/*,
 skipping them. at /usr/share/MailScanner//MailScanner/Config.pm line 2020

Per risolvere il primo problema citato, basta commentare l’ultima riga del file Mailscanner.conf.

Questa nuova riga è stata aggiunta in questa recente versione e visto che non ho configurazioni particolari

( la dir /etc/MailScanner/conf.d/ risulta vuota) commentandola l’errore cessa di esistere.


Client IMAP4

Dopo aver aperto la porta IMAP 143 potete usare il client di posta che più vi aggrada, da Thunderbird su Windows a Evolution su Linux, purchè supporti il protocollo IMAP.

Per configurarlo inserite nelle configurazione le coordinate del server per la posta, nome utente e password.

Unico difetto per ora riscontrato nella configurazione è che per poter inviare la posta in locale dovrete usare:

 nomeutente@nomeserver.nomedominio

esempio:

 prova@server.pasticcio.it

nel caso la mail abbia utenti interni ed esterni, un reply to all da parte del destinatario porterebbe le mail a indirizzi inesistenti.

Nel mio utilizzo gli indirizzi nomeutente@nomeserver.nomedominio vengono usati per la sola posta interna perchè non escono dal sever ma dopo l'invio vengono subito dirottati all'utente.

Webmail

Alternativa al client IMAP è portare la posta su una pagina web facilmente consultabile da qualsiasi postazione senza dover configurare per forza un programma.

Per fare questo il server deve avere i servizi apache2, mysql, php4 o php5abilitati e configurati correttamente.

A questo punto per rendere più sicuro il sistema ho preferito mantenere chiusa la porta 143 (IMAP).

In passato ho usato ilohamail, disponibile come pacchetto che si installa con apt-get anche se io io ho preferito installarlo manualmente, dato che avevo avuto problemi con la configurazione, ho copiato l'intero contenuto del file tar.gz nella cartella /www.

Dopo le giuste configurazioni indirizzate il vostro browser su http://vostrosito/dir_ilohamail, dovreste vedere la finestra iniziale di accesso.

Ma dato che Ilohamail pare abbandonato da qualche annetto ho preferito passare ad altro.

Esistono altri programmi come http://openwebmail.org/ e altri ancora, questa è una vostra scelta.

Adesso sto usando group office che mi è sembrato per le mie esigenze il più adatto.

Ottimo il servizio di posta con IMAP, una vera suite per ufficio con calendario, rubrica con vcard, spazio file, note e altro ancora il tutto collegato da un database MySQL in grado di collegare molti dati.

L'installazione è semplice, basta seguire le informazioni all'interno del file.

Si scompatta nella cartella web e in pochi passi sarete sbalorditi dalla grafica e dalla velocità.

Il sito ufficiale è http://www.group-office.com/ e propone una versione full a pagamento,che potete provare in versione demo on-line visitando il sito, ma esiste anche una versione sviluppata dalla comunità, gratuita con alcune limitazioni che non compromettono l'uso della posta.

Il forum della versione free si trova all'indirizzo: http://www.group-office.com/forum/ mentre qui potete scaricarlo.

Questa come soluzione mi è sembrata più elegante e completa a confronto del client di posta.




Guida scritta da: Mm-barabba 09:16, 3 Apr 2008 (CDT) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized