Página siguiente Página anterior Índice general

3. Configuración de sendmail

3.1 El fichero principal de configuración

Sendmail utiliza un sistema de reglas muy complejo para su configuración. Debido a que se pueden hacer millares de cosas con ellas, escribir un fichero sendmail.cf desde cero es bastante inusual y lleva mucho tiempo. Si está interesado en hacer eso, debería dejar de leer este documento ahora mismo y leer, en su lugar, el Bat Book de la editorial O'Reilly.

En lugar de crear a mano estas reglas, confiaremos en el procesador de macros m4 para crear nuestro fichero de configuración a partir de fragmentos escritos anteriormente que se distribuyen junto con sendmail.

Echemos un vistazo a las primeras líneas del fichero sendmail.mc:

include(/usr/lib/sendmail.cf/m4/cf.m4)
VERSIONID(`sendmail.mc - roessler@guug.de')
OSTYPE(debian)
define(`ALIAS_FILE',`/etc/mail/aliases')

Al comienzo, se incluye cf.m4. Este fichero de macros m4 contiene muchas definiciones de macro para el resto del fichero. Asegúrese de que la ruta de archivo que proporciona aquí es correcta (la que aquí se representa es la típica de Debian GNU/Linux). La macro OSTYPE se utiliza para dar algunas configuraciones por defecto muy útiles. Si no utiliza un sistema Debian, reemplace la palabra debian por linux. ALIAS_FILE indica a sendmail dónde buscar la lista de alias.

Las siguientes líneas dirán a sendmail que utilice la característica genericstable, y dónde encontrar los ficheros de configuración necesarios para usarla:

FEATURE(masquerade_envelope)
FEATURE(genericstable, `hash -o /etc/mail/genericstable')
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')

La característica masquerade_envelope le dice a sendmail que aplique la cabecera reescribiendo el sobre del remitente de un mensaje. Esta es la dirección de correo a la que los subsistemas de reparto dirigirán los informes de fallo en el reparto y mensajes de advertencia. Los ficheros generics* se explicarán más abajo.

Ahora, debemos definir un, llamémosle así, servidor «inteligente» (smart-host), esto es, una máquina que manejará el correo saliente de nuestro sistema. Dése cuenta de que esta máquina puede ser distinta de los servidores POP e IMAP de su proveedor. En caso de duda, llame al servicio técnico. El código en el fichero de configuración maestra es:

define(`SMART_HOST',`mensajes-salientes.su.proveedor')

Reemplace mensajes-salientes.su.proveedor por la dirección completa de de la máquina de su proveedor de servicios Internet que gestionará el correo saliente.

Las dos líneas finales incluyen las definiciones del cartero que son requeridas por sendmail para averiguar cómo manejar varios tipos de correo:

MAILER(local)
MAILER(smtp)

Para generar el fichero sendmail.cf a partir de este sendmail.mc, teclee los siguientes comandos (como root):

# m4 sendmail.mc > _sendmail.cf
# mv -f _sendmail.cf sendmail.cf

Fíjese en que la técnica de escribir las salidas m4 a un fichero temporal que será movido a su lugar correcto. Esto ayuda a prevenir que sendmail lea ficheros de configuración parcialmente escritos.

3.2 Reescritura de direcciones

Primero, le debemos comunicar a sendmail qué direcciones van a considerarse como locales (y de esta manera deberían estar sujetas a la reescritura). Esto es bastante simple: sólo coloque el nombre completo de su máquina en el fichero /etc/mail/genericsdomain Para conseguir el nombre completo de su máquina, teclee el siguiente comando:

$ hostname -f

Ahora, vayamos con la tabla de reescritura propiamente dicha: /etc/mail/genericstable. Este fichero consiste en dos columnas separadas por espacios en blanco. La primera columna contiene la dirección local, la segunda columna contiene la dirección de correo electrónico que debería utilizarse en su lugar. El fichero podría tener este aspecto:

harry   harryx@su.proveedor
maude   maudey@el.proovedor.de.ella
root    fredx@su.proovedor
news    fredx@su.proovedor

Note que debe haber una entrada para cada cuenta de la máquina local, de manera que el correo generado que salga del sistema local lleve, automáticamente, información de cabecera correcta.

Por razones de prestaciones, sendmail no utiliza este fichero directamente, utiliza una versión procesada en su lugar. Para generarla utilice el siguiente comando:

# makemap -r hash genericstable.db < genericstable

Fíjese en que las reglas de reescritura incluidas en genericstable no se aplican al correo local ni a los mensajes que recibe desde fuera; el mapeo sólo se utiliza si un mensaje abandona su sistema local a través del servidor inteligente de su proovedor de Internet.

3.3 Alias

El fichero de alias contiene información adicional de los nombres locales que sólo son válidos para mensajes locales. Esto es útil para cuentas administrativas como root que recibe los mensajes generados automáticamente por el sistema.

Un comienzo razonable para /etc/mail/aliases podría ser el siguiente fichero:

root: fred
news: root
postmaster: root
mail: root
www: root

nobody: /dev/null
MAILER-DAEMON: nobody

Este ejemplo reenviará el correo local para los usuarios root, news, postmaster, mail, y www a fred, mientras que los mensajes para nobody y para MAILER-DAEMON se redirigirán a /dev/null.

Al igual que el fichero genericstable, aliases puede contener cientos de entradas. Esto es, podría ser ineficiente que sendmail utilizara el fichero de texto tal y como se describe. El mismo mecanismo utilizado para genericstable se utiliza para aliases: se genera una tabla preformateada. En lugar de utilizar makemap directamente, puede utilizar el comando newaliases esta vez. Se encargará automáticamente de lo que sea necesario para que los cambios tomen efecto.


Página siguiente Página anterior Índice general