独自のルートDNSサーバーを作成することは可能ですか?


14

私は興味がある。私はISPとインターネットの中間者がどのようにすべてのDNS要求を記録および追跡し、基本的に多くのログにブレッドクラムの痕跡を残し、広告目的でDNSハイジャックを許可するかについて読み続けています(私はあなたをCox Communicationsに注目しています!)

プライバシー/セキュリティの他の方法に関係なく、自分のローカルネットワークでDNSサーバーを実行できるかどうかを具体的に知りたいと思います。これは、実際にルートDNSサーバーのゾーン情報を持っています(.com、.net ,. org)ドメイン。

基本的にドメイン内のマシンをマップするだけのDNSをセットアップできることは知っていますが、基本的には、ルートDNS情報のコピー/転送を独自のDNSサーバーに保存して、DNSへのインターネットへのアクセスをバイパスすることができますWebブラウジングのための情報はありますか?

はっきりしていることを願っています。DNSサーバーに自分の内部ネットワークに関する情報だけを持たせたくありません-大きなインターネットDNSサーバーが持っている情報と重複させたいのですが、その情報をDNSサーバーにローカルに置きたいです。

DNS用にBGPゾーン転送のようなものはありますか?

更新:基本的に外部DNSチェーンからローカルキャッシュに大量にこの情報を「スクレイピング」して、必要なときに準備を整え、ドメインレコードを明示的に要求するときにそれらをキャッシュできる製品/ OSSソフトウェアはありますか?

回答:


12

設計上のDNSでは、階層的な命名システムを使用するため、すべてのゾーンの信頼できるコピーを持つことはできません。

ルートサーバーは、問題のトップレベルドメイン(TLD)を担当するサーバーを識別する権限があります。たとえば、解決でwww.example.netは、最初にルートサーバーを照会して、の権限のあるネームサーバーを識別します.net.netネームサーバは、のために権限ネームサーバを識別しますexample.net、その後のレコードを返します、www.example.net

すべてのゾーンのコピーをダウンロードすることはできません。ただし、ローカルキャッシングネームサーバーは実行できます。キャッシングネームサーバーは、解決されたすべてのレコードのローカルコピーを提供します。これは、レコードに指定されたTime To Live(TTL)を使用して有効期限が切れます。私の説明はDNSプロトコルの単純な説明であり、Request For Commentsの定義を読むことで詳細に検討できることに留意してください

一方でNXDOMAINの乗っ取りがローカルキャッシュを実行することで回避することができ、すべてのDNS解決のトラフィックが暗号化されていない、まだあなたのインターネット接続を介して送信されることに注意してください。ISPは潜在的にそのトラフィックを監視しても、通信を確認できます。ISPとの契約および現地の法律は、通信の処理方法を確立するための決定的な手段となります。ISPの契約には、利用規約、プライバシーポリシー、およびISPとの追加契約が含まれます。

暗号化されたプロトコルを使用することは、転送中の盗聴からデータを保護するための最良の方法の1つです。ただし、それでも匿名性は保証されません。TorFreenetなど、インターネットに匿名性を導入しようとするプロトコルがあります。これは、真に匿名になるようには設計されていないためです。


1
シンプルな答えはノーです、できません。技術的な答えは、上記のワーナーの回答です。すべてのDNS情報を含むサーバーのセットはありません。ルートサーバーは、要求をさらに下に参照するTLDサーバーの1つを単に参照します。
レックス

1
一部のISPは、NXDOMAINハイジャックをオフにする方法を提供します。一部のISPは、NXDOMAINハイジャックを「オフ」にする(愚かで偽の)Cookieベースのメカニズムを提供しています。ISPのネームサーバーの代わりに使用できる代替ネームサーバーもあります。
ブライアン

3

いくつかのこと:

