Error de SPF de Gmail basado en la IP del cliente

8

Gmail está fallando la comprobación de SPF basada en la IP del cliente. Estos son los encabezados relevantes:

Received-SPF: fail (google.com: domain of [email protected] does not designate 164.77.240.58 as permitted sender) client-ip=164.77.240.58;
Received: from johndoe (unknown [164.77.240.58])
    by mail.example.com (Postfix) with ESMTP id 993643FE2D

La IP del cliente (164.77.240.58) es la IP de la computadora de johndoe. La IP del remitente, la IP de mail.example.com, se incluye en el registro SPF.

¿Por qué falla Gmail en función de la IP del cliente en lugar de la IP del remitente? ¿Es así como se supone que funciona el SPF?

Max Toro
fuente
Hubiera esperado que su referencia a "IP del cliente" simplemente se refiriera al cliente que se conectó a su servidor SMTP. (¿Cuál sería lo que esperabas, un hecho?)
Håkan Lindqvist
3
¿Puede incluir también el Receivedencabezado agregado por Gmail para aclarar de dónde recibieron realmente el correo?
Håkan Lindqvist
@ HåkanLindqvist Los otros encabezados recibidos solo dicenby <google IP>
Max Toro
Tenemos problemas similares con la importación de correos a través de IMAP a gmail. Problema uno (menos similar): cuando enviamos un correo electrónico entre dos buzones locales como [email protected] a [email protected] (pero usando el puerto 25 de SMTP), Gmail lo importa y hace que SPF verifique la IP del cliente y no el servidor. serverfault.com/q/669584 Problema dos (más similar): cuando alguien nos envía un correo electrónico con encabezados ESMTP, Gmail lo importa y hace que SPF verifique con el dominio de su servidor y la dirección IP de nuestro servidor. serverfault.com/q/670113
Zbyszek

Respuestas:

4

Primero, extraiga el registro spf de example.com:

$ dig -t spf mail.example.com

Verifique que example.com esté en la lista de remitentes. Su registro spf debería verse más o menos así:

"v=spf1 a:mail.example.com a:cname.example.com -all"

Tome los nombres de dominio enumerados y realice una búsqueda de DNS en ellos para obtener las direcciones IP:

$ dig mail.example.com

Luego haga una búsqueda de PTR para obtener el nombre DNS inverso de la IP:

$ dig -x XX.XX.XX.XX

La búsqueda de IP inversa debe coincidir con uno de los registros enumerados en el registro spf. Sin embargo, sería útil comenzar con el registro spf para que podamos ver lo que está sucediendo.

Pete
fuente
3
itym dig example.com TXT. Además, no creo que la búsqueda inversa haga ninguna diferencia en SPF siempre que el registro SPF no haga uso del ptrmétodo.
Håkan Lindqvist
2

Sí, Google estaría en lo correcto al identificar la falla del SPF. La dirección IP que debe verificarse es la dirección que se conecta al servidor de correo de Google. Como no hay un encabezado recibido para Google, sospecho que su servidor de correo está verificando SPF en la conexión. Solo debe verificar SPF para conexiones no autenticadas desde Internet. Las conexiones locales y las conexiones autenticadas deben pasar por alto la validación SPF.

SPF tiene por objeto garantizar que el equipo emisor esté permitido por el dominio emisor. Normalmente, un dominio tendría 1 o 2 servidores de correo que manejan todos los correos electrónicos enviados o recibidos desde Internet. Estas direcciones deben ser las que figuran en el registro SPF para el dominio.

En este caso, johndoeparece estar conectándose al servidor de correo del dominio. Si el servidor no está en la red del dominio, es común usar una conexión autenticada en el puerto de envío (587). El servidor de correo debe reenviar el mensaje a gmail y debe pasar SPF. Si SPF aún falla, el registro SPF debe corregirse para incluir la IP del servidor de correo. Hay varios mecanismos que se pueden usar.

Mi política de correo electrónico garantiza que todo el correo legítimo enviado desde mi dominio pasará SPF. Hay algunos servicios que reenvían mensajes en nombre de mis usuarios que fallarán SPF. Sin embargo, las fallas registradas que he recibido de los servidores que validan DMARChan sido spammers.

BillThor
fuente
2
La IP del servidor de correo está incluida en el registro SPF. Esa es la IP del remitente. Pero Gmail está rechazando en función de la IP del cliente, esa es la computadora de johndoe.
Max Toro
@MaxToro Según el encabezado recibido, la computadora de johndoe está enviando directamente a Google. No tiene registro PTR, por lo que se desconoce. Probablemente funcionaría si la computadora de johndoe se autenticara en Google.
BillThor
No, eso es mail.example.com recibiendo de la computadora de johndoe.
Max Toro
@MaxToro ¿Está seguro de que no es su servidor el que rechaza el registro SPF? La última política activa sería la de google. Su registro de correo debe indicar si está intentando enviar a google.
BillThor