Mail Server Sicuro con Postfix: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(19 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
==Pacchettizzare ed installare Xorg su Debian Sid==
{{Versioni compatibili|Lenny|Squeeze|Wheezy}}
===Introduzione===
== 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.


Xorg � ormai ufficialmente entrato in Sid ed in Etch. La guida � dunque diventata obsoleta, ma viene lasciata per motivi storici e didattici.
== 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''


Buona Lettura ;-).
<pre>
# apt-get update
# apt-get install popa3d uw-imapd
</pre>


===Descrizione===
fatto questo in <code>/etc/inetd.conf</code> verranno aggiunti i servizi per il POP3 e l'IMAP.
Questa guida tenter� di illustrare i passi base necessari a chi volesse cimentarsi nella compilazione ed installazione di xorg su sid.<br>
Procediamo all'installazione dell'MTA vero e proprio:
Il nostro obiettivo � creare una serie di pacchetti .deb adattando quelli presenti nei repository dei sorgenti ubuntu e personalizzandoli per sid.<br>
Tutto questo lavoro di compilazione serve ad evitare di dover installare ulteriori pacchetti dal repository ubuntu, le cui versioni sono spesso presenti soltanto in quel particolare repository (molti pacchetti vengono personalizzati e modificati dal team di sviluppo) e che renderebbero il nostro sistema un misto tra ubuntu e debian.<br>
Tenuta presente comunque la buona compatibilit� dei sorgenti dei pacchetti ubuntu rispetto ai .deb prelevati da debian.org (specialmente in relazione alle dipendenze di ciascun pacchetto), � possibile ricostruire l'intero xorg sfruttando le librerie necessarie prelevandole  per�, direttamente da sid.<br>
Faccio notare come la durata di tutta l'operazione sia un fattore importante da valutare: sulla mia macchina (Athlon xp 2000+, 256Mb), ad esempio, sono necessari oltre '''100 minuti''' per portare a termine tutto il processo di compilazione.<br>


===Configurazione sistema===
<pre>
Innanzitutto dobbiamo aggiungere ad i repository dei pacchetti che usiamo abitualmente, anche quello di ubuntu (NB: abbiamo bisogno solo dei sorgenti, quindi basta la sola riga con deb-src), commentando temporaneamente le altre righe deb-src presenti nel nostro '''sources.list'''.<br>
# apt-get install postfix
</pre>


<pre>deb-src http://us.archive.ubuntu.com/ubuntu hoary universe main restricted</pre>
== Configurazione base ==
Quasi tutte le opzioni di configurazione di Postfix si trovano nel file <code>/etc/postfix/main.cf</code>.


Dopo aver aggiunto tale riga, provvediamo ad aggiornare le liste di apt con il solito '''apt-get update'''.<br>
Ecco i principali tag a cui conviene prestare attenzione:
Durante l'operazione, possiamo controllare se viene scaricata anche la lista appena inserita per i pacchetti di ubuntu.


Prepariamo adesso una directory di nome '''xorg''', con il comando <pre>mkdir xorg</pre> questa accoglier� i sorgenti prelevati dalla rete, i file oggetto prodotti dalla compilazione ed infine i pacchetti .deb.<br>
* <code>'''myhostname'''</code>: valore indica il nome che assumerà il vostro server mail (es: mail.nomedominio.it);
Per esperienza personale, consiglio di creare la cartella all'interno di una partizione con '''almeno 4.5 gb di spazio libero'''.
* <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>.


===Modifica degli script di compilazione===
Posizionamoci nella directory appena creata, e con <pre>apt-get source xorg</pre> procediamo al download dei sorgenti e alla scompattazione dei sorgenti di xorg.<br>
Attualmente, (versione '''6.8.2-10'''), il download consiste di circa '''51 MB''' di archivi.<br>
Alla fine del download, notiamo che sono stati creati all'interno della directory xorg, alcuni file ed una directory.


* situazione del nostro filesystem
Su questi ultimi due punti è il caso di soffermarsi. Stiamo considerando ora quali IP considerare validi per l'invio della posta.
<pre>[xorg]
|
|_ [xorg-6.8.2]
|  |
|  |_ [debian]
|  |_ ALTRI_FILES
|
|_ xorg_6.8.2-10.diff.gz
|_ xorg_6.8.2-10.dsc
|_ xorg_6.8.2.orig.tar.gz</pre>


La directory '''xorg-6.8.2''' raccoglie i sorgenti scompattati dell'archivio orginale di xorg (oltre ai file necessari alla compilazione di un sorgente debian), a cui non sono ancora state applicate le varie patch apportate dali sviluppatori ubuntu.<br>
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.
I file, invece, rappresentano l'archivio con il sorgente originale, il file con le patch approntate dal team di ubuntu e quello con la descrizione del pacchetto debian.<br>
Posizionamoci pertanto nella sottodirectory '''debian''' di xorg-6.8.2.


Affinch� si possano adattare i sorgenti a sid, dobbiamo modificare 2 file: nel primo caso la modifica � pi� che altro cosmetica, nel secondo caso invece � una scelta obbligata.
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:


Con il nostro editor preferito, apriamo pertanto il file '''changelog'''.<br>
; <code>host</code>: l'invio sarà consentito solo per la macchina locale;
Questo file mantiene lo storico delle modifiche fatte dagli sviluppatori ubuntu a partire dalla versione stable rilasciata dal team di xorg: tale file viene regolato da una sintassi ben precisa, in cui anche gli spazi hanno una loro funzione e pertanto vanno tenuti in considerazione per la buona riuscita della compilazione.<br>
; <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;
E' necessario pertanto, prestare molta attenzione alla disposizione dei vari campi e al numero degli spazi che li delimitano.<br>
; <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.
La entry pi� recente presente nella versione attuale del file changelog ci appare cos�:
<pre>xorg (6.8.2-10) hoary; urgency=low


  * Include patch from Ben Herrenschmidt to fix assertion of DDC GPIO lines
== Gestione degli Alias ==
    after a DDC probe had finished, which would render Apple Studio Displays
In teoria ad ogni utente locale del vostro server corrisponde una sola casella mail.
    useless.
Si possono però creare degli alias che corrispondano ad un particolare utente, un secondo indirizzo a cui inviare mail per quel dato user.
  * Don't reset all templates when migrating from xserver-xfree86; this will
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.
    render the template migration useless.  Don't mess with $RECONFIGURE when
In <code>/etc/postfix/main.cf</code> basta solo aggiungere:
    migrating from xfree86. Set use_sync_ranges true when upgrading from
    xfree86 (closes: Ubuntu#8562, Ubuntu#8626).
  * Use debug_echo liberally in xserver-xorg.postinst.in to tell us why we're
    writing out sync ranges.


-- Daniel Stone <daniel.stone@ubuntu.com>  Tue,  5 Apr 2005 08:38:20 +1000</pre>
<pre>
alias_maps = hash:/etc/aliases
Affinch� possiamo ottenere una nostra versione personalizzata dei pacchetti, dobbiamo aggiungere precendetemente al gruppo di linee appena descritto (quindi all'inizio del file), qualcosa del genere:
</pre>
<pre>xorg (6.8.2-10-ld10) sid; urgency=low


  * [Ld-xorg] packages for Debian Sid, based on Ubuntu sources.
e per rendere questo file una mappa utilizzabile da Postfix lanciamo il comando:


-- Mario "Ldonesty" Di Nitto <ldonesty@debianizzati.org> Sun, 15 May 2005 10:25:32 +0100</pre>
<pre>
# postalias /etc/aliases
</pre>


mantenendo uno spazio di separazione con il gruppo successivo.
== 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:


Queste righe possono essere personalizzate secondo i propri gusti tenendo presente che '''6.8.2-10-ld10''' sar� la versione che comparir� nel nome di ogni pacchetto, dove -ld indica la nostra estensione personale, la quale *dovr�* essere seguita da un numero a scelta: es -myExt1.<br>
<pre>
Infatti la mancanza di tale valore pregiudica irreparabilmente la compilazione e creazione dei pacchetti (lo script preposto all'operazione, si rifiuter� di assemblare i .deb)
mydestination = localhost, /etc/postfix/local-domain
</pre>


A questo punto salviamo il file changelog e dedichiamoci invece a '''control'''.<br>
creare il file <code>/etc/postfix/local-domain</code> e inserire lì i domini da considerare locali, uno per riga senza virgole.
La struttura del file control si puo riassumere in una sequenza di "blocchi" all'interno dei quali sono contenute tutte le informazioni proprie di un pacchetto debian raccolte per riga (ad esempio: la descrizione, le dipendenze, i conflitti, etc etc). <br>
Dato che la versione di xorg su cui stiamo lavorando proviene dal repository ubuntu, � possibile che siano presenti alcune dipendenze relative a pacchetti contenuti solamente in tale repository.<br>
Pertanto questi pacchetti risulterebbero non disponibili all'atto dell'installazione sulla nostra sid, pregiudicando cos� tutta l'operazione.<br>
Possiamo evitare questa situazione ricercando nelle sole righe Depends del file control, i riferimenti ai pacchetti di ubuntu (presentano la segnatura "ubuntu" all'interno del numero di versione).<br>
Nel nostro caso, scorrendo il file (possiamo usare la funzione di ricerca del nostro editor) notiamo che alla riga 1895 � presente una referenza al pacchetto '''lsb-base''' nella versione ('''1.3-9ubuntu2''').


Dopo aver controllato che in sid esista tale pacchetto in una versione per lo meno uguale (meglio se superiore) a quella citata dal file control (possiamo usare '''apt-cache show lsb-base | grep Version''' per questo scopo), cancelliamo la parola "ubuntu" ed ogni eventuale numero postposto, lasciando quindi solo il numero della versione del pacchetto, infine salviamo.<br>
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>
Quindi la versione di lsb-base nella riga Depends ci apparir� come ('''1.3-9''').<br>
La sintassi da usare è la seguente:
Relativamente a questa versione di xorg, non ci sono altre referenze da modificare; nel caso in cui, invece, fossimo in presenza di parecchie dipendenze da sistemare dobbiamo valutare ciascun caso separatamente, ripetendo tutta la procedura di controllo e modifica.
* <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;


===Controllo dipendenze e avvio compilazione===
aggiungiamo in <code>/etc/postfix/main.cf</code>:
A questo punto siamo in grado di avviare la compilazione/creazione dei pacchetti di xorg usando il comando '''dpkg-buildpackage''' dopo esserci posizionati nella cartella xorg-6.8.2 ed aver ottenuto i privilegi di root.


Molto probabilmente ci verr� notificato che alcune dipendenze non sono soddisfatte per portare a termine la compilazione:
<pre>
virtual_maps = hash:/etc/postfix/virtual
</pre>


es.
e prepariamo la map con il comando:


<pre>dpkg-checkbuilddeps: Unmet build dependencies: flex bison groff zlib1g-dev |
<pre>
libz-dev libpam0g-dev | libpam-dev libfreetype6-dev rman lynx
# postmap /etc/postfix/virtual
libglide2-dev (>> 2001.01.26) libglide3-dev (>= 2002.04.10-7) libpng12-dev |
</pre>
libpng-dev libexpat1-dev libfontconfig1-dev libxft-dev (>= 2.1.2) libxcursor-dev
dbs m4 libxrender-dev (>= 0.9.0) sharutils</pre>


Per ovviare a questo problema possiamo installare i pacchetti suggeriti usando il comando:
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>apt-get install flex bison groff zlib1g-dev libpam0g-dev libfreetype6-dev \
<pre>
rman lynx libglide2-dev libglide3-dev libpng12-dev libexpat1-dev libfontconfig1-dev \
sender_canonical_maps = hash:/etc/postfix/sender_canonical
libxft-dev libxcursor-dev dbs m4 libxrender-dev sharutils</pre>
</pre>


A questo punto possiamo rilanciare il comando '''dpkg-buildpackage''' (a cui potremo preporre il comando '''time''', per visualizzare la durata effettiva di tutta l'operazione) ed attendere che i pacchetti vengano creati.
ed infine prepariamo la map con:


===Installazione===
<pre>
Posizionamoci innanzitutto nella cartella dove sono contenuti i file .deb di xorg.
# postmap /etc/postfix/sender_canonical
</pre>


Possiamo avere 3 situazioni:
== Antivirus - Amavis e ClamaV ==
*  Macchina pulita: nessun xfree/xorg precedentemente installato
Passiamo ora alla configurazione dell'antivirus da installare sul vostro MTA.
*  Xorg in una versione precedente
Procediamo all'installazione:
*  Xfree preso da sid


<br>La prima situazione pu� essere risolta (NB, si potrebbe fare anche con un repository locale) con <pre>dpkg -i x-window-system-core*.deb </pre> aggiungendo volta per volta i pacchetti che vengono richiesti come mancanti in coda a dpkg -i, ovvero
<pre>
<pre>dpkg -i PKT1 PKT2 PKT3 PKT4</pre> dove i vari PKT corrispondono al nome del pacchetto '''completo di estensione'''.
# 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>
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


[[Utente:Ldonesty|Ldonesty]]
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 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>
# apt-get install spamassassin procmail
</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>
DROPPRIVS=yes
:0fw
| /usr/bin/spamassassin
</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>
# apt-get install openwebmail
</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>
# 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>
 
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>
mailman unix - n n - - pipe flags=FR user=list argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
</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
 
giorgio@giorgioravera.it
{{Autori
| Autore = [[Utente:TheNoise|TheNoise]]
}}
 
[[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