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
.
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.
/var/qmail/users/assign
para 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-default
bajo el directorio alias
, 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/virtualdomains
y 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
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.
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 |
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.
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.
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 programa fetchmail
.
fetchmail
intenta localizar el archivo .fetchmailrc
bajo el "Home Directory" del usuario que este ejecutando fetchmail
, 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 .fetchmailrc
debe ser colocado bajo el subdirectorio de un usuario del sistema , para ejecutar fetchmail
es 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
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.
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 |