Qmail utilizando conexión Dial-Up
La gran mayoría de las instalaciones de correo electrónico requieren de una conexión permanente, esto presenta un problema para varias empresas que no son capaces de alquilar un tipo de conexión permanente, pero Qmail ofrece una solución que permite acumular los mensajes en un sistema Dial-up y cada determinado tiempo enviar y recibir mensajes del exterior, sin embargo, esto sigue asumiendo que existirá un servidor permanente para recibir correos, generalmente una empresa que ofrece hosting con la finalidad que los correos del exterior sean recibidos en un punto.
Aunque parezca exagerada esta instalación, ahorra una gran cantidad de recursos administrativos y eficientiza el proceso de mensajes electrónicos , ya que se opta por una conexión económica (Dial-up) vs. una costosa (Permanente) y a su vez permite a la empresa el uso de un sistema de correo electrónico corporativo (distribuido) sin la necesidad de incurrir en el costo de conexiones permanentes.
El siguiente documento asume que ya realizo la
instalación inicial
de Qmail e instalo las utilerias
http://cr.yp.to/ucspi-tcp.html
( estas fueron requeridas en la
recabación de correo electrónico
) ya que se requiere de la utileria tcpclient , también necesita adquirir serialmail de
http://pobox.com/~djb/serialmail.html
.
Acumular correo electrónico que será enviado al exterior
El primer paso de esta instalación será la configuración de Qmail para enviar todo correo electrónico desconocido de la LAN a un directorio temporal ("Queue") , los mensajes permanecerán en este directorio ("Queue") hasta que se detecte o inicie un conexión Dial-up que los enviará al exterior.
- Modificar el archivo
/var/qmail/users/assignpara definir que todo correo electrónico desconocido de la red local (LAN) sea enviado a un buzón ("Queue"), agregue la siguiente linea:
|
Esto indica que todo correo para el que no se encuentre resolución sea enviado al buzón del usuario alias (Véase
el archivo assign
)
Elimine el archivo
/var/qmail/control/rcphosts, esto garantiza que cualquier correo electrónico de un dominio desconocido en la LAN sea procesado por Qmail , de otra manera será rechazado.Crear un directorio Maildir (Buzon) para la recepción de mensajes, bajo el directorio
/var/qmail/alias:
|
Ya generado el Maildir (Buzon) asegúrese que los subdirectorios del buzón pertenezcan al usuario alias , ejecute: chown -R alias dialup
-
Coloque un archivo
.qmail-defaultbajo el directorioalias, dentro de este este archivo coloque la linea./dialup/, este archivo indica que todo mensaje sera enviado al buzón bajo el directorio./dialup/( Véase también Archivos .qmail ). Para llevar mayor control modifique el archivo
/var/qmail/control/virtualdomainsy agregue la linea:
:alias-ppp |
Lo anterior agrega el prefijo alias-ppp a todo mensaje enviado a usuarios desconocidos, osea, aquellos destinados al buzón /var/qmail/alias/dialup
Pruebas de Recepción
Después de los pasos anterior si envía correos electrónicos a su dominio conocido (aquellos definidos en /var/qmail/users/assign ) estos deben ser enviados a los buzones correspondientes, y en dado caso de ser un dominio desconocido estos serán enviados al buzón dialup que ha sido creado; una de las desventajas de esta metodología es que todo mensaje que sus usuarios envíen de su LAN será aceptado, y no será hasta que realice el Dial-up, que el proveedor de Hosting reconocerá si realmente existe la dirección.
Detalles sobre la configuración DNS
Este es un detalle interesante sobre esta configuración, se preguntara: Si ya existe un servidor DNS y MTA ("Mail Transfer Agent") que recaba mis mensajes en el exterior (ISP) para mi dominio osmosislatina.com, se puede duplicar esta información en un servidor DNS que no este conectado a Internet, como se configura para que no exista conflicto ?
Como se menciono en el articulo de DNS , DNS solo facilita el intercambio de información, pero esto no lo hace OBLIGATORIO. En esta configuración, para evitar mayores conflictos de nombre se asumirá que toda computadora dentro del LAN utilizara los servicios del MTA desarrollo-osmosis.com en realidad un dominio inexistente-ficticio que no causará ningún tipo de conflicto con Internet.(Asegúrese que su LAN utilice nodos IP privados para LAN's )
|
La única configuración adicional que debe realizar con sus usuarios finales es que sus
Mailers (MUA)
utilicen el servidor SMTP desarrollo-osmosis.com , la utilización de desarrollo-osmosis se debe principalmente a la necesidad de procesar los correos electrónicos de su LAN, de otra manera (si no fueran procesados) se regresarían al usuario indicándole que no fue posible enviar el mensaje. Como se menciono anteriormente el archivo assign utilizado por Qmail será el encargado de redireccionar los mensajes a los buzones correspondientes.
| Recuerde que sus usuarios NO deben enviar mensajes a desarrollo-osmosis.com, este es solo un dominio ficticio, deben continuar enviando a su dominio real |
Enviar correo electrónico acumulado al exterior y recolectar mensajes del exterior
Ya que existen todos los mensajes en el buzón dialup , es necesario realizar una conexión a Internet (proveedor de Hosting) con dos intenciones: Enviar los mensajes destinados fuera de nuestro dominio y recolectar todos los mensajes que han sido acumulados en nuestro proveedor para envío a buzones locales.Los siguientes pasos asumen que ya tiene
una conexión Dial-up
funcional.
Envío de Mensajes
Para automatizar el envío de mensajes al ISP (empresa "Hosting") se deben colocar las siguientes lineas en el archivo ip-up.local que es ejecutado cada vez que se realiza una conexión.
#!/bin/sh #Es conveniente mantener un registro para conocer tipo de errores # estos estarán en un archivo / exec >/var/qmail/alias/registro-dialup exec 2>&1 date #Enviar correo electrónico a Internet /usr/local/bin/maildirsmtp /var/qmail/alias/dialup alias-ppp- mail.osmosislatina.com miservidor.osmosislatina.com # |
Las dos lineas exec son utilizadas para enviar cualquier tipo de error al "log" registro-dialup con su fecha correspondiente ( date ).
La última linea indica que se ejecute maildirsmtp , el cual lee todos los mensajes dentro del buzón Maildir /var/qmail/alias/dialup , el parámetro alias-ppp- es el prefijo que será eliminado de todos los sobres ("envelopes") que se encuentran en este buzón (esto fue agregado en el
paso 5 inicial
).
mail.osmosislatina.com es el servidor de Mail (MTA) que opera nuestra ISP o servicio de Hosting, y miservidor.osmosislatina.com es el nombre con que será identificado el "Host" que esta realizando la conexión Dial-up.
Recepción de Mensajes
Para recibir los mensajes que han sido guardados dentro del servidor de nuestra ISP o servicio de Hosting se utiliza fetchmail , sin entrar en mucho detalle, fetchmail recaba los mensajes en el servidor exterior y los entrega al MTA local, en este caso: desarrollo-osmosis.com, por lo tanto para Qmail (MTA) aparentará que estos mensajes provienen de la LAN.
Los pasos para configurar fetchmail :
Asegúrese que el RPM de fetchmail este instalado,ejecute
which fetchmail, debe aparecer/usr/bin/fetchmail, de otra manera debe instalar el programafetchmail.fetchmailintenta localizar el archivo.fetchmailrcbajo el "Home Directory" del usuario que este ejecutandofetchmail, este archivo contiene lo siguiente:
defaults proto pop3 forcecr poll mail.osmosislatina.com localdomains osmosislatina.com aka rio.sitepro.com user pedro with pass ref345#drt to root * here |
El parámetro defaults proto pop3 indica que será utilizado el
protocolo POP3
, forcecr que deben ser forzados saltos de linea ("carriage returns") en los mensajes.
El parámetro poll mail.osmosislatina.com indica que debe ser inspeccionado el servidor mail.osmosislatina.com utilizando el utilizando el usuario pedro con contraseña ref345#drt .
Las lineas localdomains osmosislatina.com y aka rio.sitepro.com significan, que el dominio será tratado como local y el posible nombre utilizado por nuestra ISP (servicio Hosting) respectivamente. Y finalmente el parámetro to root * here que todo mensaje será redirigido a envío local.
El archivo
.fetchmailrcdebe ser colocado bajo el subdirectorio de un usuario del sistema , para ejecutarfetchmailes conveniente definir un "script" que automatice el proceso:
#!/bin/sh su nsadmin -c /usr/bin/fetchmail |
El "script" realiza un cambio de usuario a nsadmin y ejecuta el comando ( -c ), fetchmail ,es precisamente bajo el "Home Directory" de nsadmin donde es colocado el archivo .fetchmailrc. En lugar de definir un "script" independiente se recomienda agregar esta linea al mismo "script" de
envío de mensajes
- Como se menciono anteriormente los mensajes serán enviados al MTA local (desarrollo-osmosis.com) y estos serán enviados a los buzones correspondientes, de la misma manera en que son enviados correos en la LAN.
Consideraciones de la Conexión Dial-up
Debido a que en este tipo de configuración se requiere mantener una LAN y dominio ficticio (desarrollo-osmosis.com) es necesario mantener archivos de Zona para DNS, por lo tanto la sugerencia de configurar un DNS Cache para un conexión Dial-up tiene que ir más allá, los requisitos para configurar un archivo de Zona para un dominio ficticio son los mismos que para un dominio real, sin embargo, existe un detalle muy importante de esta configuración.
/etc/resolv.conf
En la configuración Dial-up clásica,
el archivo resolv.conf
contiene los nodos IP de los servidores DNS del proveedor de Servicios de Internet (ISP), cuando existía una sola computadora esto no presentaba mayor problema ya que no se requería de resoluciones, pero que sucede cuando una persona de la LAN envíe un correo electrónico e intente buscar el MUA (desarrollo-osmosis.com) ?.
Aunque se supone que resolv.conf debe descartar los servidores DNS que no sean alcanzables, esto no es así (posiblemente un error en DNS "BUG"), por lo tanto, si los servidores DNS de su ISP se encuentran en resolv.conf mientras no esta conectado a Internet, TODAS las computadoras de su LAN muy probablemente se congelen al enviar un mensaje, ya que no pueden localizar estos servidores DNS, este congelamiento puede durar hasta 5 minutos,que es cuando
el resolver
considera inalcanzable esta dirección ("Time-out").
Para contrarrestar este problema se recomienda eliminar los parámetros nameserver del archivo resolv.conf siempre que no este conectado a Internet y generar (o modificar) estos parámetros únicamente cuando exista una conexión a Internet, la manera más fácil de automatizar este proceso es utilizando los archivos
ip-up y ip-down
, a continuación se muestra su contenido:
#!/bin/sh # Contenido de ip-up.local mv /etc/resolv.conf /etc/resolv.conf.back mv /etc/resolv.conf.dial /etc/resolv.conf |
#!/bin/sh # Contenido de ip-down.local mv /etc/resolv.conf /etc/resolv.conf.dial mv /etc/resolv.conf.back /etc/resolv.conf |
Lo anterior garantiza que sea substituido el archivo resolv.conf de una manera apropiada cada vez que sea detectada la conexión Dial-up. El contenido de los archivos resolv.conf y resolv.conf.dial se muestra a continuación.
#Archivo resolv.conf original (sin Dial-Up) #Todo parámetro con comentario lo convierte en inexistente #domain desarrollo-osmosis.com #nameserver 192.168.1.1 #nameserver 200.23.249.1 #nameserver 200.38.10.1 |
#Archivo de substitución resolv.conf.dial (con Dial-Up) domain desarrollo-osmosis.com nameserver 192.168.1.1 nameserver 200.23.249.1 nameserver 200.38.10.1 |
|
