DNS再帰は安全ではありませんが、内部アプリケーションに必要ですか?


16

Windows Server 2008の管理では、サーバーは一部のドメインのDNS(ネームサーバー)をホストし、公的にアクセス可能な一部のアプリケーションをホストします。

セキュリティスキャンは、再帰クエリを許可するため、DNS構成が安全でないことを示しています。

再帰クエリを無効にしようとしましたが、いくつかの問題が発生しました(ローカルアプリから送信されたメールは配信されず、サードパーティサイトに接続するローカルで実行されているアプリは接続のドメイン名を解決できませんでしたなど)。そのため、サーバー自体から発信されるDNS要求は、再帰クエリに依存して機能しているようです。

サーバー上でホストされているDNSによる再帰クエリを無効にしながら、サーバー上で発生するDNSクエリを機能させる方法はありますか?ローカルDNSサーバーで再帰クエリを無効にし、ネットワーク設定で送信DNSを外部(8.8.8.8など)に設定して、送信DNSクエリが最初にそこに行き、このサーバーのDNSのみが終了するようにできるかどうか疑問に思っています実際にローカルでホストしているドメインのクエリを取得します。

御時間ありがとうございます!

回答:


11

インターネット全体に再帰的な検索機能を提供しないことをお勧めします。したがって、権限のあるクエリにのみ応答するようにDNSサーバーを構成することはGood Thing TMです。

表面的には、最後の段落で到達した結論は良い結論であるように思えます。サーバーのTCP / IP設定を構成して、再帰的な検索を提供する権限あるDNSサーバーを使用します。DNSサーバープロセスは、サーバーコンピューターのNICのTCP / IP設定で構成されたDNSサーバーを特に使用しません。むしろ、DNSサーバーの構成に基づいて要求を転送します(またはルートヒントを使用します)。

サーバーで実行されているアプリケーションがドメインを照会しようとすると、そのマシンで実行されているDNSサーバーはリクエストに対して権限があり、最終的にはそのマシンで実行されているDNSサーバープロセスになり、クエリが応答されます。


14

サーバー上でホストされているDNSによる再帰クエリを無効にしながら、サーバー上で発生するDNSクエリを機能させる方法はありますか?

MicrosoftのDNSサーバーではありません。

ISCのDNSサーバーであるBINDを使用すると、ビューで物事を回避できます。MicrosoftのDNSサーバーにはそのようなメカニズムはありません。したがって、Microsoft DNSサーバーの特定のインスタンスでは、パブリックコンテンツ DNSサーバーかサイトローカルプロキシ DNSサーバーかを選択する必要があります。さまざまなDNSクライアントに対して異なる種類のサーバーのふりをすることはできません。

セキュリティテストサービス/ツールは非常に適切です。それはあるプロキシサービスを提供しないことをお勧め- 任意のプロキシサービスの種類:それもHTTPプロキシサービス、プロキシサービス、またはSMTP発信サービスDNS -自分のサイトoutwithインターネットの残りにします。別々のサーバーを用意する必要があります。登録済みのドメイン名に関するパブリックDNSデータをインターネット上の全員に公開するコンテンツDNSサーバー。また、ローカルプロキシDNSサーバーは、LAN /組織のコンピューターに代わってクエリ解決の面倒な作業を行い、組織/ LAN上のマシンのみがアクセスできます。MicrosoftのDNSサーバーでは、これは特に簡単ではありません。

それは次のようになり、特にあなたのマシンがドメインコントローラでもあった場合には難しいです。あなたは、このマシンがインターネット全体から直接到達可能であると述べています。そのようなマシンがドメインコントローラである場合は、お使いのネットワーク組織は再考すべきである。プロキシDNSサービスだけでなく、非常に多くの内部サービスを公開します。それでは、これがドメインコントローラーではないという前提で作業しましょう。

ドメインコントローラーではなく、単なるメンバーサーバーであるため、マシン上のDNS クライアントがマシンのDNS サーバー(または最初は別のドメインコントローラーのDNSサーバー)をプロキシに使用する必要はありません。DNSサービス。これはドメインコントローラーの場合です。持っていた場合、マシンのDNSサーバーでプロキシDNSサービスをオフにすることはできません。幸いなことに、それはドメインコントローラーではなく、そのDNSクライアントはそれ自体ではなく、プロキシDNSサービスに他のマシンを使用できます。

ただし、メンバーサーバーマシンのDNSクライアントは、内部プロキシDNSサーバーを使用する必要があります。ISP、Google、またはActive DirectoryがLANで使用しているすべてのDNSデータを知らない他の組織によって提供されるような外部DNSサーバーを単に指すことはできません。ただし、1つ以上のドメインコントローラー上のDNSサーバーにマシンのDNSクライアントを向けることができます。これは非常に簡単であり、結局のところ、LAN 上のすべてのワークステーションで既に実行していることです。メンバーサーバー上のDNSクライアントは、すべてのワークステーション上のDNSクライアントと同じように構成するだけで済みます。

マシンのDNSクライアントがプロキシDNSサービス用にマシンで実行されているDNSサーバーを使用していない場合、MicrosoftのDNSサーバーを構成して、いかなる形式のプロキシDNSサービスも誰にも提供しないようにします。

参考文献


優れた評価。
ニック

情報に感謝します、ありがとう!ここでは小規模なインフラストラクチャを使用しているため、提示されたソリューションはこのシナリオには過剰です。
イラスノ

これはServer 2016の時点ではもはや当てはまらないことに注意してください。Windowsは、クライアントのアドレスに応じて再帰的な検索を制限するオプションを含む、スプリットブレインDNSをサポートするようになりました。ただし、パブリックリクエスト用に独立したサーバーをセットアップすることは、依然として簡単なオプションです。
ボブ

5

Evanの答えで述べたように、アプリケーションはサーバー上のDNSクライアントコンポーネントを使用する必要があります。これは、DNSサーバーコンポーネントから完全に独立しています。DNSサーバーコンポーネントは、再帰を実行しないように構成でき、権限のあるDNSゾーンに対してのみ送信されたクエリに応答できます。

アプリケーションは、関連するNICのTCP / IPプロパティで構成されたDNSサーバーを使用できます。これは、再帰を実行するDNSサーバー(GoogleのDNSサーバーなど)を使用するように構成できます。関連するNICのTCP / IPプロパティで構成されたDNSサーバーは、同じサーバーで実行されているDNSサーバーを指す必要はありません。


0

私は最近、同じ問題を抱えており、DNSサーバーが増幅攻撃に使用されていました。しかし、他の内部サーバーでは再帰を継続する必要があります。

シスコのルーターを使用している場合は、修正が可能です。外部DNSをCisco 7200VXRルーターに移動し、特定のDNSゾーンにのみ応答するように構成しました。内部DNSサーバーに対してクエリを実行するため、2つの場所にすべてを入力する必要はありません。

ここに私が使用したCisco configのスニペットがあります:

ip dns view default
 dns forwarder 192.168.0.xx (internal DNS server)
 domain round-robin

ip dns view-list default
 view default 1
  restrict name-group 1

ip dns name-list 1 permit abc.com
ip dns name-list 1 permit def.com
ip dns name-list 1 permit anyotherdomainthatyouhost.com
ip dns name-list 1 permit 3.2.1.in-addr.arpa (needed for reverse PTR lookups)

interface fastethernet0/0 (the interface where the IP address is that will host DNS)
 ip dns view-group default
 ip address 1.2.3.4 secondary (use the public facing IP you will use to host DNS)

ip dns server

また、次のようなアクセスリストを使用してルーターへのDNSパケットを許可することを忘れないでください。

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