18.4. Los Ficheros sendmail.cf y sendmail.mc

El programa procesador de macros m4 genera el fichero sendmail.df cuando procesa el fichero de configuración de macros proporcionado por el administrador del sistema local. A través de lo que resta de este capítulo, nos referiremos al fichero de configuración como el fichero sendmail.mc.

EL proceso de configuración es básicamente una forma de crear un fichero sendmail.mc apropiado que incluya macros que describan su configuración deseada. Las macros son expresiones que el procesador de macros m4 entiende y expande en la sintaxis compleja de sendmail.cf. Las expresiones macro se componen del nombre de la macro (el texto en letras mayúsculas al principio), que se asemejan a una función en un lenguaje de programación, y algunos parámetros (el texto entre corchetes) que se utilizan en la expansión. Los parámetros pueden ser pasados literalmente a la salida de sendmail.cf o pueden ser utilizados para controlar la manera en que se realiza el procesamiento de la macro.

El fichero sendmail.mc para una configuración mínima (UUCP o SMTP con todos los mensajes no locales retransmitidos a un anfitrión inteligente conectado directamente a Internet) puede ser tan corto como 10 o 15 líneas, excluyendo comentarios.

18.4.1. Dos Ejemplos de los Ficheros sendmail.mc

Si usted es un administrador de varios hospedajes de correo distintos, quizá no quiera nombrar su fichero de configuración sendmail.mc. En vez de ésto, es practica usual nombrarlo después del nombre del anfitrión, —vstout.m4 en nuestro caso. El nombre no importa realmente en tanto que la salida sea llamada sendmail.cf. Proporcionar un nombre único para el fichero de configuración de cada anfitrión le permite conservar todos los ficheros de configuración en el mismo directorio y es tan sólo una conveniencia administrativa. Echemos un vistazo a dos ejemplos de ficheros de configuración de macros para que sepamos dónde estamos apuntando.

La mayoría de las configuraciones de sendmail de la actualidad usan SMTP únicamente. Es muy sencillo configurar sendmail para SMTP. Ejemplo 18-1 espera que esté disponible un servidor de nombres DNS para resolver anfitriones e intentará aceptar y enviar todo el correo para los anfitriones usando únicamente SMTP.

Un fichero sendmail.mc para vstout en la Cervecera Virtual se muestra en Ejemplo 18-2. vstout usa SMTP para comunicarse con todos los anfitrións en la LAN de la cervecera, y verá la semejanza con la configuración genérica para SMTP exclusivamente que acaba de presentarse. En suma, la configuración de vstout envía todo el correo para otros destinatarios moria, su anfitrión de retransmisión a Internet por UUCP.

Si se comparan y contrastan las dos configuraciones, quizá sea capaz de inferir qué hace cada uno de los parámetros de configuración. Los explicaremos todos ellos en detalle.

18.4.2. Parámetros sendmail.mc Típicamente Empleados

Unos pocos de los items en el fichero sendmail.mc se requieren todo el tiempo; otros pueden ignorarse si las configuraciones por omisión le sirven. La secuencia general de las definiciones en el fichero sendmail.mc son como lo que sigue:

  1. VERSIONID

  2. OSTYPE

  3. DOMAIN

  4. FEATURE

  5. Local macro definitions

  6. MAILER

  7. LOCAL_* conjuntos de reglas (rulesets)

Hablaremos acerca de cada uno en las siguientes secciones y nos referiremos a nuestros ejemplos en Ejemplo 18-1 y Ejemplo 18-2, cuando sea apropiado, para explicarlos.

