¿Cómo configuro SPF para múltiples dominios en un servidor? (también permite a gmail como remitente)

9

SPF (Sender Policy Framework) parece ser una buena forma de combatir los spammers / spoofing.

Sin embargo, a pesar de leer las explicaciones varias veces, no entiendo cómo configurarlo correctamente.


Digamos que tengo a mi servidor en a.x.comel que los ejércitos www.x.comy b.x.com, y c.x.com, y así sucesivamente.

También tengo a.co.uk b.net c.infoy así sucesivamente, cada uno de estos con una variedad de subdominios, todos alojados enx.com

Para todos estos dominios y subdominios, quiero permitir que se envíe correo desde a.x.com

También me gustaría que todos permitan el correo enviado desde Gmail para todos estos dominios.

¿Cómo configuro esto con SPF?

¿Puedo establecer un registro SPF para x.com(o a.x.com) y luego para todo lo demás simplemente tener un simple include / pointer para x.comel registro, o tendría que hacerse de manera diferente?

¿Alguien puede proporcionar algunos registros SPF para el ejemplo anterior?


Nota: La segunda parte de mi pregunta ha sido respondida (use " v=spf1 include:x.com -all" para incluir / señalar x.comel registro), pero la parte clave de qué configurar x.compermanece sin respuesta ...

Peter Boughton
fuente
En realidad, ha demostrado ser una forma ineficaz de reducir el spam. De hecho, podría decirse que, de todos modos, solo está destinado a abordar la suplantación de direcciones del remitente.
Christopher Edwards
2
"solo está destinado a abordar la suplantación de direcciones del remitente", exactamente, para evitar que los spammers envíen mensajes que parecen provenir de los dominios de otros.
Peter Boughton

Respuestas:

7

No puede evitar tener que alterar los archivos de zona para los dominios que no sean x.com, pero puede ahorrarse muchos problemas definiendo políticas comunes alojadas en un dominio y utilizando la redirectpalabra clave SPF en los otros dominios. Ejemplo:

  • En el archivo de zona para el x.comdominio:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 incluye: _spf.google.com a: axcom -all"

_spf.google.comes el registro que contiene el registro de Gmail SPF. No estoy seguro si está documentado. Teóricamente deberías, include:gmail.compero eso es una redirección _spf.google.comy ha habido al menos un parche SPF ampliamente utilizado para qmail que no lo siguió correctamente (se solucionó en agosto de 2008 pero aún podría implementarse). Las dos políticas son ejemplos, por supuesto: Tener más de uno con varios niveles de rigor es extremadamente útil cuando se depura, ya que solo tiene que alterar un nombre corto en el dominio de destino en lugar del copypasting propenso a errores.

  • En los archivos de zona para los otros dominios:
@ IN TXT "v = spf1 redirect = _policy1.x.com"

o

@ IN TXT "v = spf1 redirect = _policy2.x.com"

etc. Estoy usando redirect, no include, para hacer que la verificación SPF reemplace completamente el registro evaluado actualmente con el que estoy redirigiendo. includeno hace eso, por ejemplo, un -allal final de un includeno hace que la evaluación se detenga ( includees un gran nombre inapropiado). Debe evitar usar includecuando quiera "alias" un registro SPF de otro dominio, ya que es bastante frágil. si olvida accidentalmente el final -todos, puede hacer que su SPF completo en ese dominio sea ineficaz.

Editar: Tenga en cuenta, sin embargo, que debe estar en guardia si desea permitir que los servidores de Gmail sean remitentes. El chaptcha de Gmail se ha descifrado, lo que significa que es posible automatizar los registros de cuentas, lo que significa que Gmail se puede usar (indirectamente) como un relé abierto (recibo decenas de solicitudes de registro de spambot por semana para el foro de discusión de mi empresa, todo usando direcciones de correo electrónico de gmail.com - y esas direcciones están activas, he permitido que algunas las revisen para fines de verificación). Además, cualquier persona con una cuenta de Gmail puede omitir la verificación de SPF si está familiarizado con las partes de uwsername de las direcciones de correo electrónico en sus dominios .

