Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 965

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Quick&amp;Easy Configuration HOWTO: Postfix</TITLE>
 <LINK HREF="Quick-Easy-Configuration-HOWTO-7.html" REL=next>
 <LINK HREF="Quick-Easy-Configuration-HOWTO-5.html" REL=previous>
 <LINK HREF="Quick-Easy-Configuration-HOWTO.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="Quick-Easy-Configuration-HOWTO-7.html">Avanti</A>
<A HREF="Quick-Easy-Configuration-HOWTO-5.html">Indietro</A>
<A HREF="Quick-Easy-Configuration-HOWTO.html#toc6">Indice</A>
<HR>
<H2><A NAME="s6">6. Postfix</A></H2>

<P>Questa parte &egrave; un'estensione del "mini-postfix-howto" di AGX, autore della
distribuzione italiana BadPenguin (
<A HREF="http://www.badpenguin.org">www.badpenguin.org</A> ), e a cui va il merito di buona parte
di questa sezione.
Postfix vi permette di avere nel vostro computer un vero
e proprio server SMTP, che vi permette di inviare la posta da locale e che
nulla ha da invidiare a quello del vostro provider! E' preferibile al pi&ugrave; diffuso
Sendmail per ragioni di sicurezza, facilit&agrave; di configurazione e di manutenzione.
Prima di installarlo, rimuovete sendmail (le istruzioni sono in fondo alla
pagina), altrimenti avrete conflitti tra i due.
<H2><A NAME="ss6.1">6.1 Configurazione di Postfix</A>
</H2>

<P>Innanzitutto assicuratevi che parta ad ogni avvio, controllate che in /etc/rc.d/init.d
(o l'equivalente della vostra distribuzione) ci sia lo script "postfix" e date
"chkconfig --add postfix", oppure aggiungete "postfix start" a /etc/rc.d/rc.local
(o equivalente).
<P>Modificate /etc/postfix/aliases in modo che la posta indirizzata a root
venga ricevuta da un utente realmente esistente (&egrave; pericoloso gestire la posta
da root, potreste perderla tutta, ricordatelo!), inserendo o modificando la
riga:
<P>
<HR>
<PRE>
root:          nome_utente_esistente
</PRE>
<HR>
<P>Consiglio di lasciare che postfix contatti l'SMTP del vostro provider,
perch&eacute; sempre pi&ugrave; spesso i server per evitare lo spam fanno dei controlli sull'origine
dei messaggi tramite delle interrogazioni ai DNS, e a meno che non abbiate
registrato un dominio vostro, NON vi troveranno altrimenti, e la posta rester&agrave;
nel vostro spool! Consiglio inoltre di impostare l'opzione "defer_transports=smtp"
in /etc/postfix/main.cf per evitare che postfix continui ad interrogare internet
per cercare di inviare la posta: a collegamento avvenuto potete usare "sendmail
-q" o "postfix flush" per inviare tutto (potete inserire il comando in /etc/ppp/ip-up,
in modo da fare tutto in automatico a connessione stabilita). Il comando "mailq"
(o "sendmail -bp") vi fornisce informazioni sullo stato del vostro spool SMTP,
quali e quanti messaggi sono ancora accodati e altro ancora. Per sapere quando
la coda &egrave; vuota, potete usare il seguente script:
<P>
<HR>
<PRE>
#!/bin/sh
/usr/sbin/sendmail -q
sleep 10
while mailq | grep '^[^ ]*\*' &gt;/dev/null
do 
    sleep 10
done
</PRE>
<HR>
<P>Altri comandi utili sono "postfix start" (avvia postfix), "postfix reload"
(per far s&igrave; che postfix rilegga il file di configurazione dopo eventuali cambiamenti),
"postfix stop" (ferma postfix), "postfix check" (controlla la configurazione di
postfix). Ecco un esempio di file /etc/postfix/main.cf (le poche righe da modificare
sono indicate all'inizio del file, e eventuali altri parametri presenti nel
vostro file main.cf possono essere lasciati al loro valore di default):
<P>
<HR>
<PRE>
#- file di configurazione principale di Postfix

