DNS

DNS ポート ガイド: ポート 53 での名前解決

DNS が UDP と TCP 53 をどのように使用するか、DNS サーバーにいつアクセスできるか、ルックアップをテストする方法、およびリゾルバーの悪用を回避する方法を理解します。

既定ポート
53
プロトコル
UDP / TCP
主な用途
ドメイン名解決

DNSポートとは何ですか?

DNS (ドメイン ネーム システム) は、example.com などの名前を IP アドレスやその他のレコードに変換します。標準 DNS は、ほとんどの検索には UDP 経由でポート 53 を使用し、大規模な応答、ゾーン転送、再試行、および一部の運用ケースには TCP 経由でポート 53 を使用します。

  • DNS は UDP と TCP ポート 53 を使用します

    UDP 53 は高速かつ軽量であるため、ほとんどの通常のクエリを処理します。 TCP 53 も DNS の一部であるため、ファイアウォールの計画において忘れてはなりません。

  • 権威 DNS と再帰 DNS は異なります

    権威サーバーはゾーンに応答し、再帰リゾルバーはクライアントの名前を検索します。それらにはさまざまな暴露と悪用のリスクがあります。

DNS の仕組み

クライアントはドメインに到達する必要がある場合、A、AAAA、CNAME、MX、TXT、NS、SRV などのレコードをリゾルバーに要求します。リゾルバーはキャッシュから応答することも、レコードが見つかるまでルート、TLD、および権威サーバーを介して DNS 階層をたどることもできます。

リクエストとレスポンスが小さいため、ほとんどのクライアント クエリでは UDP ポート 53 が使用されます。応答が大きすぎる場合、切り捨てが発生した場合、DNSSEC が応答サイズを増加した場合、サーバーがゾーン転送や信頼性の高いストリームを必要とするその他の操作を実行した場合、DNS は TCP に切り替えることができます。

UDP 53 対 TCP 53

UDP 53 は、日常的な DNS 解決の共通パスです。これをブロックすると、通常は通常の検索が中断されます。 TCP 53 は、完全な DNS 導入ではオプションではありません。TCP 53 は、大規模な応答、切り捨てられた UDP 応答からのフォールバック、DNSSEC 負荷の高い応答、および承認されたサーバー間のゾーン転送をサポートします。

UDP 53 は許可するが TCP 53 をブロックするファイアウォール ルールにより、診断が困難な断続的な障害が発生する可能性があります。小さなレコードは機能する可能性がありますが、大きな DNSSEC、TXT、またはメール関連の応答は失敗します。

権威 DNS と再帰リゾルバー

権威 DNS サーバーは、管理するドメインのレコードを公開します。パブリックゾーンにサービスを提供する場合、インターネットからアクセスできる必要がありますが、それらのゾーンに対してのみ正式に応答する必要があり、オープン再帰を提供すべきではありません。

再帰リゾルバーはクライアントの検索を実行します。パブリック再帰リゾルバーは、その役割のために設計され、保護される必要があります。内部リゾルバーは通常、信頼できるネットワーク、VPN クライアント、または特定のアプリケーション環境に対してのみ応答する必要があります。

ポート 53 を開く必要がある場合

パブリック ゾーンをホストする権威 DNS サーバー用に、インターネットに対してポート 53 を開きます。 UDP と TCP の両方を考慮する必要があります。サーバーが内部のみにある場合は、名前解決が必要なネットワークへのアクセスを制限します。

レート制限、不正行為の監視、容量計画を備えたパブリック リゾルバーを意図的に運用する場合を除き、再帰リゾルバーをインターネット全体に公開しないでください。オープン リゾルバーは、リフレクション攻撃や増幅攻撃に悪用されることがよくあります。

DNSを開く前に

ポート 53 を許可する前に、サーバーが権威、再帰、転送、キャッシュ、またはスプリット ホライズンであるかどうかを決定します。どのクライアントがそれを使用する必要があるか、どのゾーンがサービスを提供するか、再帰が有効になっているかどうか、ゾーン転送が承認されたセカンダリ サーバーに制限されているかどうかを確認します。

ポート チェッカーはポート 53 が到達可能であることを確認できますが、DNS が正確であるためにはプロトコル レベルのテストが必要です。 dig、nslookup、drill、またはリゾルバ ログを使用して、レコードの回答、再帰ポリシー、TCP フォールバック、DNSSEC の動作、および応答時間を検証します。

Windows、Linux、クラウド プラットフォームで DNS を実行する方法

Windows Server では、DNS サーバーの役割は、Active Directory 統合ゾーン、内部レコード、および転送ルールを提供できます。特にサーバーにパブリック インターフェイスがある場合は、再帰とゾーン転送を慎重に制限してください。

