Mail Server Sicuro con Postfix: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(20 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
== INSTALLAZIONE QEMU + KQEMU PER DEBIAN / UBUNTU ==
{{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.


1. Assicuratevi di aver installato i pacchetti necessari a compilare il tutto:
== Installazione di Postfix ==
* '''gcc-3.3''' oppure '''gcc-3.4''' (qemu non � ancora compilabile col gcc 4.0)
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''
* '''libsdl1.2-dev'''
* '''zlib1g-dev'''
* '''make'''
* '''kernel-headers-'''''versione_del_kernel_in_uso'' (oppure '''linux-headers-'''''versione_del_kernel_in_uso'' se avete una Ubuntu od usate una Debian unstable con un kernel recente). La versione pu� essere individuata eseguendo il comando <code>uname -r</code>.


2. Scaricate da [http://fabrice.bellard.free.fr/qemu/download.html http://fabrice.bellard.free.fr/qemu/download.html] gli archivi dei codici sorgenti di QEMU e di KQEMU, e scompattateli in modo che la directory di kqemu venga estratta all'interno della directory di qemu. Quindi entrate nella directory dei sorgenti.
<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:


Esempio:
<pre>
<pre>
rob@klingon:/home/rob$ tar zxvf qemu-0.7.2.tar.gz
# apt-get install postfix
rob@klingon:/home/rob$ tar zxvf kqemu-0.7.2.tar.gz -C qemu-0.7.2
</pre>
rob@klingon:/home/rob$ cd qemu-0.7.2</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.


3. Configurate l'ambiente di compilazione avviando lo script <code>./configure</code>.
== Gestione degli Alias ==
Verificate che sia tutto ok e che il supporto kqemu sia attivato, in modo che venga compilato
In teoria ad ogni utente locale del vostro server corrisponde una sola casella mail.
il modulo corretto per il vostro kernel. Poi compilate il tutto ed installate.
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:


Esempio:
<pre>
<pre>
rob@klingon:/home/rob/qemu-0.7.2$ ./configure --cc=gcc-3.3
alias_maps = hash:/etc/aliases
rob@klingon:/home/rob/qemu-0.7.2$ make</pre>
</pre>
 
e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando:


Se dopo aver avviato <code>make</code> ci sono errori di compilazione, ci si pu limitare a compilare il solo modulo di emulazione x86, aggiungendo l'opzione <code>--target-list=i386-softmmu</code> al comando <code>./configure</code>.
<pre>
<pre>
rob@klingon:/home/rob/qemu-0.7.2$ make clean
# postalias /etc/aliases
rob@klingon:/home/rob/qemu-0.7.2$ ./configure --cc=gcc-3.3 --target-list=i386-softmmu
</pre>
rob@klingon:/home/rob/qemu-0.7.2$ make</pre>


Se non ci sono errori, ora potete diventare root ed installare qemu.
== 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>
rob@klingon:/home/rob/qemu-0.7.2# su
mydestination = localhost, /etc/postfix/local-domain
Password:
</pre>
rob@klingon:/home/rob/qemu-0.7.2# make install</pre>


A questo punto qemu � installato in <code>/usr/local/bin/qemu</code>, ed il modulo kqemu si trova in <code>/lib/modules/''versione_del_kernel''/misc/kqemu.ko</code>.
creare il file <code>/etc/postfix/local-domain</code> e inserire lì i domini da considerare locali, uno per riga senza virgole.


4. Prima di eseguire qemu va caricato il modulo del kernel <code>kqemu</code>, va eventualmente creato <code>/dev/kqemu</code> (usato per interagire col kernel) e gli vanno dati permessi adeguati.  
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>:


Esempio di procedura manuale (per chi '''non ha''' installato il pacchetto udev):'''
<pre>
<pre>
# Queste due operazioni sono da fare come root una volta sola:
virtual_maps = hash:/etc/postfix/virtual
rob@klingon:/home/rob/qemu-0.7.2# mknod /dev/kqemu c 250 0
</pre>
rob@klingon:/home/rob/qemu-0.7.2# chmod 666 /dev/kqemu


# Questa operazione va eseguita come root ad ogni avvio del sistema
e prepariamo la map con il comando:
rob@klingon:/home/rob/qemu-0.7.2# modprobe kqemu</pre>


Esempio di procedura manuale (per chi '''ha''' installato il pacchetto udev):
<pre>
<pre>
# Queste due operazioni vanno eseguite come root ad ogni avvio del sistema
# postmap /etc/postfix/virtual
rob@klingon:/home/rob/qemu-0.7.2# modprobe kqemu major=0
</pre>
rob@klingon:/home/rob/qemu-0.7.2# chmod 666 /dev/kqemu</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:


Per far eseguire '''automaticamente''' queste operazioni ad ogni avvio del sistema (consigliato):
* diventate root (<code>su -</code>)
* modificate il file <code>/etc/modules</code> aggiungendo la riga <code>kqemu</code>, in modo che il modulo venga automaticamente caricato al boot.
* create il file <code>/etc/modprobe.d/kqemu</code> contenente le seguenti righe:
** per chi '''non ha''' installato il pacchetto udev:
<pre>
<pre>
install kqemu /sbin/modprobe --ignore-install kqemu \
sender_canonical_maps = hash:/etc/postfix/sender_canonical
&& (test -c /dev/kqemu || mknod /dev/keqmu c 250 0) \
</pre>
&& chmod 666 /dev/kqemu</pre>
 
:* per chi '''ha''' installato il pacchetto udev:
ed infine prepariamo la map con:
 
<pre>
<pre>
options kqemu major=0
# postmap /etc/postfix/sender_canonical
install kqemu /sbin/modprobe --ignore-install kqemu && chmod 666 /dev/kqemu</pre>
</pre>


Una volta caricato il modulo e dati i permessi di lettura a /dev/kqemu siamo pronti per eseguire il nuovo qemu.
== Antivirus - Amavis e ClamaV ==
Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA.
Procediamo all'installazione:


Accertatevi che il qemu che andrete ad eseguire '''sia quello compilato in <code>/usr/local/bin/qemu</code>''': potete farlo eseguendo <code>type qemu</code>.
<pre>
# apt-get install amavisd-new clamav clamav-daemon
</pre>


5. (facoltativo) Creazione di un file immagine per il disco (facoltativo)
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>
rob@klingon:/home/rob$ qemu-img create hd.img 3500M
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>


6. Eseguiamo qemu:
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.
(cambiare il boot per fare l'installazione da cd etc..)
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>.


Per semplicita` qui avviamo qemu da root (gli utenti comuni in Debian solitamente non possono leggere direttamente /dev/cdrom), tuttavia qemu puo` tranquillamente essere eseguito come utente comune (consigliato).
== 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>
rob@klingon# qemu -boot c -cdrom /dev/cdrom -hda /home/rob/hd.img \
# apt-get install spamassassin procmail
              -user-net -pci -m 256 -k it -localtime
</pre>
</pre>


Le principali opzioni di qemu sono:
a questo punto aggiungiamo in <code>/etc/postfix/main.cf</code> quanto segue:


* '''-m ''megabyte'' ''' --> memoria per l'emulatore = 256MB
<pre>
* '''-k it''' --> tastiera italiana
mailbox_command = /usr/bin/spamc | procmail -a "$EXTENSION"
* '''-localtime''' --> usa ora locale (default UTC)
</pre>
* '''-pci''' --> emula scheda di rete rtl8029 PCI
* '''-boot c''' --> avvia dal dico rigido emulato (usare '''-boot d''' per il boot dal cdrom emulato)
* '''-user-net''' --> Il sistema GUEST deve essere configurato in DHCP. Qemu assegna un indirizzo dinamico "10.0.2.15" al SO guest, il quale sar� in grado di pingare solo il suo GW che � "10.0.2.2". Per testare la rete quindi avviare le applicazioni di rete, visto che il ping ''host'' non funziona.


=== Qemu Networking ===
abilitiamo spamassassin modificando in <code>/etc/default/spamassassin</code>:


Con la soluzione indicata qui sopra, il sistema Guest riesce a navigare in Internet, ma non riesce ad accedere alle risorse del proprio host. La maniera pi� facile per configurare qemu in modo che possa fare entrambe le cose, � quella di installare vde e usare tun/tap con un bridge.
<pre>
ENABLE=1
</pre>


Prima di iniziare, dovete verificare che il vostro kernel supporti i seguenti moduli:
aggiungiamo al file <code>/etc/procmailrc</code> quanto segue:
  tun: "Network device support" -> "Universal TUN/TAP device driver support"
  IP masquerade: "Networking options" -> "IP: Netfilter Configuration"
  bridging: "Networking options" -> "802.1d Ethernet Bridging"


e dovete installare il pacchetto bridge-utils:
<pre>
<pre>
apt-get install bridge-utils
DROPPRIVS=yes
:0fw
| /usr/bin/spamassassin
</pre>
</pre>


[http://vde.sourceforge.net Vde] sta per Virtual Distributed Ethernet ed � un programma open source che vi permette di creare un network virtuale. Noi lo utilizzeremo per far fare in modo che il sistema Guest veda se stesso come un'unit� distinta dal sistema host e possa colloquiare con questi.
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>


Per quel che ne so io, non esiste (ancora) un pacchetto deb gi pronto per l'uso, ma per installare vde sono sufficenti poche righe:
<pre>
<pre>
wget http://puzzle.dl.sourceforge.net/sourceforge/vde/vde-1.5.9.tar.gz
# apt-get install openwebmail
tar -xvzf vde-1.5.9.tar.gz
cd vde-1.5.9
./configure
make
make install
</pre>
</pre>


Una volta fatto questo, siete pronti per configurare tun e il bridge:
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>
vde_switch -tap tun0 -daemon
# apt-get install mailman hypermail
chmod 777 /tmp/vde.ctl
</pre>


ifconfig eth0 down
Fatto questo modificate <code>/etc/postfix/main.cf</code> aggiungendo quanto segue:
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tun0 0.0.0.0 promisc up
#l'IP qui sotto � quello del computer host; modificatelo per adeguarlo alle vs esigenze
ifconfig br0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255 up


brctl stp br0 off
<pre>
brctl setfd br0 1
alias_maps = hash:/etc/aliases
brctl sethello br0 1
hash:/var/lib/mailman/data/aliases
brctl addif br0 eth0
transport_maps = hash:/etc/postfix/transport
brctl addif br0 tun0
relay_domains = lists.vostrodominio.com
#questo invece � l'indirizzo IP del gateway
mailman_destination_recipient_limit = 1
route add default gw 192.168.0.1
</pre>
</pre>


NB: Una volta verificato che tutto funziona, queste istruzioni vanno inserite in uno script in modo da essere eseguite automaticamente all'accensione del computer
creiamo <code>/etc/postfix/transport</code> e trasformiamolo in una mappa:
qui ne trovate uno piuttosto grezzo: [http://www.itaca.coopsoc.it/download/sources/vde_qemu vde_qemu], che va salvato in /etc/init.d. Dopodich�: <pre>chmod u+x /etc/init.d/vde_qemu
 
update-rc.d -n vde_qemu defaults 90</pre>
<pre>
# echo lists.vostrodominio.com mailman: > /etc/postfix/transport
# postmap /etc/postfix/transport
</pre>


Modificate ora il file <code>/etc/postfix/master.cf</code>:


Ora tutto pronto per lanciare qemu, con l'ultima avvertenza che dovete usare l'apposito wrapper vdeqemu:
<pre>
<pre>
vdeqemu -hda disk.img -localtime
mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
</pre>
</pre>


Potete utilizzare tutte le opzioni di qemu, fuorch� -user-net, che disattiverebbe tun.
Modificate nel file <code>/etc/mailman/mm_cfg.py</code> i seguenti tag:


Ora il sistema guest dovrebbe accedere a tutte le porte del sistema host, in maniera totalmente trasparente: da risorse di rete dovreste vedere il vostro server samba con le sue partizioni; dal browser dovreste accedere alle pagine del vostro server web, etc. etc.
<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>


=== PATCH PER WINDOWS ===
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:


Per quanto riguarda l'utilizzo della CPU, a quanto pare
<pre>
Windows 9x non fa un uso corretto della istruzione CPU HLT e
# ln -s /var/lib/mailman/archives/public/ archives
quindi spara la cpu a 100% quando � in idle (non fa nulla) e
</pre>
invece la usa regolarmente quando � sotto "sforzo", paradossalmente
infatti, se viene utilizzata la cpu di qemu l'utilizzo di
cpu si abbassa su linux in proporzione.


la patch puo' essere scaricata qui, va installata sul Win9x GUEST.
Create poi una lista Mailman di default per il server (altrimenti il suo demone si rifiuta di partire):
 
[http://klingon.homelinux.net/files/amnhltm.zip http://klingon.homelinux.net/files/amnhltm.zip]


<pre>
# newlist mailman
</pre>


Link utili (in inglese):
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.


*[http://ubuntuforums.org/showthread.php?t=39513 http://ubuntuforums.org/showthread.php?t=39513]
----
*[http://fabrice.bellard.free.fr/qemu/index.html http://fabrice.bellard.free.fr/qemu/index.html]
Per qualsiasi informazione
*[http://fabrice.bellard.free.fr/qemu/qemu-doc.html http://fabrice.bellard.free.fr/qemu/qemu-doc.html]
*[http://www.debian-administration.org/?article=40 http://www.debian-administration.org/?article=40]
*[http://oui.com.br/n/content.php?article.21 http://oui.com.br/n/content.php?article.21]
*[http://www.carlsonhome.net/computer_help_log.php http://www.carlsonhome.net/computer_help_log.php]


--
www.giorgioravera.it


[[Utente:Themonkey|Themonkey]] 20:31, Ago 19, 2005 (EDT)
giorgio@giorgioravera.it
The_monk_ey ( skype: the_monk_ey )
{{Autori
| Autore = [[Utente:TheNoise|TheNoise]]
}}


[[Utente:ianezz|ianezz]] 17:40, Nov 25, 2005 (CET) (per la parte di compilazione ed installazione)
[[Categoria:Mail server]]

Versione attuale delle 17:33, 23 giu 2016

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"

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

# apt-get update
# apt-get install popa3d uw-imapd

fatto questo in /etc/inetd.conf verranno aggiunti i servizi per il POP3 e l'IMAP. Procediamo all'installazione dell'MTA vero e proprio:

# apt-get install postfix

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:

  • 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, può essere anche un file che contiene il nome del dominio, es: /etc/mailname;
  • 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.


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 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, B 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:

alias_maps = hash:/etc/aliases

e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando:

# postalias /etc/aliases

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 mydestination come segue:

mydestination = localhost, /etc/postfix/local-domain

creare il file /etc/postfix/local-domain 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 /etc/postfix/virtual La sintassi da usare è la seguente:

  • 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;

aggiungiamo in /etc/postfix/main.cf:

virtual_maps = hash:/etc/postfix/virtual

e prepariamo la map con il comando:

# postmap /etc/postfix/virtual

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 /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:

sender_canonical_maps = hash:/etc/postfix/sender_canonical

ed infine prepariamo la map con:

# postmap /etc/postfix/sender_canonical

Antivirus - Amavis e ClamaV

Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA. Procediamo all'installazione:

# apt-get install amavisd-new clamav clamav-daemon

Dopo l'installazione dobbiamo dire a Postfix di far processare le mail dal vostro antivirus. Aggiungiamo a /etc/postfix/main.cf quanto segue:

content_filter = amavis:[127.0.0.1]:10024

mentre nel file /etc/postfix/master.cf:

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

Di per sé 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:

# apt-get install spamassassin procmail

a questo punto aggiungiamo in /etc/postfix/main.cf quanto segue:

mailbox_command = /usr/bin/spamc | procmail -a "$EXTENSION"

abilitiamo spamassassin modificando in /etc/default/spamassassin:

ENABLE=1

aggiungiamo al file /etc/procmailrc quanto segue:

DROPPRIVS=yes
:0fw
| /usr/bin/spamassassin

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 il repository in /etc/apt/sources.list

deb http://people.debian.org/~srua/openwebmail/stable/ ./
# apt-get install openwebmail

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:

# apt-get install mailman hypermail

Fatto questo modificate /etc/postfix/main.cf aggiungendo quanto segue:

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

creiamo /etc/postfix/transport e trasformiamolo in una mappa:

# echo lists.vostrodominio.com mailman: > /etc/postfix/transport
# postmap /etc/postfix/transport

Modificate ora il file /etc/postfix/master.cf:

mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

Modificate nel file /etc/mailman/mm_cfg.py i seguenti tag:

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

Fate attenzione alle voci PUBLIC_ARCHIVE_URL e PRIVATE_ARCHIVE_URL. 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:

# ln -s /var/lib/mailman/archives/public/ archives

Create poi una lista Mailman di default per il server (altrimenti il suo demone si rifiuta di partire):

# newlist mailman

ed il gioco è fatto. Per creare nuove mailing-list basta usare il comando newlist e per rimuoverle rmlist. Per le altre configurazioni, 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



Guida scritta da: TheNoise Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

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