#- I parametri che DOVETE cambiare sono i seguenti, seguendo le istruzioni
#- date nel file. In particolare, per il relayhost, fate il comando seguente:
#- nslookup smtp.vostro.provider
#- per conoscere l'IP dell'SMTP del vostro provider, e sostituitelo tra le
#- parentesi quadre, LASCIANDOLE!
#- &quot;myhostname&quot;, &quot;mydomain&quot; e &quot;relayhost&quot;

#- la directory della coda di postfix
queue_directory = /var/spool/postfix

#- la directory dove risiedono i programmi di postfix (gli RPM di solito li
#- installano in /usr/sbin, cambiate di conseguenza per altre installazioni)
program_directory = /usr/sbin

#- la directory dove risiedono tutti i programmi del tipo postXXX
command_directory = $program_directory

#- la directory che contiene i demoni di postfix
daemon_directory = $program_directory

#- il possessore dei processi di postfix. Usate un utente dedicato, con
#- privilegi minimi, e che non sia daemon o nobody, e CREATELO!!!
mail_owner = postfix

#- i privilegi di default dell'agente di smistamento locale
default_privs = nobody

#- la directory di spool di default, dove finiscono le email in arrivo
mail_spool_directory = /var/spool/mail

#- il programma usato per lo smistamento locale delle email. Correggete
#- eventualmente il path. In genere per sicurezza &egrave; meglio richiamare
#- procmail qu&igrave;, piuttosto che da fetchmail
mailbox_command = /usr/bin/procmail

#- il nome COMPLETO del vostro host, compreso il dominio
myhostname = pingu.mrshark.home

#- il nome del vostro dominio
mydomain = mrshark.home

#- il dominio che risulter&agrave; l'origine per le email smistate localmente
myorigin = $mydomain

#- l'elenco di domini che postfix condiderer&agrave; locali, per i queli cio&egrave;
#- verranno smistate le email direttamente, senza interpellare l'esterno
mydestination = $myhostname, localhost.$mydomain, $mydomain

#- le interfacce di rete da cui accettare email, in genere tutte
inet_interfaces = all

#- il banner riportato da postfix quando lo si contatta
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

#- il metodo di trasporto delle email usato di default
default_transport = smtp

#- l'elenco degli IP delle reti attaccate al computer, ritenute come locali.
#- Per un computer singolo basta solo 127.0.0.0/8, mentre per reti pi&ugrave; ampie
#- aggiungete le relative sottoreti, usando le maschere opportune
mynetworks = 127.0.0.0/8, 192.168.0.0/24

#- l'SMTP del vostro provider, cui verranno inviate le email in uscita.
#- Se volete che postfix contatti direttamente l'SMTP di destinazione,
#- commentate la riga seguente. Le [] evitano la risoluzione del nome
#- da parte del DNS, accelerando le operazioni (se inserite l'ip &egrave; meglio)
relayhost = [mail.libero.it]

#- disabilita la risoluzione dei nomi di dominio. Se usate quest'opzione,
#- DOVETE usare l'indirizzo IP dell'SMTP del vostro provider per il parametro
#- relayhost visto in precedenza (usate &quot;nslookup smtp.vostro.provider&quot; ...)
disable_dns_lookups = yes

#- informa il postmaster di possibili problemi con il mail-server
notify_classes = resource, software, bounce, policy, protocol

#- questo evita connessioni indesiderate spontanee via PPP
defer_transports = smtp

#- questi lasciateli come sono, indicano i limiti per le operazioni simultanee
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10

#- riscrive gli header mascherandoli, in modo che appaiano come tutti
#- provenienti come da un unico host, utile sia in dial-up che in rete.
#- Usatelo in unione ai file XXX_canonical, spiegati di seguito
masquerade_domains = $mydomain

