27.4. Sustitución del Agente de Transferencia de Correo

Escrito por Andrew Boothman. Información obtenida de correos escritos por Gregory Neil Shapiro.

Como ya se ha comentado FreeBSD viene con sendmail ya instalado como agente de transferencia de correo por defecto. De esta forma sendmail se encarga de gestionar el correo entrante y saliente.

No obstante, debido a distintas razones algunos administradores de sistemas prefieren utilizar otro MTA. Estas razones varían desde simplemente querer probar otros programas de transferencia de correo, hasta la necesidad de utilizar un determinado programa que hace uso de una función específica de un agente determinado. Por suerte cualesquiera que sean estas razones FreeBSD posee un sencillo procedimiento para sustituir a sendmail.

27.4.1. Instalación de un nuevo MTA

Existen una amplia gama de MTA alternativos a sendmail. Un buen punto de partida es el Sistema de Ports de FreeBSD, donde se pueden localizar varios. Por supuesto el usuario tiene libertad para utilizar cualquier MTA, siempre y cuando se pueda ejecutar en FreeBSD sin problemas.

Lo primero es instalar el nuevo MTA. Una vez que está instalado normalmente se tiene la oportunidad para decidir si realmente cubre las necesidades y también se tiene la oportunidad de configurar el nuevo software antes de sustituir a sendmail. El usuario debe tener en cuenta que el nuevo MTA puede sobreescribir algunos binarios del sistema como por ejemplo /usr/bin/sendmail. En cualquier caso el nuevo software de correo suele entrar en funcionamiento con una configuración por defecto.

Por favor, recuerde que se recomienda leer la documentación del MTA seleccionado para obtener más información.

27.4.2. Desactivación de la aplicación sendmail

El procedimiento utilizado para ejecutar sendmail cambió significativamente entre las releases 4.5-RELEASE y 4.6-RELEASE. De esta forma el procedimiento utilizado para la desactivación hoy en día es sutílmente distinto al utilizado en dichas distribuciones.

27.4.2.1. FreeBSD 4.5-STABLE antes de 2002/4/4 y anteriores (Incluyendo 4.5-RELEASE y anteriores)

Introducir:

sendmail_enable="NO"

dentro de /etc/rc.conf. Esta variable desactiva el servicio de recepción de correo de sendmail, pero salvo que se modifique (ver más adelante) el fichero /etc/mail/mailer.conf sendmail todavía será la aplicación elegida para enviar correo electrónico.

27.4.2.2. FreeBSD 4.5-STABLE desde de 2002/4/4 (Incluyendo 4.6-RELEASE y posteriores)

Para poder desactivar completamente sendmail haga lo siguiente:

sendmail_enable="NONE"

dentro del fichero /etc/rc.conf.

Aviso Se desactiva el servicio de correo de salida de sendmail. Es importanque que se reemplace con un sistema de entrega de correo alternativo que sea totalmente funcional. En caso contrario funciones del sistema FreeBSD tales como periodic(8) no podrán entregar sus resultados por correo eletrónico tal y como normalmente hacen. Varias partes del sistema FreeBSD esperan disponer de un sistema de correo funcional compatible con sendmail. Si las aplicaciones continúan utilizando los binarios de sendmail para realizar envíos de correo después de su desactivación el correo podría ser almacenado en una cola inactiva de sendmail, en cuyo caso nunca se entregaría.

Si sólo se quiere desactivar el servicio de correo de entrada de sendmail, basta con establecer la variable:

sendmail_enable="NO"

dentro de /etc/rc.conf. En rc.sendmail(8) tiene más información sobre las opciones de arranque de sendmail.

27.4.3. Ejecución del nuevo MTA en el arranque

Existen dos métodos alternativos para ejecutar el nuevo MTA en el arranque, dependiendo de la versión de FreeBSD que se esté ejecutando.

27.4.3.1. FreeBSD 4.5-STABLE antes de 2002/4/11 (Incluyendo 4.5-RELEASE y anteriores)

