|
|
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 uw-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>
| |
| 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>
| |
| virtual_maps = hash:/etc/postfix/virtual
| |
| </pre>
| |
|
| |
| e prepariamo la map con il comando
| |
|
| |
| <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 clamav clamav-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 dopo aver aggiunto la repository in /etc/apt/source.list
| |
|
| |
| deb http://people.debian.org/~srua/openwebmail/stable/ ./
| |
|
| |
| <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
| |