18.4.2.2. VERSIONID y OSTYPE

    VERSIONID(`@(#)sendmail.mc  8.9 (Linux) 01/10/98')
La macro VERSIONID es opcional, pero es útil para grabar la versión de configuración de sendmail en el fichero sendmail.cf. Así que a menudo se encontrará con ello, y nosotros lo recomendamos. En cualquier caso, asegúrese de incluir:

    OSTYPE(`linux')
Esta es probablemente la definición más importante. La macro OSTYPE provoca que se incluya un fichero de definiciones que son buenas opciones predeterminadas para su sistema operativo. La mayoría de las definiciones en un fichero macro OSTYPE configuran los nombres de ruta de varios ficheros de configuración, transporte de correo [2] y argumentos, y la localización de directorios que usa sendmail para almacenar mensajes. La distribución estándar de código fuente de sendmail incluye un fichero de este tipo para GNU/Linux, que se incluye en el ejemplo previo. Algunas distrbuciones de GNU/Linux, particularmente la distribución Debian, incluye su propio fichero de definiciones que es compatible con la jerarquía de ficheros de GNU/Linux. Cuando su distribución haga ésto, probablemente debería usar su definición en vez de la genérica de GNU/Linux por omisión.

La definición OSTYPE debería ser una de las primeras en aparecer en su fichero sendmail.mc, debido a que muchas otras definiciones dependen de ella.

18.4.2.3. DOMAIN

La macro DOMAIN es útil cuando se desea configurar un gran número de máquinas en la misma red de una manera estandarizada. Si se está configurando un pequeño número de anfitrións, probablemente es mejor no preocparse de ésto. Típicamente se configuran items, como el nombre de los anfitrións de retransmisión [3] o concentradores [4] que todos los anfitrións de la red utilizarán.

La instalación estándar continene un directorio de plantillas de macros m4 utilizadas para dirigir el proceso de configuración. Este directorio se nombra normalmente como /usr/share/sendmail.cf o algo por el estilo. Aquí se encuentra un subdirectorio nombrado domain que contiene plantillas de configuración específicas para el dominio. Para hacer uso de una macro DOMAIN, se debe crear su propio fichero macro conteniendo las definiciones estándar que se requieran para el sitio, y escribirlas en el subdirectorio domain. Sólo se deberían incluir normalmente las definiciones de macro que sean únicas a su dominio aquí, como las definiciones de los anfitrión inteligentes o los anfitrión de retransmisión, pero no limitándose a éstos.

La distribución del código fuente de sendmail viene con algunos ficheros de ejemplo de definición de macros que puede usar para crear el suyo propio.

Si salvó su fichero de macros de dominio como /usr/share/sendmail.cf/domain/vbrew.m4, debería incluir las definiciones en su sendmail.mc usando:
    DOMAIN(`vbrew')

18.4.2.6. Definición de los protocolos de transporte de correo

Si desea que sendmail transporte correo de cualquier otra forma que por entrega local, debe indicarle qué transporte tiene que emplear. La macro MAILER hace esto muy fácil. La versión actual de sendmail soporta una variedad de protocolos de transporte de correo; algunos de éstos son experimentales, otros son probablemente usados raramente.

En nuestra red necesitamos transporte SMTP para enviar y recibir correo entre los anfitrións en nuestra red local, y el transporte UUCP para enviar y recibir correo desde nuestro anfitrión inteligente. Para lograr ésto, simplemente incluimos ambos transportes de correo, el smtp y el uucp. El transporte de correo local se incluye por omisión, pero puede ser definido por claridad, si o desea. Si se incluyen ambos smtp y el uucp en su configuración, debe asegurarse siempre de definir primero el agente de correo smtp.

Los transportes más comúnmente usados disponibles al usar la macro MAILER se describen en la siguiente lista:

Hay otros como pop, procmail, mail11, phquery, y cyrus que son útiles, pero menos comunes. Si le pica la cusiosidad, puede leer sobre éstos en el libro de sendmail o en la documentación suministrada en el paquete de fuentes.

Notas

[1]

starting at the beginning of the next line, delete all characters up to and including the next newline.

[2]

N. del T. mailers en el original

[3]

N. del T: relay anfitrións en inglés

[4]

N. del T. hubs en inglés