#- l'elenco degli alias di sistema
alias_maps = hash:$config_directory/aliases
alias_database = hash:$config_directory/aliases

#- usate questi file per specificare come riscrivere gli indirizzi in uscita
#- (in seguito &egrave; presente un esempio). Potete usare il solo canonical sia per
#- gli indirizzi in ingresso che per quelli in uscita, oppure usare i file
#- sender_canonical e recipient_canonical per essere pi&ugrave; precisi. Se presenti
#- tutti, comunque il file canonical &egrave; l'ultimo ad essere processato, perch&eacute;
#- il pi&ugrave; generico. In genere basta usare solo il file sender_canonical,
#- commentate gli altri. Se ad esempio inviate una email come utente locale pippo,
#- verr&agrave; riscritta in uscita come se fosse inviata da pippo@libero.it, per esempio
#canonical_maps = hash:$config_directory/canonical
#recipient_canonical_maps = hash:$config_directory/recipient_canonical
sender_canonical_maps = hash:$config_directory/sender_canonical

#- usate questo file per riscrivere gli indirizzi delle email in ingresso, in modo
#- che se contengono uno dei vostri indirizzi email pubblici, vengano riscritti
#- come se fossero diretti al vostro utente locale indicato (un esempio in seguito)
virtual_maps = hash:$config_directory/virtual

#- anti-spam! Confronta gli header delle email con quelli riconosciuti come spammers,
#- e in tal caso scarta l'email. Rallenta leggermente il processo! La prima riga
#- definisce i server usati per il controllo, la seconda e la terza impongono delle
#- restrizioni, la quarta definisce un file aggiuntivo in cui inserire delle espressioni
#- regolari tramite le quali scartare a priori email potenzialmente pericolose, come il
#- famoso virus I-Love-You (un file di esempio &egrave; mostrato in seguito). NON va fatto il
#- postmap! La quinta richiede che l'MTA invii un comando HELO per stabilire la connessione,
#- cosa che i software di spam di solito non fanno, mentre gli MTA veri fanno quasi sempre!
maps_rbl_domains = blackholes.mail-abuse.org, dialups.mail-abuse.org, rbl.maps.vix.com, dul.maps.vix.com
smtpd_client_restrictions = permit_mynetworks, reject_maps_rbl, reject_unknown_hostname
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain
header_checks = regexp:$config_directory/header_checks
smtpd_helo_required = yes

