web-dev-qa-db-ja.com

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

私は興味がある。私はISPとインターネット仲介業者がすべてのDNS要求を記録し、基本的に多くのログにパンくずの痕跡を残し、広告目的でDNSハイジャックを許可する方法について読み続けています(私はCox Communicationsを見ています!).

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

基本的にドメイン内のマシンをマッピングするだけでDNSを設定できることはわかっていますが、基本的にはルートDNS情報のコピー/転送を独自のDNSサーバーに保存して、DNSのインターネットへの出入りをバイパスできるようにすることは可能ですウェブ閲覧のための情報は?

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

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

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

14
pythonnewbie

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

ルートサーバーは、問題の トップレベルドメイン (TLD)を担当するサーバーを特定する権限があります。たとえば、www.example.netを解決すると、最初にルートサーバーにクエリが送信され、.netの信頼できるネームサーバーが特定されます。 .netネームサーバーは、example.netの信頼できるネームサーバーを識別し、www.example.netのレコードを返します。

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

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

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

12
Warner

いくつかのこと:

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

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

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

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

3
joeqwerty

あなたは確かにあなた自身のサーバーをセットアップし、それをルートに対して信頼できるものにすることができますが、私はあなたがルートサーバーのゾーンファイルでそれを事前に満たすことができる方法を知りません。単にゾーン転送を要求することはできないので、キャッシュを保持してそれを埋める必要があると思います。

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

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

1
Martijn Heemels

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

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

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

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

1
BillThor

必要に応じて、独自のルートサーバーを実行することもできます。これをチェックしてください http://en.wikipedia.org/wiki/Alternative_DNS_root

0
Recursion

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

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

すべてのDNS要求をログに記録することは可能ですが、非常識です。

0
Pierre