Un caso típico se presenta en la siguiete figura. Se trata de proporcionar el servicio de email a la organizacion "incacoca.com.pe", la cual utilizará a "qmailserver" como servidor de correo. Las direcciones serán de la forma "usuario@incacoca.com.pe", y las estaciones obtendrán sus mensajes usando POP o IMAP.
Asumimos que el lector está familiarizado con las funciones generales del nameserver. Entre éstas, nos interesa la configuración del registro MX para el dominio de nuestra organización. Asumiendo que el nameserver utiliza bind, el archivo de la zona incacoca.com.pe debería contener algo como lo que se muestra a continuación:
$TTL 86400 @ IN SOA @ root.localhost ( 4 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) @ IN NS localhost. @ IN MX 10 qmailserver qmailserver IN A 201.5.223.16 ns IN A 201.5.223.12 ; otros hosts |
Asumimos que el lector ha instalado qmail tal como se vio anteriormente. Cuando se instala qmail, éste asume que sólo debe aceptar mensajes destinados a su propio host; en nuestro caso, mensajes de la forma "usuario@qmailserver.incacola.com.pe". Como las direcciones ahora son diferentes, hay que configurar qmail para que las acepte. Para esto sólo se debe añadir "incacola.com.pe" (la parte de "host" de las direcciones electrónicas) a los archivos /var/qmail/control/rcpthosts y /var/qmail/control/locals:
qmailserver.incacola.com.pe incacola.com.pe |
El archivo rcpthosts permite que qmail-smtp acepte los mensajes con el host especificado, en tanto locals permite que qmail-send efectue el delivery a un usuario local (en su mailbox.)
Con la configuración actual, los usuarios inscritos en qmailserver.incacola.com.pe ya pueden recibir correo desde sus estaciones (vía POP y/o IMAP.) Sin embargo, aún no pueden enviar correo.
Qmail deberá ser capaz de recibir correo desde las estaciones y redirigirlo hacia el exterior, esto es, servir de RELAY a las estaciones.
Esto normalmente está dehabilitado, pues en caso contario cualquier persona de Internet podría usar nuestro servidor para enviar correo SPAM. Sólo nuestras estaciones deberán habilitarse.
Lamentablemente qmail (en la versión actual) no proporciona un mecanismo sencillo para habilitar el RELAY. Los lectores que no utilizan tcpserver deben leer en el archivo FAQ la pregunta acerca de cómo hacer que qmail actúe como RELAY para nuestros clientes (pregunta 5.4 en mi versión.) Xinetd no proporciona un mecanismo satisfactorio, pero el procedimiento que se muestra más adelante funciona.
Qmail-smtpd se encarga de recepcionar el correo de las estaciones cliente y del exterior (medianet SMTP.) Sin embargo, para forzar a que nos sirva como RELAY es preciso que sea iniciado con la variable de entorno RELAYCLIENT. Esto es, dependiendo de quién se conecta a qmail-smtpd, deberíamos activar la variable mencionada.
Tcpserver satisface este requerimiento de un modo sencillo. Ud. deberá en primer lugar crear un archivo llamado /etc/tcp.smtp con el siguiente contenido:
127.:allow,RELAYCLIENT="" 1.2.3.101:allow,RELAYCLIENT="" 1.2.3.102:allow,RELAYCLIENT="" 1.2.3.103:allow,RELAYCLIENT="" 1.2.3.104:allow,RELAYCLIENT="" |
# /usr/sbin/tcprules /etc/tcp.smtp.cdb \ /etc/tcp.smtp.tmp < /etc/tcp.smtp |
Ahora modifique la invocación a tcpserver en /etc/rc.d/rc.local del siguiente modo:
csh -cf '/var/qmail/rc &' /usr/sbin/tcpserver -x /etc/tcp.smtp.cdb -u 1003 \ -g 1002 0 smtp /var/qmail/bin/qmail-smtpd & |