Cómo saber si tu servidor de correo permite Relay?

NOTA: Este post fue publicado originalmente en mi anterior blog el
13/08/2007

Como «Corolario» a los artículos sobre Cómo Enviar Correo Electrónico «a mano» (PARTE I y PARTE II), les quiero mostrar una forma rápida de verificar si un servidor de correo está permitiendo el reenvío no autorizado de de correos (Open-Relay).

Primero que todo, me gustaría quitar un poco el estigma negativo a la palabra Relay: Relay significa simplemente «retransmitir». El Relay en sí no es malo, de hecho, hay un «Relay Bueno» y un «Relay Malo«.

Todo Servidor SMTP, por definición, debe aceptar los correos que van dirigidos hacia su dominio SMTP, es decir, «si yo soy el servidor de @dominio.org, debo aceptar todos los correos entrantes dirigidos a *@dominio.org». (dejamos de lado por un momento las consideraciones de filtrado antispam previas y posteriores a la conexion SMTP, hasta un próximo post).
 
Que pasa si, por ejemplo, tengo a muchos clientes remotos que revisan su correo usando protocolos POP3 o IMAP (diversas razones pueden justificar este escenario: desde las preferencias personales del administrador hasta el uso de dispositivos móviles como PDAs o BlackBerry en modo «Profesional»). Ellos necesitarán un Servidor de Correo Saliente (SMTP) para poder enviar su correo electrónico, el cual no solamente irá dirigido a nuestro dominio SMTP, sino que muchos otros dominios SMTP de clientes, proveedores, amigos, familiares, etc, etc, etc. Por lo tanto, en este escenario, nosotros debiésemos permitir el relay a través de nuestros servidores a nuestros usuarios en ubicaciones remotas. Esto sería «Relay Bueno«.

Por otra parte, si yo soy un spammer, me gustaría poder enviar miles (o millones) de correo comercial  no solicitado (UCE, Unsolicited Comercial E-Mail, o SPAM), idealmente a costa de los recursos de otros servidores (entre otras razones, para no caer yo mismo en una lista negra). Entonces yo busco a servidores que me permitan, sin autentificarme, enviar correos electrónicos a cualquier dominio SMTP. (ver Cómo Enviar correo electrónico a mano, Parte II: SMTP Autenticado). Esto sería el «Relay Malo»

Enredado?
En realidad es súper simple: Si yo soy el servidor de correo que sirve al dominio SMTP @empresa.org, nadie debe ser capaz de enviar correo electrónico a través mío a un dominio que no sea @empresa.org. (salvo mis usuarios autenticados).

Luego de esta larga, pero necesaria introducción sobre relay, manos a la obra.

La prueba para verificar si un servidor está permitiendo el Relay Abierto (Open Relay o Anonymous Relay), es conectarse anónimamente al servidor y tratar de enviar un correo a un dominio cualquiera de internet, distinto del dominio SMTP del servidor.
(Los detalles los puedes ver en el Artículo sobre cómo enviar correo electrónico a mano).

image

En este caso, el servidor de correo, al verificar que, anónimamente, estamos tratando de enviar un correo a un dominio que no es el propio, de inmediato arroja un mensaje de error (550 5.7.1 Unable to relay for usuario88@hotmail.com) indicando que no va a reenviar este mensaje.
Espero, en un próximo post mostrarles cómo se configura el servidor Virtual SMTP de un Exchange Server 2003 para conseguir este resultado.

Update: … y en Exchange 2007 y 2010 también!

Finalmente, no puedo dejar de mencionar que existen varias herramientas gráficas y sitios de internet a través de los cuales revisar si un servidor está permitiendo Relay, es cosa de pedirle a nuestro buscador favorito que nos encuentre «test open relay»…. pero no es tan divertido como hacerlo uno mismo usando la línea de comandos, verdad? 😉

Gonzalo

4 comentarios sobre “Cómo saber si tu servidor de correo permite Relay?”

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *