Por que preciso escapar? com \ em um registro DNS DKIM?

4

Estou configurando a autenticação de e-mail em nosso domínio para permitir a autenticação com nosso provedor de serviços de e-mail.

Meu entendimento é que o registro de DNS precisa ter qualquer ; com escape, por exemplo, \;

Eu só quero ter certeza de que ALL; deve ser escapado. Para esse fim, quero ter certeza de que entendo por que o escape é necessário. Ou seja, se for b / c ; significa algo especial, então como saber quando deve não ser escapado e, em vez disso, deve ter um significado especial? ou é que tem um significado especial (e diferente) nos registros DNS TXT, em geral, e que para o uso especial de uma configuração DKIM, nós não queremos que tenha esse significado especial ( e talvez quem ler o registro irá aplicar o valor)

Além disso, o ESP está me dizendo que o DNS está "adicionando \ por algum motivo" (esperando para confirmar se eles simplesmente não entendem isso.

    
por Clay Nichols 17.12.2015 / 20:08

2 respostas

6

A escolha de quais caracteres são especiais e requerem escape dependerá do servidor de nomes que está sendo usado, bem como qual interface está sendo usada para configurar o servidor de nomes (por exemplo, se você estiver usando uma ferramenta de configuração baseada na web, ele pode escapar automaticamente) ; caracteres para você).

O padrão arquivo de zona (conforme definido pela RFC 1034/1035) usa o caractere ; para iniciar um comentário . Se você não tivesse uma barra invertida, o texto do ponto-e-vírgula até o final da linha seria ignorado pelo servidor.

Observe que bind não considera um ; dentro de uma string já citada para iniciar um comentário e precisa de escape, mas irá lidar com isso se você o fizer. Os dois devem produzir a mesma resposta :

IN TXT "asdf;jkl"
IN TXT "asdf\;jkl"

Observe também que quando você usa dig ou host , a saída impressa por eles será adicione uma barra invertida ao ponto-e-vírgula por motivos há muito esquecidos.

    
por 17.12.2015 / 21:27
2

A; é o caractere de comentário para um arquivo de zona, muito parecido com # na maioria dos arquivos de configuração do Linux. Diz a Bind para parar de ler do; até o final dessa linha.

Se você tiver necessidade de ter o personagem; dentro do conteúdo de um registro DNS você pode cercar o conteúdo do registro com "" e ele será exibido sem qualquer interpretação. Os registros TXT e SPF usam este formato (tirado do padrão OpenDKIM):

_domainkey.DOMAIN.TLD. IN TXT "t=y; o=-;"

SELECTOR._domainkey.DOMAIN.TLD. IN TXT "k=rsa; t=y; p=YOUR_PUBLIC_KEY_HERE"

Nos meus arquivos de zona não tenho \ caracteres. Valores comentados são precedidos por um;

; HOST Definitions
mail A 1.2.3.4 ; mail server
time A 1.2.3.4 ; ntp server

Não sei por que você precisaria incluir um escape; personagem em seus registros DNS em tudo. Isso significaria que o Bind tentaria interpretá-lo como um nome de host ou outro valor.

    
por 17.12.2015 / 21:39