Como configurar o SPF para vários domínios em um servidor? (também permitindo o gmail como remetente)

9

O SPF (Sender Policy Framework) parece ser uma boa maneira de combater spammers / spoofing.

No entanto, apesar de ler as explicações várias vezes, não estou entendendo bem como configurá-lo corretamente.


Vamos dizer que eu tenho o meu servidor em a.x.comquais hosts www.x.come b.x.come c.x.come assim por diante.

Eu também tenho a.co.uk b.net c.infoe assim por diante, cada um com uma variedade de subdomínios, todos hospedados emx.com

Para todos esses domínios e subdomínios, quero permitir que o email seja enviado de a.x.com

Também gostaria que todos permitissem o correio enviado do Gmail para todos esses domínios.

Como faço para configurar isso com o SPF?

Posso definir um registro SPF para x.com(ou a.x.com) e, em seguida, para todo o resto, basta ter um simples ponteiro de inclusão / ponteiro para x.como registro, ou seria necessário fazer diferente?

Alguém pode fornecer alguns registros SPF para o exemplo acima?


Nota: A segunda parte da minha pergunta foi respondida (use " v=spf1 include:x.com -all" para incluir / apontar para x.como registro), mas a parte principal do que definir x.compermanece sem resposta ...

Peter Boughton
fonte
Na verdade, provou ser uma maneira irremediavelmente ineficaz de reduzir o spam. De fato, sem dúvida, ele realmente significa apenas abordar a falsificação de endereços de remetentes de qualquer maneira.
Christopher Edwards
2
"serve apenas para solucionar a falsificação de endereços do remetente" - exatamente, para impedir que os remetentes de spam enviem e pareçam vir dos domínios de outras pessoas.
5259 Peter Boughton

Respostas:

7

Não é possível evitar a necessidade de alterar os arquivos de zona dos domínios que não sejam x.com, mas você pode evitar muitos problemas ao definir políticas comuns hospedadas em um domínio e usar a redirectpalavra-chave SPF nos outros domínios. Exemplo:

  • No arquivo de zona do x.comdomínio:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 inclui: _spf.google.com a: axcom -all"

_spf.google.comé o registro que contém o registro SPF do Gmail. Não tenho certeza se está documentado. Teoricamente, você deveria, include:gmail.commas isso é um redirecionamento _spf.google.come pelo menos um patch SPF amplamente utilizado para o qmail não seguiu corretamente (foi corrigido em agosto de 2008, mas ainda pode ser implantado.) As duas políticas são exemplos, é claro - ter mais de um com vários níveis de rigor é extremamente útil na depuração, pois você só precisa alterar um nome abreviado no domínio de destino, em vez de copypasting propenso a erros.

  • Nos arquivos de zona dos outros domínios:
@ IN TXT "v = redirecionamento spf1 = _policy1.x.com"

ou

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

etc. Estou usando redirect, não include, para fazer com que a verificação do SPF substitua completamente o registro avaliado atualmente pelo que estou redirecionando. includenão faz isso - por exemplo, um -allno final de um includenão faz com que a avaliação seja interrompida ( includeé um grande equívoco.) Evite usar includequando quiser "alias" um registro SPF de outro domínio, pois é bastante quebradiço - se você acidentalmente esquecer o final - tudo, poderá tornar seu SPF inteiro nesse domínio ineficaz.

Editar: no entanto, observe que você precisa estar atento para permitir que os servidores do Gmail sejam remetentes. O chaptcha do Gmail foi quebrado, o que significa que é possível automatizar as inscrições de contas, o que significa que o Gmail pode ser (indiretamente) usado como uma retransmissão aberta (estou recebendo dezenas de solicitações de inscrição de spambot por semana no fórum de discussão da minha empresa, todas usando endereços de e-mail do gmail.com - e esses endereços estão ativos, permiti que alguns passassem para fins de verificação.) Além disso, qualquer pessoa com uma conta do Gmail pode ignorar a verificação do SPF se estiver familiarizado com as partes dos nomes de usuário dos endereços de e-mail nos seus domínios. .

