2
contributi
Riga 1: | Riga 1: | ||
== | ==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 imapd | |||
</pre> | |||
fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il pop3 e l'imapd. | |||
Procediamo all'installazione dell'MTA vero e proprio | |||
<pre> | |||
# apt-get install postfix | |||
</pre> | |||
==Configurazione base== | |||
Quasi tutte le opzioni di configurazione di Postfix si trovano nel file /etc/postfix/main.cf | |||
Ecco i principali tag a cui conviene prestare attenzione: | |||
<pre> | |||
<pre> | myhostname = valore indica il nome che assumerà il vostro server mail (es: mail.nomedominio.it). | ||
myorigin = valore indica il dominio usato per la posta inviata dal server. | |||
mydestination = localhost, altri_valori indicano i domini che il server dovrà riconoscere come locali e che smisterà internamente. | |||
mydomain = valore indica il dominio a cui appartiene il server. | |||
relayhost = valore indica a quale server inoltrare le mail che non si riconoscono come locali. | |||
mailbox_size_limit = 0 indica la dimensione massima delle caselle mail, 0 per nessun limite. | |||
mynetworks = valore altri_valori indica le reti nelle quali il server deve operare (es. 127.0.0.1/8 192.168.0.1/24). | |||
mynetworks_syle = host/subnet/class | |||
</pre> | |||
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. | |||
Tranute mynetworks abilito gli ip presenti nella lista a spedire mail, con mynetworks_style posso specificare uno tra i seguenti tre valori: | |||
;host: l'invio sarà consentito solo per la macchina locale. | |||
;class: l'invio sarà consentito a tutti i client appartenenti al network di classe A, C o C a cui il server appartiene. | |||
;subnet: 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 /etc/aliases che contiene una lista di alias a sinistra e i rispettivi utenti ai quali appartengono a destra. | |||
In /etc/postfix/main.cf basta solo aggiungere | |||
<pre> | |||
alias_maps = hash:/etc/aliases | |||
</pre> | |||
e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando | |||
<pre> | |||
# postalias /etc/aliases | |||
</pre> | |||
==Multidominio, Virtual Domain e Sender Canonical== | |||
Nel caso il vostro Server debba ricevre la posta per più domini non dobbiamo fare altro che modificare la tag mydestination come segue | |||
<pre> | |||
mydestination = localhost, /etc/postfix/local-domain | |||
</pre> | |||
creare il file /etc/postfix/local-domain e inserire li 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 /etc/postfix/virtual | |||
La sintassi da usare è la seguente: | |||
<pre> | |||
info@dominio1.it marco -> le mail in arrivo per tale indirizzo sono redirezionate a marco | |||
webmaster@dominio2.it andrea@dominio4.it -> le mail verranno inviate a andrea@dominio4.it | |||
@dominio3.com alessandro -> tutte le mail inviate a qualsiasi indirizzo @dominio3.com sono inviate all'utente alessandro | |||
</pre> | |||
aggiungiamo in /etc/postfix/main.cf | |||
<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 utile sempre per la gestione di più domini usare un file che associ ad un nome utente un indirizzo mittente particolare. | |||
Creiamo perciò un file /etc/postfix/sender_canonical dove con la precedente sintassi associamo al nome utente l'indirizzo mittente da mostrare nelle mail inviate. | |||
Aggiungiamo in /etc/main.cf la seguente riga: | |||
= | <pre> | ||
sender_canonical_maps = hash:/etc/postfix/sender_canonical | |||
</pre> | |||
ed infine prepariamo la map con | |||
<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 clamv clamv-daemon | |||
</pre> | |||
Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a /etc/postfix/main.cf quanto segue: | |||
<pre> | |||
content_filter = amavis:[127.0.0.1]:10024 | |||
</pre> | |||
mentre nel file /etc/postfix/master.cf: | |||
<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> | |||
Di per se non si richiedono altre modifiche per il corretto funzionamento, comunque può essere utile dare un occhiata al file /etc/amavis/amavisd.conf per eventuali modifiche. | |||
Il Demone clamav-daemon (freshclam) tiene aggiornato il vostro antivirus aggiornandosi 12 volte al giorno, per eventuali modifiche /etc/clamav/fresclam.conf e /etc/clamv/clamavd.conf | |||
==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> | |||
# apt-get install spamassassin procmail | |||
</pre> | |||
a questo punto aggiungiamo in /etc/postfix/main.cf quanto segue | |||
<pre> | |||
mailbox_command = /usr/bin/spamc | procmail -a "$EXTENSION" | |||
</pre> | |||
abilitiamo spamassassin modificando in /etc/default/spamassassin | |||
<pre> | |||
ENABLE=1 | |||
</pre> | |||
aggiungiamo al file /etc/procmailrc quanto segue: | |||
<pre> | |||
DROPPRIVS=yes | |||
:0fw | |||
| /usr/bin/spamassassin | |||
</pre> | |||
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. | |||
==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: | |||
<pre> | |||
# apt-get install openwebmail | |||
</pre> | |||
Dopo l'installazione recatevi in /etc/openwebmail e date un occhiata al file apache.conf che contiene le specifiche per configurare apache. | |||
Apriamo ora /etc/openwebmail/openwebmail.conf e apportiamo le nostre personalizzazioni. | |||
Attenzione alla voce domainnames, spesso auto può portare a dei problemi, vi consiglio di specificare il dominio di appartenenza. | |||
Per altre modifiche consultate il file /usr/share/openwebmail/configs/openwebmail.conf | |||
==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> | |||
# apt-get install mailman hypermail | |||
</pre> | |||
Fatto questo modificate /etc/postfix/main.cf 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> | |||
creiamo /etc/postfix/transport e trasformiamolo in una mappa | |||
<pre> | |||
# echo lists.vostrodominio.com mailman: > /etc/postfix/transport | |||
# postmap /etc/postfix/transport | |||
</pre> | |||
Modificate ora il file /etc/postfix/master.cf: | |||
<pre> | |||
mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} | |||
</pre> | |||
Modificate nel file /etc/mailman/mm_cfg.py 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 PUBLIC_ARCHIVE_URL e PRIVATE_ARCHIVE_URL. | |||
Sono i link che in mailman verranno associati all'archivio delle vostre mailinglist (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 newlist e per rimuoverle rmlist. | |||
Per le altre configurazione mailman crea nella vostra directory cgi-bin 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 | |||
giorgio@giorgioravera.it |
contributi