27.7. SMTP con UUCP

La configuración de sendmail que se proporciona con la distribución de FreeBSD está diseñada para organizaciones que se conectan directamente a internet. Las organizaciones que deseén enviar y recibir sus correos utilizando UUCP deben instalar otro fichero de configuración para sendmail.

El ajuste de forma manual del archivo /etc/mail/sendmail.cf es un tema para expertos. La versión 8 de sendmail genera ficheros de configuración mediante el preprocesador m4(1), gracias al que las opciones de configuración se pueden escribir utilizando un nivel de abstracción mayor. Los archivos de configuración de m4(1) se pueden encontrar en /usr/src/usr.sbin/sendmail/cf.

Si no se instaló el sistema base con todas las fuentes el conjunto de ficheros de configuración de sendmail se puede obtener a partir de un paquete de fuentes determinado. Suponiendo que tengamos el CDROM con el código fuente de FreeBSD montado se puede ejecutar:

# cd /cdrom/src
# cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail

Este comando extrae sólamente unos pocos cientos de kilobytes. El fichero README que hay en el directorio cf puede servirle como una introducción básica a la configuración mediante m4(1).

La mejor forma de soportar la entrega de correo mediante UUCP es utilizando la característica mailertable. Esta característica crea una base de datos que sendmail utiliza para tomar decisiones de encaminamiento.

En primer lugar creamon el fichero .mc. El directorio /usr/src/usr.sbin/sendmail/cf/cf alberga varios ejemplos del mismo. Suponiendo que nuestro fichero configuración se llama foo.mc para convertir dicho archivo en un fichero sendmail.cf válido basta con ejecutar lo siguiente:

# cd /usr/src/usr.sbin/sendmail/cf/cf
# make foo.cf
# cp foo.cf /etc/mail/sendmail.cf

Un fichero .mc suele tener este aspecto:

VERSIONID(`Su número de versión') OSTYPE(bsd4.4)

FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')

define(`UUCP_RELAY', su.relay.uucp)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')

MAILER(local)
MAILER(smtp)
MAILER(uucp)

Cw    alias.de.su.servidor
Cw    nombredesunodouucp.UUCP

Las líneas que contienen accept_unresolvable_domains, nocanonify, y confDONT_PROBE_INTERFACES prohíben la utilización del DNS durante la entrega de correo. La cláusula UUCP_RELAY es necesaria para soportar entrega mediante UUCP. Lo único que hay que hacer es escribir un nombre de máquina en ese punto. Dicha máquina debe ser capaz de gestionar las direcciones del pseudo-dominio .UUCP; en la mayoría de los casos se escribe en este punto el nombre de la máquina perteneciente al proveedor de servicios que hace de relay.

Una vez que tenemos esto configurado se necesita un fichero /etc/mail/mailertable. Si solamente tenemos un enlace con el exterior, que usamos para todos nuestro correos, basta una configuración como la que se muestra a continuación:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
.                             uucp-dom:su.relay.uucp

Un ejemplo más complejo puede parecerse al siguiente:

#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de   uucp-dom:horus
.interface-business.de        uucp-dom:if-bus
interface-business.de         uucp-dom:if-bus
.heep.sax.de                  smtp8:%1
horus.UUCP                    uucp-dom:horus
if-bus.UUCP                   uucp-dom:if-bus
.                             uucp-dom:

Las primeras tres líneas se encargan de manejar casos especiales en los que el correo dirigido directamente al dominio no se envía a la ruta por defecto sino a algún vecino UUCP para acortar el número de saltos involucrados en la entrega de dichos correos. La siguiente línea gestiona el correo para el dominio ethernet local, el cual puede ser entregado utilizando SMTP. Finalmente los vecinos UUCP se mencionan en la notación de pseudo-dominio .UUCP para permitir que un vecino UUCP receptor de correo pueda sobreescribir las reglas por defecto. La última línea siempre es un punto; se asocia con cualquier otra cosa que no ha sido tratada en reglas anteriores y donde se realiza entrega UUCP a un vecino UUCP que sirve como pasarela de correo universal para todo el mundo. Todos los nombres de máquinas bajo la clave uucp-dom: deben ser vecinos UUCP válidos, lo cual se puede verificar utilizando el comando uuname.

Recuerde que este fichero debe convertirse en una base de datos DBM antes de que usarse. El comando que se utiliza para realizar esta tarea se suele especificar como un comentario al principio del fichero mailertable. Cada vez que se modifique el fichero mailertable se debe ejecutar dicho comando.

Un consejo final: si dudamos sobre una determinada ruta de encaminamiento de correo se puede ejecutar sendmail con el parámetro -bt. Este parámetro ejecuta sendmail en modo prueba de direcciones; simplemente basta con escribir 3,0 seguido por la dirección de correo de la que queremos comprobar su correcto encaminamiento. La última línea nos dice el agente de correo interno que se utiliza, la máquina de destino con que el agente será invocado y la dirección (posiblemente traducida) de correo. Se puede abandonar este modo de funcionamiento escribiendo Ctrl+D.

% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 [email protected]
canonify           input: foo @ example . com
...
parse            returns: $# uucp-dom $@ su.relay.uucp $: prueba < @ ejemplo . com . >
> ^D

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <[email protected]>.
Envíe sus preguntas sobre la documentación a <[email protected]>.