#- Se volete un backup TOTALE di tutto quello che passa attraverso Postfix,
#- togliete il commento dalla riga seguente e modificate l'indirizzo email.
#- L'indirizzo indicato ricever&agrave; in copia nascosta (BCC) tutte le email!!!
#always_bcc = indirizzo.email@backup.com
</PRE>
<HR>
<P>Ora create i file per far corrispondere i vostri indirizzi email ai vostri
utenti locali. Si tratta dei file /etc/postfix/sender_canonical (che contiene
gli indirizzi che verranno inseriti nel campo from per ogni utente al posto
di utente@vostra.macchina) e /etc/postfix/virtual (che stabilisce a quali utenti
locali vadano inviate le email in base all'indirizzo remoto contenuto). Come
esempi ecco i miei file. Questo &egrave; il mio /etc/postfix/sender_canonical:
<P>
<HR>
<PRE>
root    mrshark@libero.it
mrshark mrshark@libero.it
antonio mrshark@libero.it
</PRE>
<HR>
<P>e questo il mio /etc/postfix/virtual (tutte le email dai miei indirizzi
finiscono all'utente locale mrshark):
<P>
<HR>
<PRE>
mrshark@linuxfan.com    mrshark
mrshark@libero.it       mrshark
mrshark@tiscalinet.it   mrshark
antonio.fragola@tin.it  mrshark
</PRE>
<HR>
<P>Ogni volta che modificate /etc/postfix/aliases dovete rigenerare il database
dando il comando:
<P>
<HR>
<PRE>
postalias /etc/postfix/aliases
</PRE>
<HR>
<P>mentre se modificate il file /etc/postfix/sender_canonical date:
<P>
<HR>
<PRE>
postmap /etc/postfix/sender_canonical
</PRE>
<HR>
<P>oppure per /etc/postfix/virtual date:
<P>
<HR>
<PRE>
postmap /etc/postfix/virtual
</PRE>
<HR>
<P>Dopo ogni modifica a qualcuno di questi tre file, dovete riavviare postfix
con:
<P>
<HR>
<PRE>
postfix reload
</PRE>
<HR>
<P>Ricordate di installare e configurare anche un MDA, come procmail, per
far smistare la posta in arrivo in mailbox diverse piuttosto che in una sola
di default.
<P>Se volete un'analisi dei log di postfix, potete usare il programma in perl
pflogsumm, scaricabile da 
<A HREF="http://home.msen.com/~jimsun/postfix_contrib.html">http://home.msen.com/~jimsun/postfix_contrib.html</A>, inserendo con "crontab -e" una riga tipo la seguente:
<P>
<HR>
<PRE>
0 2 * * * /path/to/pflogsumm.pl -d today /var/log/maillog | mail -s &quot;Postfix Mail Report&quot; root
</PRE>
<HR>
<P>L'utente indicato alla fine della riga ricever&agrave; delle email contenenti
un'analisi dei log di postfix.
<H2><A NAME="ss6.2">6.2 Disattivazione e disinstallazione di Sendmail</A>
</H2>

<P>Per disattivare sendmail date i seguenti comandi:
<P>
<HR>
<PRE>
mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
mv /usr/bin/newaliases /usr/bin/newaliases.OFF
mv /usr/bin/mailq /usr/bin/mailq.OFF
chmod 755 /usr/sbin/sendmail.OFF /usr/bin/newaliases.OFF /usr/bin/mailq.OFF
/usr/sbin/sendmail.OFF -q
</PRE>
<HR>
<P>L'ultimo comando serve a svuotare dalle eventuali email la coda delle email,
inviandole.
<P>Note per RedHat e Mandrake: se installando postfix vi dice che c'&egrave; un conflitto
con sendmail, devete prima rimuovere quest'ultimo, magari prima facendovi un
backup dei suoi file di configurazione, nel caso (ma quando mai! ;-) ) voleste
ritornare indietro. Postfix fornisce dei &quot;wrapper&quot; per i comandi
di sendmail, quindi forzate la rimozione con l'opzione &quot;--nodeps&quot;,
per ignorare le dipendenze. Se volete semplicemente disattivarlo, fate come
mostrato poco fa, altrimenti per disinstallarlo, date i seguenti comandi:
<P>
<HR>
<PRE>
mkdir /root/sendmail-old
cp /etc/aliases /root/sendmail-old/
cp /etc/sendmail.cf /root/sendmail-old/
cp /etc/sendmail.cw /root/sendmail-old/
cp /etc/mail/* /root/sendmail-old/
rpm -e sendmail sendmail-doc sendmail-cf --nodeps
killall sendmail
rpm -Uvh postfix-19990906_pl07.i586.rpm
</PRE>
<HR>
<P>(l'ultimo comando potrebbe essere diverso, nel caso abbiate una versione
pi&ugrave; recente di postfix).
<P>Se avevate un'installazione funzionante precedente di sendmail, potete
importare i vecchi alias in postfix senza riscriverli tutti, copiando dal backup
precedente &quot;/root/sendmail-old/aliases&quot; in &quot;/etc/postfix/aliases&quot;
e dando il comando &quot;newaliases&quot; per creare il file &quot;aliases.db&quot;
necessario a postfix.
<HR>
<A HREF="Quick-Easy-Configuration-HOWTO-7.html">Avanti</A>
<A HREF="Quick-Easy-Configuration-HOWTO-5.html">Indietro</A>
<A HREF="Quick-Easy-Configuration-HOWTO.html#toc6">Indice</A>
</BODY>
</HTML>