localhost em uma zona DNS

15

Nosso ISP também hospeda nosso DNS externo. Por padrão, eles incluem uma entrada para localhost.

Por exemplo: localhost.example.com. 86400 IN A 127.0.0.1

Quando pedi a eles para removê-lo, eles me incomodam e dizem que é assim que o Bind funciona.

Eu tentei fazer alguma pesquisa sobre por que eu poderia incluir isso, mas não consegui encontrar muita coisa. Eu encontrei pelo menos um lugar que pensava ser um possível vetor de ataque XSS. Parece ser bastante comum, então eu fiz pesquisas nos 20 principais domínios de sites da alexa e a maioria não tem essa entrada, mas algumas têm. Alguns outros têm uma entrada, mas, em vez de apontar para 127.0.0.1, apontam para outro endereço IP de rota mundial.

Enfim, por que eu gostaria de ter o locahost na zona do meu domínio? Há algum problema em não tê-lo? Existe algum tipo de prática recomendada em relação a isso? É realmente uma coisa padrão do Bind que eu não conheço?

obrigado

Mateus
fonte
Boa pergunta. Eu nunca ouvi isso antes.
TomTom
Eu tenho até um "loopback" no meu arquivo de zona ISPs. WTF?
David Tonhofer

Respostas:

13

localhost.example.comàs vezes é incluído em servidores DNS internos para impedir que solicitações de "host local" vazem para a Internet (no caso em que John Smith digita http://localhost/em seu navegador e por qualquer motivo que seu resolvedor não procure no arquivo de hosts, acrescenta seu caminho de pesquisa ( example.com) & começa a perguntar aos servidores de nomes o que isso resolve).

Você não precisa ter uma entrada de host local (e, se o seu provedor de serviços de Internet achar que é "a maneira como o BIND funciona", eles são mal orientados ou idiotas: o BIND serve o que está no arquivo de zona e, se remover a localhostlinha, ele deixará de servir esse registro). Como exemplo gratuito, localhost.google.comnão resolve, e aposto que o NS desse domínio está executando o BIND.

O vetor XSS é algo em que eu nunca pensei, mas é algo preocupante: ter uma localhostentrada no DNS público significa que qualquer máquina invadida pode estar "no seu domínio" (executando um servidor da Web no 127.0.0.1) e potencialmente todos os tipos de coisas desagradáveis. Provavelmente, uma razão boa o suficiente para se livrar da entrada.

voretaq7
fonte
1
Pessoalmente, eu acho que localhost.some.testé apenas mais uma vítima de não conseguir um ponto final adequado. O raciocínio por trás de ter localhost.(observe o ponto!) É claro, mas os pontos geralmente são esquecidos nas zonas DNS. Então surgiu para ter sua própria vida misteriosa.
poige
Consulte tools.ietf.org/html/rfc1537 Erros comuns de configuração do arquivo de dados DNS, que sugerem que a entrada localhost está correta.
BillThor
1
Não, o rfc1537 não especifica isso. Ele especifica que os recursores precisam ter um host local. zona e uma zona para o inverso. Em nenhum lugar ele diz que suas zonas precisam de uma entrada de host local.
Habbie
@ BillThor Os comentários sobre essa outra resposta são relevantes para a RFC 1537 e seu sucessor (RFC 1912) - Como Habbie mencionou a zona localhost. é algo que deveríamos ter, mas a prática de ter um localhost registro em cada zona que servimos caiu. de favor. (Esta questão realmente levar-me para baixo que toca de coelho RFC 5 anos atrás, talvez eu vou atualizar a minha resposta com a nova RFC e pensamentos de esse segmento comentário mais tarde :))
voretaq7
3

Supondo que sua resolução interna de nomes esteja lidando com a resolução de nomes corretamente, qualquer solicitação de DNS para host local nunca deve ir ao seu provedor DNS externo e, portanto, isso não deve ser um problema.

Uma razão pela qual alguém faria isso, que eu posso pensar de primeira, é se alguém já usou uma ferramenta de autoria da web que estragou com uma carga de referências absolutas a http: // localhost , mas isso pressupõe que seu O ISP também estava hospedando em suas caixas DNS e é um tiro no escuro.

No entanto, RFC 1537 não especifica:

Houve uma extensa discussão sobre se deve ou não anexar o domínio local a ele. A conclusão foi que "localhost". seria a melhor solução; As razões apresentadas foram:

  • O próprio "localhost" é usado e espera-se que funcione em alguns sistemas.

  • converter 127.0.0.1 em "localhost.my_domain" pode fazer com que alguns softwares se conectem usando a interface de loopback quando não desejarem.

Observe que todos os domínios que contêm hosts devem ter um registro A "localhost".

Portanto, estritamente falando, parece que seu ISP está correto ao incluir host local, mas incorreto ao usar o nome completo.

Maximus Minimus
fonte
5
Parece que o RFC-1537 foi obsoleto pelo RFC-1912, que exclui o Note that ...idioma (eu acho que em resposta aos possíveis problemas de XSS dos quais começamos a conhecer em 1996 :) 1537 No entanto, explica por que está nos modelos BIND.
voretaq7
você quer dizer que deve haver uma entrada como esta na zona por exemplo.com: localhost. 86400 IN A 127.0.0.1; observe o período
matthew
3
4.1 de 1912 é realmente bastante explícito: ietf.org/rfc/rfc1912.txt
Maximus Minimus
Cinco anos depois, mas vale a pena esclarecer: 4.1 da RFC 1912 é explícito que a localhost zona deve existir no servidor (por isso, se ela recebe uma solicitação simplesmente "localhost", ela não passa a cadeia para o próximo servidor), longe de incluir localhostna example.comzona do say (criar localhost.example.com), o que é igualmente explícito ao dizer que você não deve fazer por causa de possíveis efeitos colaterais indesejados. A expectativa é que "localhost" seja um domínio especial, mágico e totalmente qualificado por si só.
precisa saber é o seguinte
0

Não tenho certeza de qual seria o objetivo ... Por padrão, o endereço externo seria substituído pelo arquivo hosts, que quase sempre mapeia o localhost para 127.0.0.1.

Porém, um arquivo de zona BIND padrão inclui uma zona de host local. Realmente nunca pensei sobre isso.

Satanicpuppy
fonte
Esta não é a zona do host local (a menos que seja uma configuração incorreta dessa zona). Também não é o fqdn 'localhost.' e geralmente não seria substituído pelo arquivo de hosts locais.
matthew