Mihai Limbăşan
fuente
Gracias, esta es una respuesta útil. La última vez que lo revisé, Gmail requiere la validación del correo electrónico antes de que pueda enviar correos electrónicos desde otras direcciones, por lo que una vez que la bandeja de entrada de esa dirección es segura, ¿todo está bien? ¿Cuán importante es / no es también tener líneas 'www' como en la respuesta de bortzmeyer?
Peter Boughton
1
Es cierto, pero una vez que aparece una grieta en la contaminación, estoy seguro de que alguien encontrará la manera de atravesar la mitad del río :) No digo que no debas, solo recomiendo estar alerta y verificar periódicamente si Gmail está siendo explotado, es decir, no abandones la autoridad de Gmail indefinidamente. Confío en ellos más de lo que confío en más entidades en línea, pero eso es solo un poco de confianza versus ninguna confianza en absoluto.
Mihai Limbăşan
No tengo idea de por qué bortzmeyer incluyó las entradas de www. Son completamente inútiles a menos que realmente envíe un correo desde @ www.x.com que (aparte de no ser usado mucho) se ve muy raro e induce confusión en personas menos expertas técnicamente.
Mihai Limbăşan
2
Además, NO usaría tipos de registros SPF. Te recomiendo que te quedes con TXT. El tipo de registro SPF solo es compatible con BIND 9.4 y superior, por RFC también debe mantener réplicas de los registros TXT, es decir, debe copiar cosas de pasta (incorrectas) y debe mantenerlas sincronizadas (rígidas). La ganancia es inexistente ya que TXT será el principal mecanismo de entrega de SPF en el futuro previsible, quoth openspf.org.
Mihai Limbăşan
1
@Mihai Limbasan: excelente respuesta, gracias por compartir. En caso de que piense que es necesario actualizar su respuesta, Google parece preferir v=spf1 include:_spf.google.com ~allen lugar de -all, suponiendo que lo haya entendido correctamente, ref. google.com/support/a/bin/answer.py?answer=178723
Marco Demaio
4

Sí, puede incluir la configuración de uno de sus dominios en los registros SPF para todos los demás dominios. Establecer el registro SPF de los otros dominios en lo siguiente debería ser el truco:

v=spf1 include:x.com -all
womble
fuente
¿Esto "simplemente funcionará" o requerirá un subdominio _spf o similar?
Peter Boughton
Estoy bastante seguro de que si tiene los registros SPF definidos directamente en x.com inicialmente, la inclusión para los otros dominios también puede apuntar directamente a x.com también. Si define su registro SPF en la ruta _spf.x.com, entonces sí, necesitará cambiar un poco la inclusión para señalar también ese FQDN.
womble
2

¿Has intentado usar la herramienta web en http://www.openspf.org/ ? Puede que te resulte un poco más fácil lidiar con esto ...

Simplemente ingrese su dominio en el cuadro superior derecho y haga clic en el botón Ir. A partir de ahí, deberías poder configurar las cosas rápidamente.

Avery Payne
fuente
1
He intentado varias veces con esa herramienta, pero las explicaciones no son lo suficientemente claras.
Peter Boughton
2

El estándar, RFC 4408 , proporciona algunos ejemplos que están muy cerca de lo que desea. Aquí hay un extracto del archivo de zona de x.com:

@ IN TXT "v = spf1 a: axcom -all"
      EN SPF "v = spf1 a: axcom -todos"

www IN TXT "v = spf1 a: axcom -todos"
      EN SPF "v = spf1 a: axcom -todos"

Notas:

  • No agregué servidores de correo electrónico de Gmail porque no los conozco, pregunte a la gente de Gmail
  • 'a' es de 'dirección' (que es no un registro DNS A, que incluye IPv6)
  • Agregué registros SPF, según el RFC, aunque casi todas las implementaciones usan solo el registro TXT
bortzmeyer
fuente
1

Sí, debe agregar el registro SPF específico a cada dominio individualmente.

La razón de esto es que el único registro de tipo de alias (útil) en el DNS es el CNAMEregistro. Sin embargo, el CNAMEregistro hace que se produzca un alias para TODOS los tipos de RR en un conjunto de RR: no hay forma de decir " CNAMEel registro SPF pero no los MXregistros "

Alnitak
fuente
Entiendo que tendré que agregar un registro SPF para cada dominio, pero esperaba simplemente almacenar un puntero simple al dominio principal, donde todos los comandos más complejos pueden vivir. Womble sugiere que puedo usar el include: {dominio} para esto, pero todavía no estoy claro si esto simplemente incluye / puntos en los registros SPF para el otro dominio, o si necesito alojar un subdominio _spf.x.com?
Peter Boughton
sí, ver la respuesta de womble
Alnitak