“~ all” no meio de um registro SPF sinaliza o final do registro quando ele é analisado?

9

O formato de registro SPF da nossa empresa é o seguinte:

"v = spf1 incluem: _spf.google.com ~ all um mx ip4: X.X.0.0 / 23 inclui: spf.example.com? all"

Portanto, temos um "~ all" no meio do nosso registro SPF. No site do openspf.com , eles dizem isso em relação ao mecanismo "todos":

This mechanism always matches. It usually goes at the end of the SPF record.

Então, eles não dizem que "todos" TÊM de ir no final do registro SPF, mas que normalmente vai no final.

Na nossa empresa, ultimamente, temos visto algumas falhas soft nos emails enviados dos servidores listados em nosso registro SPF, mas nosso registro SPF passa todas as ferramentas de validação que encontrei até agora.

O que eu estou querendo saber é que isso "~ all" diretamente após a inclusão do Google Apps (_spf.google.com) fará com que a análise pare e não reconheça as partes restantes do registro SPF? A passagem versus falha temporária depende de quem está analisando e de sua implementação específica de como processam registros SPF? Existe algum motivo para ter um mecanismo "all" que não esteja no final de um registro SPF?

E sim, sei que poderíamos apenas alterar o nosso registro SPF. Esta questão é mais sobre esclarecer como tudo isso funciona e não necessariamente sobre como resolver nossa situação específica.

    
por whelanska 26.03.2015 / 21:51

3 respostas

10

RFC 7208 § 5.1 é explícito sobre isso: depois que all aparecer, tudo depois DEVE ser ignorado.

Mechanisms after "all" will never be tested. Mechanisms listed after "all" MUST be ignored. Any "redirect" modifier (Section 6.1) MUST be ignored when there is an "all" mechanism in the record, regardless of the relative ordering of the terms.

O RFC tornou-se obsoleto, RFC 4408 , disse quase a mesma coisa; a versão mais recente do RFC simplesmente esclarece a intenção.

Mechanisms after "all" will never be tested. Any "redirect" modifier (Section 6.1) has no effect when there is an "all" mechanism.

Assim, as implementações em conformidade do SPF ignorarão completamente tudo após o primeiro ~all . Isso não significa, no entanto, que toda implementação esteja de acordo com a especificação. Em particular, isso provavelmente foi considerado digno de esclarecimento precisamente porque uma ou mais implementações não estavam de acordo.

Não está claro por que uma ferramenta de validação online não detecta este erro de configuração, mas se você pretende algo após o primeiro all ser usado, você deve corrigir o registro, pois implementações adequadas o ignorarão.

    
por 26.03.2015 / 22:04
5

"v = spf1 inclui: _spf.google.com ~ tudo um mx ip4: X.X.0.0 / 23 inclui: spf.example.com? all"

diz em ordem:

"email passing SPF record of _spf.google.com is valid for our domain"

"softfail on all other senders for our domain"

"email coming from our A records are valid for our domain"

"email coming from our MX records are valid for our domain"

"email coming from IP range x.x.0.0/23 is valid for our domain"

"email passing SPF record of spf.example.com is valid for our domain"

"email from all other senders for our domain cannot be validated one way or the other"

Por sintaxe de registro:

Os mecanismos são avaliados em ordem. Se nenhum mecanismo ou modificador corresponder, o resultado padrão será "Neutro".

Então, para o seu, uma vez que ele atinge o "softfail para todos os outros", isso é realmente sobre isso ... ele deve estar ignorando o resto dos mecanismos que você especificou.

Seu registro SPF deve ser o mais sucinto possível. Eu duvido que você tenha uma rede / 23 inteira que deveria estar enviando e-mails para o seu domínio, nem todos os seus registros A. Talvez sim ... mas provavelmente não.

Um registro SPF limpo e legal deve ser parecido com:

"v = spf1 incluem: _spf.google.com incluem: spf.example.com mx -all"

O que seria basicamente dizer que _spf.google.com, spf.example.com e seus registros MX são os únicos remetentes válidos para seu domínio ... todo o resto deve ser tratado como inválido.

    
por 26.03.2015 / 22:04
0

Um verificador de SPF implementado corretamente causará um curto-circuito em uma correspondência mecanismo e a função check_host () retornará o valor do qualificador como resultado. Eu não tenho nenhum dado do "mundo real" para fornecer a você se a maioria dos servidores de e-mail segue ou não o RFC.

Fonte: RFC7208 (ver página 17)

    
por 26.03.2015 / 22:04