BSD-FAQ-it
Indietro | Capitolo 8. Sendmail | Avanti

# 8.3. il file /etc/mail/freebsd.mc (il file principale di configurazione)

Il file di configurazione principale di Sendmail 8.12 è /etc/mail/sendmail.cf, questo file può essere generato utilizzando il processore m4 GNU che legge un file di macro di input (.mc) e crea un file di configurazione in output (sendmail.cf) che si basa sulle direttive macro predefinite. Le direttive macro m4 GNU di qualsiasi versione di FreeBSD vengono salvate nel file /etc/mail/freebsd.mc. Ecco un esempio di direttiva macro m4 GNU contenuta nel file /etc/mail/freebsd.mc

    FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl

Questa direttiva produce la seguente riga K nel file di configurazione /etc/mail/nomehost.dominio.cf

    # Virtual user table (maps incoming users)
    Kvirtuser hash -o /etc/mail/virtusertable.db

Conoscendo a priori le caratteristiche e le opzioni di Sendmail necessarie all'ambiente di produzione che vogliamo realizzare, è anche possibile definire un piccolo file di macro m4 GNU contenente tutte le direttive del caso. Il processore di macro m4 GNU è case-sensitive, è quindi necessario accertarsi che tutte le direttive utilizzino i caratteri opportuni, maiuscoli o minuscoli. In caso contrario le impostazioni non verranno elaborate adeguatamente dal processore m4 GNU. Il file /etc/mail/freebsd.mc è già sufficente per definire le caratteristiche per un piccolo server

    divert(-1)
    divert(0)
    VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc,v 1.10.2.17 2002/11/14 03:21:18 keramida Exp $')
    OSTYPE(freebsd4)
    DOMAIN(generic)
    FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
    FEATURE(blacklist_recipients)
    FEATURE(local_lmtp)
    FEATURE(mailertable, `hash -o /etc/mail/mailertable')
    FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
    define(`confCW_FILE', `-o /etc/mail/local-host-names')
    define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
    define(`confMAX_MIME_HEADER_LENGTH', `256/128')
    define(`confNO_RCPT_ACTION', `add-to-undisclosed')
    define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
    MAILER(local)
    MAILER(smtp)

Un buon amministratore di sistemi e-mail gestisce svariati host e quindi utilizza diversi file /etc/mail/freebsd.mc come se si trattasse di template. Secondo consuetudine il postmaster crea diversi file, uno per ogni host che amministra, e mantiene un'archivio aggiornato di modelli. In questo database memorizza tutte le modifiche che apporta ai vari sistemi che amministra indicandovi anche il numero di versione. FreeBSD, grazie all'integrazione completa con Sendmail, ci aiuterà a creare in maniera veloce ed automatica tutte le versioni ed i file .mc grazie al comando make che dovrà essere digitato in /etc/mail

    [root@mail mail]# make
    ...........................
    [root@mail mail]# ls *.mc
    -rw-r--r--  1 root  wheel  4192 Apr  3 10:55 freebsd.mc
    -rw-r--r--  1 root  wheel  3455 Jun 22 11:31 mail.example.org.mc

L'esecuzione del comando make ha provveduto a generare automaticamente il file /etc/mail/mail.example.org.mc che contiene tutte le direttive necessarie al processore m4 GNU per elaborare un nuovo file di configurazione di Sendmail nel formato/etc/mail/nomehost.dominio.cf

    [root@mail mail]# ls *.cf
    -rw-r--r--  1 root  wheel  61531 Aug 19 16:35 mail.example.org.cf
    ............................
    [root@mail mail]# cp sendmail.cf sendmail.cf.bak
    [root@mail mail]# cp mail.example.org.cf sendmail.cf
    ............................
    [root@mail mail]# ls *.cf
    -rw-r--r--  1 root  wheel  61531 Aug 19 16:35 mail.example.org.cf
    -rw-r--r--  1 root  wheel  61531 Aug 19 16:35 sendmail.cf

abbiamo salvato la vecchia configurazione e successivamente abbiamo copiato il nuovo file di configurazione di Sendmail assegnandogli in nome /etc/mail/sendmail.cf, a questo punto non rimane che riavviare il servizio

    [root@mail mail]# make restart
    Restarting: sendmail sendmail-clientmqueue.

La procedura ora descritta può essere automatizzata senza dover ricorrere alla copia del file .cf sul file di configurazione principale sendmail.cf

    # cd /etc/mail
    [root@ns mail]# make
    [root@ns mail]# make install
    install -m 444 ns.miohost.net.cf /etc/mail/sendmail.cf
    install -m 444 freebsd.submit.cf /etc/mail/submit.cf
    [root@ns mail]# make restart
    Restarting: sendmail sendmail-clientmqueue.

siamo quasi pronti a gestire il nostro piccolo server di posta elettronica, ma non dobbiamo dimenticare di impostare i controlli sugli accessi e la configurazione che sarà necessaria al nostro sistema per avere la capacità di ricevere i messaggi inoltrati dalle altre macchine presenti sulla rete, per quanto concerne ulteriori informazioni sulle direttive m4 GNU è necessario rifersi direttamente al sito di Sendmail alla URLs http://www.sendmail.org/m4/readme.html.

Indietro | Partenza | Avanti
FreeBSD e Sendmail | Risali | il file /etc/mail/access (controlliamo gli accessi)