|
|
Riga 1: |
Riga 1: |
| ==Introduzione== | | =Premessa= |
| Con questa guida intendo spiegare all'utente debian come configurare un server mail basato su Postfix (http://www.postfix.org).
| | A volte si ha la necessit� o il desiderio di poter sfruttare un kernel della serie 2.6.x sulla versione Woody (la stable al momento in cui scrivo). |
| 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.
| | Niente di pi� facile usando i backports! |
|
| |
|
| ==Installazione di Postfix== | | =Preparare il sistema= |
| 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
| | Editiamo il nostro '''/etc/apt/sources.list''' e aggingiamo la riga: |
| | <pre>deb http://www.backports.org/debian woody kernel-2.6</pre> |
| | che mette a disposizioni i nuovi pacchetti '''modutils''', '''module-init-tools''' e '''sysfsutils'''. |
|
| |
|
| <pre> | | =Scegliere il kernel= |
| # apt-get update
| | A questo punto � necessario indicare esplicitamente nel sources.list il pacchetto che vogliamo utilizzare per il nuovo kernel. Questo pu� essere l' immagine di un kernel o i sorgenti di un kernel debianizzato a scelta tra quelli disponibili all' url: [http://www.backports.org/debian/dists/stable] |
| # apt-get install popa3d uw-imapd
| | e costruendo una riga del sources.list cos� fatta: |
| </pre> | | <pre>deb http://www.backports.org/debian woody nome_directory</pre> |
|
| |
|
| fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il pop3 e l'imapd.
| | =Installazione= |
| Procediamo all'installazione dell'MTA vero e proprio
| | A questo punto sono sufficienti i classici: |
| | <pre># apt-get update |
| | # apt-get upgrade</pre> |
| | per poter sfruttare la nuova serie di kernels. |
|
| |
|
| <pre>
| | {{box|Nota Bene:|In alternativa ai kernels debianizzati disponibili su Backports.org, � anche possibile utilizzare i sorgenti ufficiali 'vanilla', a patto di aver seguito il punto "[[Kernel 2.6 su Debian Woody#Preparare il sistema.|Preparare il sistema]]"}} |
| # apt-get install postfix | |
| </pre>
| |
|
| |
|
| ==Configurazione base== | | =Conclusioni= |
| Quasi tutte le opzioni di configurazione di Postfix si trovano nel file /etc/postfix/main.cf
| | Solo una piccola precisazione per finire: alcuni programmi/demoni/tools installati sul sistema potrebbero mostrare anomalie, una volta installato un kernel della serie 2.6.x: questo perch� fanno ricorso a funzioni non pi� disponibili o disponibili sotto nomi diversi rispetto ai kernels 2.4.x. Chi scrive ha ad esempio notato questo comportamento nei pacchetti "snmp" e "snmpd".<br> |
| | In questa situazione si deve disinstallare il pacchetto "ribelle" e provveredere ad installarne la versione aggiornata sfruttando i backports (se disponibili), i sorgenti aggiornati o un repository debian alternativo. |
|
| |
|
| Ecco i principali tag a cui conviene prestare attenzione:
| | Happy hacking! |
|
| |
|
| <pre>
| | Autore: [[User:Keltik|Keltik]] |
| 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
| |
| [[Categoria:Server]][[Categoria:Networking]]
| |