フォワーダーを使用する代わりにルートヒントを使用するようにサーバーを構成する場合、(少なくともISPおよびDNSハイジャック犯からの)MITMの問題を心配する必要はありません。すべての外部DNS解決について、サーバーはルートヒントを照会します。これは、問題のトップレベルドメイン(.comなど)のgTLDサーバーを参照し、問題のドメインのNSサーバーを参照します。 。

本当に独自のルートサーバーを作成したい場合は確かにできますが、それがどのように役立つかはわかりません。Windows DNSサーバーで行う方法は次のとおりです。

DNSルートゾーンファイルをダウンロードし、Windows DNSサーバーの%systemroot%\ system32 \ dnsディレクトリにroot.dnsとして保存します。DNSゾーン作成ウィザードを使用して、「。」という名前の新しいプライマリ前方参照ゾーンを作成します。(引用符なし)、AD統合ゾーンを作成するオプションの選択を解除し、「。」と入力します。ゾーン名(引用符なし)については、既存のファイルを使用するオプションを選択します。ゾーンファイル名フィールドには、root.dnsという名前が自動的に入力されます(入力しない場合)。動的な更新をそのまま許可する場合は、ウィザードの各ステップを繰り返してから[終了]ボタンをクリックします。これで、すべてのgTLDサーバーのゾーンとゾーンレコードを持つルートサーバーができました。

これにより、サーバー上の転送およびルートヒントオプションが無効になります(サーバーが現在ルートサーバーになっているため)。また、gTLD情報が変更された場合、サーバーがそれらの変更を通知する方法がないことに注意してください。


ISPがルートサーバーのIPをハイジャックするのを止めるものはありません(DNSsecを除く)...それ以外は正しいです。
クリスS

1

密接に関連するサーバーには、ゾーン転送があります。これらは、BGPアナウンスメントによく似ています。セキュリティ上の理由から、これらは通常他のサーバーではブロックされます。

キャッシングネームサーバーを実行すると、ルートサーバーリストがコピーされ、すぐに.com、.netなどのルートが取得されます。DNSが配布されるのには非常に良い理由があります。そうでなければ、誰もが古いデータで作業することになります。データベースのサイズは非常に大きく、データの大部分は関心のないものです。

DNSポイズニングのリスクを減らすオプションがあり、問題が判明したときに適切なソフトウェアが問題に対処します。上流プロバイダーとして使用できるサニタイズされたデータの提供に取り組む組織があります。これらは、いくつかの中毒の試みを除外します。アップストリームプロバイダーとしてOpenDNSまたはgoogleを使用することを検討してください。

ルートDNSゾーンが署名されました。DNSデータが署名されたことをメールサーバーが報告するのが増えています。DNSの署名は、IPV6の要件として報告されています。署名付きDNSはキャッシュポイズニングを非常に困難にしますが、DNSの管理の難しさを増します。


1

確かに独自のサーバーをセットアップしてルートに対して権限を与えることができますが、ルートサーバーのゾーンファイルを事前に入力する方法は知りません。ゾーン転送を単純に要求することはできないため、キャッシュを保持してゾーン転送を埋める必要があると思います。

他のネームサーバーのroot.hintsを変更してプライベートルートサーバーを指すようにし、テストを開始します。

ただし、ルートサーバーは、どのサーバーがTLDに対して権限を持っているかのみを知っており、それ以外は何も知らないことに注意してください。基本的に、サーバーの階層全体を再作成する必要がありますが、これは不可能な作業のようです。


0

はい、DNSサーバーの機能の1つは、頻繁に要求されるクエリのローカルキャッシュであり、指定されたttlを頻繁にバイパスします。

あなたは確かにあなた自身のDNSを実行することができます、問題ありません。しかし、ルートサーバーとトップレベルドメインサーバーは、叔父さんに尋ねる必要があります。

すべてのDNSリクエストを記録することは可能ですが、非常識です。


ただし、キャッシュに依存するということは、問題のドメインにDNSリクエストを送信する必要があることを意味し、完全に(またはほとんど)ローカルDNSリクエストのみを取得しようとする目的全体を無効にします。
pythonnewbie

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.