localhost in una zona DNS


15

Il nostro ISP ospita anche il nostro DNS esterno. Per impostazione predefinita, includono una voce per localhost.

Ad esempio: localhost.example.com. 86400 IN A 127.0.0.1

Quando ho chiesto loro di rimuoverlo mi fanno passare un brutto momento e dicono che funziona proprio come Bind.

Ho provato a fare qualche ricerca sul perché potrei volerlo includere ma non sono riuscito a trovare molto. Ho trovato almeno un posto che pensava fosse un possibile vettore di attacco XSS. Sembra essere abbastanza comune, quindi ho fatto ricerche sui primi 20 domini di siti Web da Alexa e la maggior parte non ha una voce del genere, ma un paio lo fanno. Alcuni altri hanno una voce ma invece di puntare a 127.0.0.1 puntano a un altro un indirizzo IP che può essere indirizzato al mondo.

Quindi, comunque, perché dovrei voler avere locahost nella zona per il mio dominio? Hanno dei problemi nel non averlo? C'è qualche tipo di migliore pratica in merito? È davvero una cosa predefinita di Bind di cui non sono a conoscenza?

Grazie


Buona domanda. Non ne avevo mai sentito parlare prima.
TomTom

Ho anche un "loopback" nel mio file di zona degli ISP. WTF?
David Tonhofer,

Risposte:


13

localhost.example.comè talvolta incluso nei server DNS interni per impedire la fuoriuscita di richieste "localhost" su Internet (nel caso in cui John Smith digiti http://localhost/nel suo browser e per qualsiasi motivo il suo resolver non sia presente nel file hosts, accoda il suo percorso di ricerca ( example.com) e inizia a chiedere ai server dei nomi che cosa si risolve).

Non devi avere una voce localhost (e se il tuo ISP pensa che sia "il modo in cui funziona BIND" sono sbagliati o idioti: BIND serve ciò che è nel file di zona, e se rimuovono la localhostlinea smetterà di servire quel disco). Come esempio gratuito, localhost.google.comnon si risolve e scommetto che NS per quel dominio sta eseguendo BIND.

Il vettore XSS è qualcosa a cui non avevo mai pensato, ma è preoccupante: avere una localhostvoce nel tuo DNS pubblico significa che qualsiasi macchina compromessa potrebbe essere "nel tuo dominio" (eseguendo un server web su 127.0.0.1) e potenzialmente farlo ogni sorta di cose brutte. Probabilmente un motivo abbastanza buono per sbarazzarsi della voce.


1
Personalmente, penso che localhost.some.testsia solo un'altra vittima di non ottenere il giusto punto finale. Il ragionamento alla base di avere localhost.(notare il punto!) È chiaro, ma i punti sono spesso dimenticati nelle zone DNS. Quindi è nato per avere una sua vita misteriosa.
poige,

Vedere tools.ietf.org/html/rfc1537 Errori comuni nella configurazione del file di dati DNS che suggeriscono che la voce localhost sia corretta.
BillThor,

1
No, rfc1537 non lo specifica. Specifica che i recursori devono disporre di un localhost. zona e una zona per il contrario. Da nessuna parte si dice che le tue zone abbiano bisogno di una voce localhost.
Habbie,

@BillThor I commenti su questa altra risposta sono rilevanti per RFC 1537 e il suo successore (RFC 1912) - Come ha detto Habbie, la zona localhost. è qualcosa che dovremmo avere, ma la pratica di avere un localhost record in ogni zona che serviamo è caduta fuori di favore. (Questa domanda in realtà mi porta giù nella tana del coniglio RFC 5 anni fa, forse aggiornerò la mia risposta con il nuovo RFC e pensieri da quel thread di commenti più tardi :))
voretaq7

3

Supponendo che la risoluzione dei nomi interna gestisca correttamente la risoluzione dei nomi, qualsiasi richiesta DNS per localhost non dovrebbe mai essere inviata al proprio provider DNS esterno, e quindi questo non dovrebbe essere affatto un problema.

Uno dei motivi per cui qualcuno farebbe questo, a cui riesco a pensare in cima alla mia testa, è se qualcuno una volta usasse uno strumento di authoring web che rovinava con un carico di riferimenti assoluti a http: // localhost , ma quello presume che il tuo Anche l'ISP ospitava le loro caselle DNS ed è una possibilità.

Tuttavia, RFC 1537 fa specificare:

Vi è stata un'ampia discussione sull'opportunità o meno di aggiungere il dominio locale ad esso. La conclusione fu che "localhost". sarebbe la soluzione migliore; i motivi indicati sono stati:

  • Lo stesso "localhost" viene utilizzato e dovrebbe funzionare su alcuni sistemi.

  • la traduzione di 127.0.0.1 in "localhost.my_domain" può causare la connessione di alcuni software a se stesso mediante l'interfaccia di loopback quando non lo desidera.

Si noti che tutti i domini che contengono host devono contenere un record "localhost".

Quindi, a rigor di termini, sembra che l'ISP sia corretto per includere localhost, ma non è corretto utilizzare il nome completo.


5
Sembra che RFC-1537 sia stato obsoleto da RFC-1912 che elimina il Note that ...linguaggio (immagino in risposta ai potenziali problemi XSS di cui avremmo iniziato a essere a conoscenza nel 1996 :) 1537 Spiega perché è nei modelli BIND.
voretaq7,

vuoi dire che ci dovrebbe essere una voce come questa nella zona per esempio.com: localhost. 86400 IN A 127.0.0.1; notare il periodo
matthew

3
4.1 del 1912 è in realtà abbastanza esplicito su di esso: ietf.org/rfc/rfc1912.txt
Maximus Minimus

5 anni dopo ma vale la pena chiarire: 4.1 di RFC 1912 è esplicito che la localhost zona dovrebbe esistere sul server (quindi se riceve una richiesta semplicemente "localhost" non la passa alla catena al server successivo), è un lungi dal includere localhostnella example.comzona di dire (creazione localhost.example.com), che è ugualmente esplicito nel dire che non si dovrebbe fare a causa di possibili effetti collaterali indesiderati. L'aspettativa è che "localhost" sia di per sé un dominio speciale, magico e pienamente qualificato.
voretaq7,

0

Non sono sicuro di quale sia il punto ... Per impostazione predefinita, l'indirizzo esterno sarebbe sovrascritto dal file hosts, che quasi sempre mappa localhost su 127.0.0.1.

Tuttavia, un file di zona BIND predefinito include una zona localhost. Non ci ho mai pensato.


Questa non è la zona localhost (a meno che non sia una configurazione errata di quella zona). Inoltre, non è il 'localhost' di fqdn. e in genere non verrebbe sovrascritto dal file hosts locale.
matthew
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.