Se debe añadir un script en /usr/local/etc/rc.d/ cuyo nombre termine en .sh y que sea ejecutable por root. El script debe aceptar los parámetros start y stop. Cuando el sistema FreeBSD se está inicializando, los scripts de arranque ejecutarán el siguiente comando:

/usr/local/etc/rc.d/supermailer.sh start

La misma orden se puede utilizar también para ejecutar el servidor de forma manual. Cuando el sistema se está reiniciando los scripts del sistema ejecutan los ficheros ubicados en /usr/local/etc/rc.d/ utilizando la opción stop, en nuestro caso:

/usr/local/etc/rc.d/supermailer.sh stop

Dicho comando tambíen se puede utilizar para detener el servidor de correo de forma manual cuando el sistema FreeBSD se ejecuta con normalidad.

27.4.3.2. FreeBSD 4.5-STABLE después de 2002/4/11 (Incluyendo 4.6-RELEASE y posteriores)

Con las últimas versiones de FreeBSD se puede utilizar el método anterior pero también se puede especificar

mta_start_script="nombre_de_fichero"

dentro de /etc/rc.conf, donde nombre_de_fichero es el nombre de algún script que se ejecuta en tiempo de arranque para inicializar el nuevo MTA.

27.4.4. Sustitución de sendmail como el agente de transporte de correo predeterminado.

El programa sendmail es tan imprescindible y es utilizado por tal multitud de programas en los sistemas UNIX® que algunos programas simplemente asumen que sendmail se encuentra instalado y configurado dentro del sistema. Por esta razón varios MTAs alternativos proporcionan su propia implementación de la interfaz de línea de comandos que posée sendmail; esto facilita que se puedan utilizar como sustitutos de sendmail sin mayores dificultades.

Por lo tanto si desea utilizar un agente de transporte de correo alternativo debe asegurarse de que todo software que intente ejecutar binario de sendmail estándar, /usr/bin/sendmail, realmente ejecute el nuevo MTA en su lugar. Por fortuna FreeBSD proporciona un sistema llamado mailwrapper(8) que realiza precisamente esta tarea.

Cuando sendmail está funcionando se debe localizar algo como lo siguiente dentro del fichero /etc/mail/mailer.conf:

sendmail    /usr/libexec/sendmail/sendmail
send-mail   /usr/libexec/sendmail/sendmail
mailq       /usr/libexec/sendmail/sendmail
newaliases  /usr/libexec/sendmail/sendmail
hoststat    /usr/libexec/sendmail/sendmail
purgestat   /usr/libexec/sendmail/sendmail

Esto significa que cuando cualquiera de estos comandos (por ejemplo sendmail mísmamente) se ejecutan el sistema ejecutará en su lugar una copia del el sistema ejecuta en su lugar una copia del “ mailwrapper” denominada sendmail que chequea el fichero mailer.conf y ejecuta /usr/libexec/sendmail/sendmail. Este sistema permite cambiar de una forma sencilla los binarios que se ejecutan realmente cuando se invocan las funciones de sendmail.

Si se quiere que ejecutar /usr/local/supermailer/bin/sendmail-compat en lugar de sendmail se puede cambiar el fichero /etc/mail/mailer.conf para que contenga lo siguiente:

sendmail    /usr/local/supermailer/bin/sendmail-compat
send-mail   /usr/local/supermailer/bin/sendmail-compat
mailq       /usr/local/supermailer/bin/mailq-compat
newaliases  /usr/local/supermailer/bin/newaliases-compat
hoststat    /usr/local/supermailer/bin/hoststat-compat
purgestat   /usr/local/supermailer/bin/purgestat-compat

27.4.5. Últimos Pasos

Una vez que todo estáconfigurado a su gusto hay que matar los procesos de sendmail que ya no se necesitan y ejecutar los procesos pertenecientes al nuevo software de MTA, o utilizar la opción más sencilla: reiniciar la máquina. Reinicar la máquina nos brinda la oportunidad de comprobar que se ha configurado correctamente el arranque del sistema para que ejecute de forma automática el nuevo MTA.

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 <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.