DNSゾーンのローカルホスト


15

ISPは外部DNSもホストしています。デフォルトでは、ローカルホストのエントリが含まれています。

例:localhost.example.com。86400 IN A 127.0.0.1

私は彼らにそれを削除するように頼んだとき、彼らは私に苦労を与え、それがちょうどバインドが動作する方法だと言う。

私はそれを含めたい理由についていくつかの研究を試みましたが、多くを見つけることができませんでした。XSS攻撃の可能性があると考えた場所を少なくとも1つ見つけました。それはかなり一般的であるように見えるので、私はalexaからトップ20のウェブサイトドメインを検索しましたが、ほとんどはそのようなエントリを持っていませんが、いくつかあります。他にも少数のエントリがありますが、127.0.0.1を指すのではなく、別のワールドルーティング可能なIPアドレスを指します。

とにかく、なぜ私のドメインのゾーンにlocahostが必要なのでしょうか?持っていないことに問題はありますか?これに関するベストプラクティスはありますか?実際、私が知らないデフォルトのバインドのことですか?

ありがとう


良い質問。聞いたことはありません。
トムトム

ISPゾーンファイルに「ループバック」さえあります。WTF?
デビッドトンホーファー14

回答:


13

localhost.example.comインターネットへの「localhost」リクエストの漏洩を防ぐために内部DNSサーバーに含まれることがあります(ジョンスミスがhttp://localhost/ブラウザに入力した場合、リゾルバーがホストファイルを検索しない場合は、検索パスを追加します(example.com) &がネームサーバーに何を解決するかを尋ね始めます)。

localhostエントリを持っている必要はありません(また、ISPが「BINDの動作」と考えている場合、それらは誤ったガイドまたはバカです:BINDはゾーンファイルの内容を処理し、それらがlocalhost行を削除するとその処理を停止します記録)。無料の例としてlocalhost.google.comは解決せず、そのドメインのNSはBINDを実行しているに違いありません。

XSSベクトルは、私が考えたことのないものですが、懸念事項ですlocalhost。パブリックDNSにエントリがあると、ハッキングされたマシンが(ドメイン内に)(127.0.0.1でWebサーバーを実行することにより)存在し、潜在的にあらゆる種類の厄介なもの。おそらく、エントリを削除するのに十分な理由です。


1
個人的には、これlocalhost.some.testはドットが適切に終了しないことの別の犠牲者だと思います。localhost.(ドットに注意してください)の背後にある理由は明らかですが、ドットは多くの場合DNSゾーンで忘れられます。それから、それはそれ自身の神秘的な人生を持っているようになりました。
poige

localhostエントリが正しいことを示唆するtools.ietf.org/html/rfc1537一般的なDNSデータファイル設定エラーを参照してください。
-BillThor

1
いいえ、rfc1537はそれを特定しません。再帰にはローカルホストが必要であることを指定します。ゾーンと逆ゾーン。ゾーンにlocalhostエントリが必要だと言っているところはどこにもありません。
ハビー

@BillThor この他の回答に関するコメントは、RFC 1537とその後継者(RFC 1912)に関連しています-Habbie が言及したように、ゾーン localhost.は私たちが持っているはずのものですが、私たちがサービスを提供する各ゾーンにlocalhost レコードを持つ慣行は失敗しました好意の。(この質問は実際には5年前にそのRFCのウサギの穴を私を導き、多分私は後でそのコメントのスレッドから新しいRFC&思考と私の答えを更新します:))
voretaq7

3

内部の名前解決が名前解決を適切に処理していると仮定すると、localhostに対するDNS要求は外部DNSプロバイダーに送信されないため、これはまったく問題になりません。

一つの理由なぜ誰かが一度に絶対参照の負荷をめちゃくちゃにすることをウェブオーサリングツールを使用する場合、誰かが私は私の頭の上から考えることができ、これを行うだろうが、あるのhttp:// localhostと、それはことを前提として、あなたのISPもDNSボックスでホスティングを行っていたため、ロングショットです。

ただし、RFC 1537 は次を指定ます。

ローカルドメインを追加するかどうかについて、広範な議論がありました。結論は「localhost」ということでした。最適なソリューションです。指定された理由は次のとおりです。

  • 「localhost」自体が使用され、一部のシステムで動作することが期待されています。

  • 127.0.0.1を「localhost.my_domain」に変換すると、一部のソフトウェアが、望まないときにループバックインターフェイスを使用して自身に接続する可能性があります。

ホストを含​​むすべてのドメインには、「localhost」Aレコードが含まれている必要があることに注意してください。

厳密に言えば、ISPがlocalhostを含めるのは正しいが、完全修飾名を使用するのは正しくないように見えます。


5
RFC-1537は、Note that ...言語を削除するRFC-1912によって廃止されたように見えます(1996年に気づき始めたXSSの潜在的な問題に応じて推測します:) 1537しかし、BINDテンプレートにある理由を説明します。
voretaq7

example.com:localhostのゾーンに次のようなエントリがあるはずです。86400 IN A 127.0.0.1; 期間に注意してください
マシュー

3
1912年の4.1は、実際にそれにきわめて明確です:ietf.org/rfc/rfc1912.txt
マクシムスMINIMUS

5年後ですが、明確にする価値があります。RFC1912の4.1は、localhost ゾーンがサーバー上に存在することを明示しています(したがって、単純な「localhost」だけでリクエストを受け取った場合、次のサーバーにチェーンを渡しません)遠くを含むから泣くlocalhostと言うでexample.comのゾーン(作成localhost.example.com、それはあなたがすべきであると言っても同様に明示的である)、ではないので、可能性予期しない副作用を行います。「localhost」は、それ自体が特別で魔法のような完全修飾ドメインであることが期待されています。
voretaq7

0

ポイントがどうなるかわからない...デフォルトでは、外部アドレスはhostsファイルによって上書きされ、ほとんどの場合、localhostを127.0.0.1にマッピングします。

ただし、デフォルトのBINDゾーンファイルにはlocalhostゾーンが含まれます。本当に考えたことはありません。


これは、localhostゾーンではありません(そのゾーンの構成が間違っていない限り)。また、fqdn 'localhost'ではありません。通常、ローカルホストファイルによって上書きされることはありません。
マシュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.