Los relés SMTP abiertos son malos. Los principales proveedores de correo electrónico, como Gmail y Yahoo, realizan algunas comprobaciones de seguridad como las siguientes a nivel de SMTP para evitar que el correo no deseado llegue a los buzones de los usuarios:
$ telnet alt2.gmail-smtp-in.l.google.com 25 Trying 173.194.65.27... Connected to alt2.gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP a42si10962520eem.344 - gsmtp helo google.com 250 mx.google.com at your service mail from: 250 2.1.0 OK a42si10962520eem.344 - gsmtp rcpt to: 550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 a42si10962520eem.344 - gsmtp QUIT 221 2.0.0 closing connection a42si10962520eem.344 - gsmtp Connection closed by foreign host.
Por prueba y error, descubrí que Gmail hace cumplir que los mensajes deben estar en un formato determinado. No quiere decir que sea completamente infalible, pero hacerlo puede eliminar a los ingenuos spammers. Ni siquiera es trivial hacer spam. :)
Desafortunadamente, muchos servidores SMTP no comprueban los mensajes más estrictos que Gmail. Prohibir direcciones de correo electrónico inválidas en el dominio no es suficiente. ¿Qué pasa si un spammer conoce los nombres de usuario del dominio? He enviado un correo no deseado a mí mismo:
[La parte potencialmente identificable ha sido reemplazada por (...). ]
$ telnet (my SMTP) 25 Trying (my SMTP's IP)... Connected to (my SMTP).com. Escape character is '^]'. 220 (my SMTP) ESMTP (some string) helo 250 (my SMTP) Hello (my IP), pleased to meet you mail from:(my username)@(my domain).com 250 2.1.0 Sender ok rcpt to:(my username)@(my domain).com 250 2.1.5 Recipient ok data 354 Enter mail, end with "." on a line by itself This is my own test email. Let's see how easy it is for spammers to send email to employees. Best Regards, me . 250 2.0.0 (some string) Message accepted for delivery 421 4.4.2 Connection timed out Connection closed by foreign host.
Es fácil bromear a otros usuarios en el dominio reemplazando los campos "correo de" y "rcpt a" en consecuencia. El ejemplo anterior muestra que es fácil falsificar correos electrónicos sin saber las contraseñas del "remitente".
¿Debería el administrador ser responsable de hacer que SMTP sea más seguro? Además, ¿cuáles son las cosas que SMTP puede hacer para reducir el spammer ingenuo como yo? El bloqueo del puerto 25 está fuera de discusión: algunos súper usuarios prefieren ejecutar su propio servidor de correo electrónico.