1
contributo
(→Configurazione base: myorigin) |
|||
(20 versioni intermedie di 7 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
== | {{Versioni compatibili|Lenny|Squeeze|Wheezy}} | ||
== Introduzione == | |||
Con questa guida intendo spiegare all'utente Debian come configurare un server mail basato su Postfix (http://www.postfix.org). | |||
Postfix è un MTA abbastanza sicuro e di recente sviluppo, molto semplice da usare e per alcuni è considerato il successore di Sendmail per altro troppo complicato da gestire e con noti problemi di sicurezza. | |||
== Installazione di Postfix == | |||
Prima di tutto abbiamo bisogno di due demoni: uno per la gestione del protocollo POP3 e uno per l'IMAP. Io consiglio ''popa3d'' e ''imapd'' | |||
<pre> | |||
# apt-get update | |||
# apt-get install popa3d uw-imapd | |||
</pre> | |||
fatto questo in <code>/etc/inetd.conf</code> verranno aggiunti i servizi per il POP3 e l'IMAP. | |||
Procediamo all'installazione dell'MTA vero e proprio: | |||
<pre> | <pre> | ||
# apt-get install postfix | |||
</pre> | |||
== Configurazione base == | |||
Quasi tutte le opzioni di configurazione di Postfix si trovano nel file <code>/etc/postfix/main.cf</code>. | |||
Ecco i principali tag a cui conviene prestare attenzione: | |||
* <code>'''myhostname'''</code>: valore indica il nome che assumerà il vostro server mail (es: mail.nomedominio.it); | |||
* <code>'''myorigin'''</code>: valore indica il dominio usato per la posta inviata dal server, può essere anche un file che contiene il nome del dominio, es: /etc/mailname; | |||
* <code>'''mydestination'''</code>: localhost, altri_valori indicano i domini che il server dovrà riconoscere come locali e che smisterà internamente; | |||
* <code>'''mydomain'''</code>: valore indica il dominio a cui appartiene il server; | |||
* <code>'''relayhost'''</code>: valore indica a quale server inoltrare le mail che non si riconoscono come locali; | |||
* <code>'''mailbox_size_limit'''</code>: <code>0</code> indica la dimensione massima delle caselle mail, <code>0</code> per nessun limite; | |||
* <code>'''mynetworks'''</code>: valore altri_valori indica le reti nelle quali il server deve operare (es. 127.0.0.1/8 192.168.0.1/24); | |||
* <code>'''mynetworks_syle'''</code>: <code>host/subnet/class</code>. | |||
Su questi ultimi due punti è il caso di soffermarsi. Stiamo considerando ora quali IP considerare validi per l'invio della posta. | |||
Postfix non autorizza l'invio della posta da parte di client non autorizzati a farlo e/o di domini sconosciuti, ovvero non è un open-relay. Questo è un gran vantaggio perché impedisce che il vostro server possa essere usato per spam o peggio. | |||
Tramite il tag <code>mynetworks</code> abilito gli IP presenti nella lista a spedire mail, con <code>mynetworks_style</code> posso specificare uno tra i seguenti tre valori: | |||
; <code>host</code>: l'invio sarà consentito solo per la macchina locale; | |||
; <code>class</code>: l'invio sarà consentito a tutti i client appartenenti al network di classe A, B o C a cui il server appartiene; | |||
; <code>subnet</code>: indica che Postfix autorizza alla trasmissione tutti i client che appartengono alla stessa sottorete locale del mailserver e costituisce il valore di default. | |||
== Gestione degli Alias == | |||
In teoria ad ogni utente locale del vostro server corrisponde una sola casella mail. | |||
Si possono però creare degli alias che corrispondano ad un particolare utente, un secondo indirizzo a cui inviare mail per quel dato user. | |||
Di default esiste il file <code>/etc/aliases</code> che contiene una lista di alias a sinistra e i rispettivi utenti ai quali appartengono a destra. | |||
In <code>/etc/postfix/main.cf</code> basta solo aggiungere: | |||
<pre> | <pre> | ||
alias_maps = hash:/etc/aliases | |||
</pre> | |||
e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando: | |||
<pre> | <pre> | ||
# postalias /etc/aliases | |||
</pre> | |||
== Multidominio, Virtual Domain e Sender Canonical == | |||
Nel caso il vostro Server debba ricevere la posta per più domini non dobbiamo fare altro che modificare il tag <code>mydestination</code> come segue: | |||
<pre> | <pre> | ||
mydestination = localhost, /etc/postfix/local-domain | |||
</pre> | |||
creare il file <code>/etc/postfix/local-domain</code> e inserire lì i domini da considerare locali, uno per riga senza virgole. | |||
Fatto questo conviene preparare un file per la gestione dei domini virtuali in modo tale da associare il giusto dominio al dato utente; creiamo allora il file <code>/etc/postfix/virtual</code> | |||
La sintassi da usare è la seguente: | |||
* <code>info@dominio1.it marco</code> -> le mail in arrivo per tale indirizzo sono redirezionate a marco; | |||
* <code>webmaster@dominio2.it andrea@dominio4.it</code> -> le mail verranno inviate a andrea@dominio4.it; | |||
* <code>@dominio3.com alessandro</code> -> tutte le mail inviate a qualsiasi indirizzo @dominio3.com sono inviate all'utente alessandro; | |||
aggiungiamo in <code>/etc/postfix/main.cf</code>: | |||
<pre> | <pre> | ||
virtual_maps = hash:/etc/postfix/virtual | |||
</pre> | |||
e prepariamo la map con il comando: | |||
<pre> | <pre> | ||
# | # postmap /etc/postfix/virtual | ||
</pre> | |||
Può essere sempre utile, per la gestione di più domini, usare un file che associ ad un nome utente un indirizzo mittente particolare. | |||
Creiamo perciò un file <code>/etc/postfix/sender_canonical</code> dove con la precedente sintassi associamo al nome utente l'indirizzo mittente da mostrare nelle mail inviate. | |||
Aggiungiamo in <code>/etc/main.cf</code> la seguente riga: | |||
<pre> | <pre> | ||
sender_canonical_maps = hash:/etc/postfix/sender_canonical | |||
</pre> | |||
: | ed infine prepariamo la map con: | ||
<pre> | <pre> | ||
# postmap /etc/postfix/sender_canonical | |||
</pre> | |||
== Antivirus - Amavis e ClamaV == | |||
Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA. | |||
Procediamo all'installazione: | |||
<pre> | |||
# apt-get install amavisd-new clamav clamav-daemon | |||
</pre> | |||
Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a <code>/etc/postfix/main.cf</code> quanto segue: | |||
<pre> | <pre> | ||
content_filter = amavis:[127.0.0.1]:10024 | |||
</pre> | |||
mentre nel file <code>/etc/postfix/master.cf</code>: | |||
<pre> | |||
amavis unix - - n - 2 smtp | |||
-o smtp_data_done_timeout=1200 | |||
-o disable_dns_lookups=yes | |||
127.0.0.1:10025 inet n - n - - smtpd | |||
-o content_filter= | |||
-o local_recipient_maps= | |||
-o relay_recipient_maps= | |||
-o smtpd_restriction_classes= | |||
-o smtpd_client_restrictions= | |||
-o smtpd_helo_restrictions= | |||
-o smtpd_sender_restrictions= | |||
-o smtpd_recipient_restrictions=permit_mynetworks,reject | |||
-o mynetworks=127.0.0.0/8 | |||
-o strict_rfc821_envelopes=yes | |||
</pre> | </pre> | ||
Di per sé non si richiedono altre modifiche per il corretto funzionamento, comunque può essere utile dare un occhiata al file <code>/etc/amavis/amavisd.conf</code> per eventuali modifiche. | |||
( | Il Demone clamav-daemon (freshclam) tiene aggiornato il vostro antivirus aggiornandosi 12 volte al giorno, per eventuali modifiche <code>/etc/clamav/fresclam.conf</code> e <code>/etc/clamv/clamavd.conf</code>. | ||
== Antispam - Spamassassin == | |||
Può essere utile installare un antispam che filtri le mail nel vostro server. Spamassassin è ciò che fa per voi. Installiamolo insieme a Procmail: | |||
<pre> | <pre> | ||
# apt-get install spamassassin procmail | |||
</pre> | </pre> | ||
a questo punto aggiungiamo in <code>/etc/postfix/main.cf</code> quanto segue: | |||
<pre> | |||
mailbox_command = /usr/bin/spamc | procmail -a "$EXTENSION" | |||
</pre> | |||
abilitiamo spamassassin modificando in <code>/etc/default/spamassassin</code>: | |||
<pre> | |||
ENABLE=1 | |||
</pre> | |||
aggiungiamo al file <code>/etc/procmailrc</code> quanto segue: | |||
<pre> | <pre> | ||
DROPPRIVS=yes | |||
:0fw | |||
| /usr/bin/spamassassin | |||
</pre> | </pre> | ||
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. | |||
== WebMail - Openwebmail == | |||
Per poter usufruire del servizio di webmail è necessario usare un server web. | |||
Io vi consiglio Apache con supporto PHP e CGI. In questa guida presumo che nel vostro server sia già presente Apache configurato a dovere. | |||
Esistono diversi servizi di WebMail, io ho scelto ''openwebmail'', installiamolo dopo aver aggiunto il repository in <code>/etc/apt/sources.list</code> | |||
<pre>deb http://people.debian.org/~srua/openwebmail/stable/ ./</pre> | |||
<pre> | <pre> | ||
# apt-get install openwebmail | |||
</pre> | </pre> | ||
Dopo l'installazione recatevi in <code>/etc/openwebmail</code> e date un occhiata al file <code>apache.conf</code> che contiene le specifiche per configurare Apache. | |||
Apriamo ora <code>/etc/openwebmail/openwebmail.conf</code> e apportiamo le nostre personalizzazioni. | |||
Attenzione alla voce <code>domainnames</code>, spesso <code>auto</code> può portare a dei problemi, vi consiglio di specificare il dominio di appartenenza. | |||
Per altre modifiche consultate il file <code>/usr/share/openwebmail/configs/openwebmail.conf</code>. | |||
== Gestione Mailing-List Mailman + Hypermail == | |||
Ogni mailserver che si rispetti ha anche un gestore di mailing-list. Io vi consiglio di installare Mailman che possiede un ottimo supporto web per le varie configurazioni: | |||
<pre> | <pre> | ||
# apt-get install mailman hypermail | |||
</pre> | |||
Fatto questo modificate <code>/etc/postfix/main.cf</code> aggiungendo quanto segue: | |||
<pre> | |||
alias_maps = hash:/etc/aliases | |||
hash:/var/lib/mailman/data/aliases | |||
transport_maps = hash:/etc/postfix/transport | |||
relay_domains = lists.vostrodominio.com | |||
mailman_destination_recipient_limit = 1 | |||
</pre> | </pre> | ||
creiamo <code>/etc/postfix/transport</code> e trasformiamolo in una mappa: | |||
<pre> | |||
# echo lists.vostrodominio.com mailman: > /etc/postfix/transport | |||
# postmap /etc/postfix/transport | |||
</pre> | |||
Modificate ora il file <code>/etc/postfix/master.cf</code>: | |||
<pre> | <pre> | ||
mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} | |||
</pre> | </pre> | ||
Modificate nel file <code>/etc/mailman/mm_cfg.py</code> i seguenti tag: | |||
<pre> | |||
DEFAULT_EMAIL_HOST = 'vostrodominio.com' | |||
DEFAULT_URL_HOST = 'www.vostrosito.com' | |||
MTA='Postfix' | |||
PUBLIC_EXTERNAL_ARCHIVER = 'hypermail -L it -m /var/lib/mailman/archives/private/%(listname)s.mbox/%(listname)s.mbox -l %(listname)s -d /var/lib/mailman/archives/public/%(listname)s' | |||
PRIVATE_EXTERNAL_ARCHIVER = 'hypermail -c -L it -m /var/lib/mailman/archives/private/%(listname)s.mbox/%(listname)s.mbox -l %(listname)s -d /var/lib/mailman/archives/private/%(listname)s' | |||
PUBLIC_ARCHIVE_URL = '/archives/%(listname)s' | |||
PRIVATE_ARCHIVE_URL = '/archives/%(listname)s' | |||
ARCHIVE_TO_MBOX = 2 | |||
</pre> | |||
Fate attenzione alle voci <code>PUBLIC_ARCHIVE_URL</code> e <code>PRIVATE_ARCHIVE_URL</code>. | |||
Sono i link che in Mailman verranno associati all'archivio delle vostre mailing-list (www.vostrodominio.it/archives/nomelista). Di conseguenza un mio consiglio è creare un link simbolico nella DocumentRoot del server Apache in questione: | |||
<pre> | |||
# ln -s /var/lib/mailman/archives/public/ archives | |||
</pre> | |||
Create poi una lista Mailman di default per il server (altrimenti il suo demone si rifiuta di partire): | |||
<pre> | |||
# newlist mailman | |||
</pre> | |||
ed il gioco è fatto. | |||
Per creare nuove mailing-list basta usare il comando <code>newlist</code> e per rimuoverle <code>rmlist</code>. | |||
Per le altre configurazioni, Mailman crea nella vostra directory <code>cgi-bin</code> un programma che vi consente, tramite web, di accedere alle varie mailing-list per poter modificarne alcuni parametri, anche in questo caso si richiede una corretta configurazione di Apache. | |||
---- | |||
Per qualsiasi informazione | |||
www.giorgioravera.it | |||
[[Utente: | giorgio@giorgioravera.it | ||
{{Autori | |||
| Autore = [[Utente:TheNoise|TheNoise]] | |||
}} | |||
[[ | [[Categoria:Mail server]] |
contributo