Mihai Limbăşan
fonte
Obrigado, esta é uma resposta útil. Na última vez que verifiquei, o Gmail exige validação de e-mail antes que você possa enviar e-mails de outros endereços. Assim, quando a caixa de entrada desse endereço estiver segura, tudo estará bem? Quão importante é / também não está tendo linhas 'www' como na resposta do bortzmeyer?
9789 Peter Boughton
1
É verdade, mas uma vez que uma rachadura apareça na fundação, tenho certeza de que alguém encontrará uma maneira de espremer metade do rio :) Não estou dizendo que não, estou apenas recomendando estar alerta e verificar periodicamente se o Gmail está sendo explorado, por exemplo, não abandone a autoridade do Gmail indefinidamente. Confio neles mais do que em mais entidades online, mas isso é apenas um pouco de confiança versus nenhuma confiança.
Mihai Limbăşan
Não faço ideia por que bortzmeyer incluiu as entradas www. Eles são totalmente inúteis, a menos que você realmente envie e-mails do @ www.x.com, que (além de não ser muito usado) parece bastante estranho e induz confusão em pessoas menos que tecnicamente esclarecidas.
Mihai Limbăşan
2
Além disso, eu NÃO usaria tipos de registro SPF. Eu recomendo que você fique com o TXT. O tipo de registro SPF é suportado apenas pelo BIND 9.4 e superior. Por RFC, você também deve manter réplicas dos registros TXT, ou seja, copipaste (ruim) e itens em sincronia (difícil). O ganho é inexistente, já que o TXT será o principal mecanismo de entrega de SPF no futuro próximo, quoth openspf.org.
Mihai Limbăşan
1
@ Mihai Limbasan: excelente resposta, obrigado por compartilhar. Caso você ache necessário atualizar sua resposta, o Google parece preferir v=spf1 include:_spf.google.com ~allno lugar de -all, supondo que eu entendi corretamente, ref. google.com/support/a/bin/answer.py?answer=178723
Marco Demaio 22/07/11
4

Sim, você pode incluir a configuração de um de seus domínios nos registros SPF para todos os outros domínios. Definir o registro SPF dos outros domínios para o seguinte deve fazer o truque:

v=spf1 include:x.com -all
mulher
fonte
Isso "funcionará" ou requer um subdomínio _spf ou semelhante?
5609 Peter Boughton
Tenho certeza de que se você tiver os registros SPF definidos diretamente no x.com inicialmente, a inclusão para os outros domínios também poderá apontar diretamente para x.com também. Se você definir seu registro SPF na rota _spf.x.com, sim, será necessário alterar um pouco o include para apontar para esse FQDN também.
Womble
2

Você já tentou usar a ferramenta da web em http://www.openspf.org/ ? Pode tornar um pouco mais fácil lidar com isso ...

Basta digitar seu domínio na caixa superior direita e clicar no botão ir. A partir daí, você poderá configurar as coisas com pressa.

Avery Payne
fonte
1
Eu tentei várias vezes com essa ferramenta, mas as explicações não são claras o suficiente.
35435 Peter Boughton
2

O padrão, RFC 4408 , fornece alguns exemplos muito próximos do que você deseja. Aqui está um extrato do zonefile do x.com:

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

www IN TXT "v = spf1 a: axcom -all"
      No SPF "v = spf1 a: axcom -all"

Notas:

  • Não adicionei servidores de e-mail do Gmail porque não os conheço, pergunte às pessoas do Gmail
  • 'a' é para 'endereço' (é não um registro DNS A, que inclui IPv6)
  • Adicionei registros SPF, de acordo com a RFC, embora quase todas as implementações usem apenas o registro TXT
bortzmeyer
fonte
1

Sim, você precisa adicionar o registro SPF específico a cada domínio individualmente.

A razão para isso é que o único registro do tipo de alias (útil) no DNS é o CNAMEregistro. No entanto, o CNAMEregistro faz com que o aliasing aconteça para TODOS os tipos RR em um RRset - não há como dizer " CNAMEo registro SPF, mas não os MXregistros "

Alnitak
fonte
Entendo que precisarei adicionar um registro SPF para cada domínio, mas esperava simplesmente armazenar um ponteiro simples no domínio principal, onde todos os comandos mais complexos possam viver. Womble sugere que eu possa usar o include: {domain} para isso, mas ainda não estou claro se isso simplesmente inclui / aponta nos registros SPF para o outro domínio ou se eu preciso hospedar um subdomínio _spf.x.com?
5609 Peter Boughton
sim, ver a resposta de Womble
Alnitak