Linux では、一般的な DNS サーバーには BIND、Unbound、PowerDNS、Knot DNS、CoreDNS、および dnsmasq が含まれます。 UDP および TCP 53 のリスニング インターフェイス、再帰ポリシー、許可されたクライアント、権限のあるゾーン、ロギング、およびファイアウォール ルールを構成します。

クラウド プラットフォームでは、プロバイダーがエニーキャスト、スケーリング、ベースライン DDoS 復元力を処理するため、パブリック権威ゾーンではマネージド DNS の方が安全であることがよくあります。セルフホスト DNS には、依然として冗長インスタンス、監視、明確なネットワーク ポリシーが必要です。

  • サービス層: DNS デーモンまたは管理対象サービスは、UDP と、必要に応じて TCP ポート 53 をリッスンする必要があります。
  • ポリシー層: 再帰、転送、ゾーン転送、DNSSEC、およびスプリット ホライズンの動作はサーバーの役割と一致する必要があります。
  • ネットワーク層: ホスト ファイアウォール、クラウド セキュリティ グループ、ルーター、ロード バランサー、およびエニーキャスト パスは、対象のクライアントを許可する必要があります。
  • 悪用レイヤー: レート制限、応答サイズ制御、ロギング、モニタリングにより、増幅とオープンリゾルバーのリスクを軽減します。

DNS ポート 53 をテストする方法

何を検証する必要があるかに応じて、UDP または TCP 53 の外部ポート チェックから始めます。次に、ターゲット リゾルバーに対して dig @server example.com A、dig @server example.com AAAA、または nslookup を実行して、実際の DNS 応答を確認します。

dig +tcp @server example.com TXT または別の大きな応答を使用して TCP を明示的にテストします。権限のあるサーバーの場合は、ネットワークの外部からレコードをクエリし、再帰が拒否されていることを確認します。再帰リゾルバーの場合は、許可されたソース ネットワークと許可されていないソース ネットワークの両方からクエリを実行します。

DNS 用のテスト ポート 53

一般的な DNS トラブルシューティングのケース

ポート 53 が閉じられている場合、DNS サービスが停止し、間違ったインターフェイスでリッスンしているか、ホスト ファイアウォールによってブロックされているか、クラウド セキュリティ グループによって制限されている可能性があります。 UDP は信頼できないように見えるが、TCP は動作する場合は、MTU、断片化、応答サイズ、EDNS 設定、および DNSSEC 関連の動作を検査してください。

ポートは開いているが検索が失敗する場合は、ゾーン データ、委任、グルー レコード、SOA および NS レコード、再帰ポリシー、フォワーダー、DNSSEC 検証、キャッシュ状態、およびログを確認します。 DNS 障害は、生のポートの到達可能性ではなく、ポリシーまたはゾーンの設定に起因することがよくあります。

DNS のセキュリティ チェックリスト

オープン再帰リゾルバーを誤って実行しないでください。信頼できるクライアントへの再帰を制限し、既知のセカンダリ サーバーへのゾーン転送を制限し、DNS ソフトウェアにパッチを適用した状態を維持し、クエリ レート、NXDOMAIN スパイク、SERVFAIL スパイク、異常なソース ネットワークを監視します。

パブリック権威 DNS の場合は、冗長サーバー、必要に応じて DNSSEC、運用の柔軟性を確保するために十分に短い TTL、およびゾーン変更の明確な所有権を使用します。内部 DNS の場合は、インフラストラクチャ名やプライベート トポロジが公開されることが多いため、スプリット ホライズン レコードを保護します。

よくある質問

DNS はどのポートを使用しますか?

DNS はポート 53 を使用します。ほとんどの通常のクエリでは UDP 53 が使用されますが、TCP 53 は大規模な応答、切り捨てられた UDP フォールバック、ゾーン転送、およびその他の信頼できるストリームの場合に使用されます。

UDP と TCP 53 の両方を開く必要がありますか?

多くの場合、そうです。 UDP 53 はほとんどの検索を処理しますが、TCP 53 は DNS の一部であり、大規模な応答、DNSSEC 負荷の高い応答、およびゾーン転送に必要です。 TCP をブロックすると、断続的な DNS エラーが発生する可能性があります。

開いている DNS ポートは危険ですか?

権威 DNS サーバーはパブリックにアクセス可能である必要がある場合があります。意図しないオープン再帰リゾルバーは、データが漏洩し、リフレクション攻撃や増幅攻撃に悪用される可能性があるため危険です。

ポート 53 が開いているのに、DNS ルックアップが依然として失敗するのはなぜですか?

DNS ポリシーまたはゾーン データが間違っていても、ネットワーク パスは機能する可能性があります。再帰設定、権限のあるゾーン レコード、委任、DNSSEC 検証、TCP フォールバック、フォワーダー、およびリゾルバー ログを確認します。