lorenzo.pulici@usa.net
Si assume che abbiate il tipo di accesso ad Internet che sembra attualmente essere il più comune alle università e per i servizi online: utilizzate PPP con una connessione seriale per accedere alla rete del vostro provider. La vostra posta in arrivo viene presa dal server POP o IMAP del provider, mentre i messaggi in uscita verranno inviati tramite SMTP. Non disponete di un nome di dominio di vostra proprietà, per cui tutto utilizza un indirizzo unico.
Si assume che sia installata sul vostro sistema una versione sufficientemente aggiornata di sendmail di Eric Allman (la versione 8.8.8 è l'ultima al momento della stesura di questo documento e funziona correttamente).
Questo documento si riferisce in parte a proprietà specifiche dei sistemi Debian/GNU Linux; gli utenti di altre distribuzioni dovranno averne particolare cura.
Accertatevi di avere a portata di mano le seguenti informazioni:
La configurazione che si sta progettando ha due obiettivi principali:
Per raggiungerli, si usufruirà della feature
genericstable
di sendmail.
Tutti i file di configurazione di sendmail verranno messi in una
directory separata, /etc
:
/etc/mail
. Normalmente, sendmail si aspetta di trovare questi
file direttamente in /etc
. Per evitare problemi
/etc/sendmail.cf
dovrà essere un link simbolico a
/etc/mail/sendmail.cf
.
Questi sono i file che affollano /etc/mail
:
aliases
-contiene ulteriori indirizzi localigenericsdomain
- contiene alcune informazioni sulla
configurazione del vostro host locale genericstable
- contiene le attuali regole di riscrittura sendmail.cf
- file di configurazione di sendmailsendmail.mc
- il sorgente di sendmail.cf
.Alcuni di questi file saranno accompagnati da file .db
.
Questi file contengono database hash per l'uso diretto da parte di
sendmail.
Si assume che la parte cf
del tree dei sorgenti di sendmail
risieda in una directory denominata /usr/lib/sendmail.cf
.
Questo è il caso dei sistemi Debian GNU/Linux.
Altre distribuzioni potrebbero porre questi file in altre posizioni.
Consultate la documentazione della vostra distribuzione per maggiori
informazioni.
Sendmail usa un sistema di regole dall'elevata complessità per la
sua configurazione. Anche se è possibile eseguire una gran
quantità di trucchetti in questo modo, scrivere da zero un file
sendmail.cf
è piuttosto insolito e porta via molto tempo.
Se siete tuttavia interessati, allora smettete di leggere questo documento
adesso per iniziare invece il "Bat Book" della O'Reilly.
Invece di mettere a punto manualmente queste regole, ci si
affiderà al processore di macro m4
per costruire la
configurazione, partendo dalle parti già pronte distribuite con
sendmail.
Si dia un'occhiata alle prime righe del file sendmail.mc
:
include(/usr/lib/sendmail.cf/m4/cf.m4) VERSIONID(`sendmail.mc - roessler@guug.de') OSTYPE(debian) define(`ALIAS_FILE',`/etc/mail/aliases')
All'inizio viene incluso cf.m4
.
Questo file macro di m4 contiene numerose definizioni macro per il resto del
file. Ci si assicuri di inserire il percorso corretto - quello qui presente
è tipico per una distribuzione Debian GNU/Linux.
La macro OSTYPE
viene utilizzata per dare alcune opzioni di default
utili per determinati valori di configurazione. Se non si utilizza un
sistema Debian, sostituire la parola "debian" con "linux".
ALIAS_FILE
dice a sendmail dove trovare la lista degli alias.
Le righe seguenti indicano a sendmail di utilizzare la feature
genericstable
, e dove trovare i file di configurazione necessari per
usufruirne:
FEATURE(masquerade_envelope) FEATURE(genericstable, `hash -o /etc/mail/genericstable') GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')
masquerade_envelope
indica a sendmail di applicare la
riscrittura degli header al mittente dell'envelope
di un messaggio.
Questo è l'indirizzo di posta al quale i sottosistemi di consegna
della posta indirizzeranno i loro rapporti di mancata consegna e i messaggi
di avvertimento.
I file generics*
verranno illustrati più sotto.
È ora necessario definire un cosiddetto "smart host", vale a dire, una macchina che gestirà la posta in uscita dal vostro sistema. Questa macchina può non essere lo stesso server POP o IMAP del vostro ISP. Se avete dubbi contattate l'assistenza. Il codice del file principale di configurazione:
define(`SMART_HOST',`postainuscita.mio.provider')
Le due ultime righe includono la definizione "mailer", necessaria a sendmail per sapere in che modo gestire i diversi tipi di posta:
MAILER(local) MAILER(smtp)
Per generare il file sendmail.cf
partendo da questo
sendmail.mc
, digitare da root i seguenti comandi:
# m4 sendmail.mc > _sendmail.cf # mv -f _sendmail.cf sendmail.cf
Si noti la tecnica di scrivere l'output di m4
su di un file temporaneo che verrà successivamente spostato nella
giusta locazione. Ciò impedisce a sendmail di leggere file di
configurazione scritti solo parzialmente.
Prima di tutto, è necessario far conoscere a sendmail quali sono
da considerarsi locali (e perciò soggetti a riscrittura). Operazione
molto semplice: è sufficiente inserire il nome qualificato (FQDN)
della vostra macchina nel file
/etc/mail/genericsdomain
.
Per conoscere il nome qualificato del vostro host, digitare il seguente
comando:
$ hostname -f
Si arriva finalmente alla tabella di riscrittura:
/etc/mail/genericstable
.
Questo file consiste di due colonne, separate da spazi vuoti. La prima
colonna contiene l'indirizzo locale, la seconda l'indirizzo e-mail che
dovrà sostituirlo.
Il file potrebbe assomigliare a questo:
harry harryx@your.isp maude maudey@her.isp root fredx@your.isp news fredx@your.isp
Deve esserci una riga per ogni account presente sulla macchina locale, cosicchè la posta generata automaticamente diretta esternamente alla macchina riporterà negli headers le informazioni corrette.
Per motivi di prestazioni, sendmail non utilizza direttamente questo file di testo, ma si affida ad una versione "hashed". per generarla, digitare il seguente comando.
# makemap -r hash genericstable.db < genericstable
Si noti che le regole di riscrittura della
genericstable
non saranno applicate alla posta locale o a
quella in arrivo dall'esterno - la mappatura viene usata unicamente se un
messaggio lascia il vostro sistema verso lo smart host del vostro ISP.
Il file degli aliases contiene nomi locali addizionali validi unicamente
per messaggi locali. È utile per account amministrativi quali
root
che ricevono posta generata automaticamente dal vostro sistema.
Un punto di partenza per il vostro
/etc/mail/aliases
potrebbe assomigliare a questo file:
root: fred news: root postmaster: root mail: root www: root nobody: /dev/null MAILER-DAEMON: nobody
In questo esempio, la posta locale per gli utenti root
,
news
, postmaster
, mail
, e www
verrà inoltrata a fred
, mentre quella per nobody
e
MAILER-DAEMON
verrà rediretta a
/dev/null
.
Come per genericstable
, aliases
potrebbe avere
parecchie righe.
Per questo motivo, sarebbe ancora una volta inefficiente un uso del file di
testo così descritto da parte di sendmail. Viene allora
applicato il medesimo meccanismo per genericstable
anche con aliases
: si genera un hashed database.
Invece di invocare direttamente makemap
,
è possibile digitare stavolta il comando
newaliases
, che si preoccuperà da solo di fare il lavoro
necessario.
La distribuzione dei sorgenti di sendmail include una certa
documentazione. Leggere soprattutto il file
cf/README
.
Se il vostro interesse è di approfondire ancora di più le opzioni di configurazione di sendmail, procuratevi il "Bat Book" della O'Reilly: Bryan Costales, Eric Allman, e Neil Rickert: "sendmail". O'Reilly, 1993.