Sendmail address rewriting mini-HOWTO
 Thomas Roessler, [email protected]
 v0.0, 6 maggio 1998

 Questo documento � una breve descrizione di come impostare il file di
 configurazione di sendmail per un uso casalingo con una connessione
 dial-up.  Traduzione a cura di Lorenzo Pulici, [email protected]

 1.  Introduzione

 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:


 �  il server di posta del vostro ISP

 �  il vostro indirizzo di posta Internet



 La configurazione che si sta progettando ha due obiettivi principali:


 1. Possibilit� di inviare posta tra i vari utenti locali

 2. Il mondo esterno deve vedere gli indirizzi di posta dell'ISP e non
    quelli locali.


 Per raggiungerli, si usufruir� della feature genericstable di
 sendmail.


 2.  Mappa dei file

 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 locali


 �  genericsdomain - contiene alcune informazioni sulla configurazione
    del vostro host locale

 �  genericstable - contiene le attuali regole di riscrittura

 �  sendmail.cf - file di configurazione di sendmail

 �  sendmail.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.


 3.  Configurare sendmail

 3.1.  Il file principale di configurazione

 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 - [email protected]')
 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')
 ______________________________________________________________________


 La feature 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')
 ______________________________________________________________________


 Sostituire postainuscita.mio.provider con il nome qualificato (FQDN)
 del server del vostro ISP.


 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.


 3.2.  Riscrittura degli indirizzi.

 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   [email protected]
 maude   [email protected]
 root    [email protected]
 news    [email protected]
 ______________________________________________________________________




 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.


 3.3.  Aliases

 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.


 4.  Letture consigliate

 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.