このページの内容
セキュリティポリシーのためのDNSスヌーピング
このトピックを読み、DNSスヌーピング機能がセキュリティデバイス上でDNS応答をリアルタイムで動的に検査およびキャッシュするメカニズムをどのように提供するかを理解してください。
概要
DNSネームサーバーは、ホスト名のIPアドレスをユーザーに提供します。リソースレコードのTTLフィールドは、DNSクエリ結果がキャッシュされる期間を定義します。TTL値が期限切れになると、ネームサーバーが新しいDNSクエリを送信し、キャッシュを更新します。
ポリシーまたはNAT送信元/宛先アドレスは、完全修飾ドメイン名(FQDN)にすることができます。DNSが変更されると、ポリシーは新しいIPアドレスで更新されます。導入によっては、ロードバランサーによって解決されたIPアドレスが急速に変更されることがあり、DNSクエリーにすべてのIPアドレスが提供されない場合があります。TTLが長い古いDNS IPアドレスは引き続き有効ですが、新しいIPアドレスは4〜5秒で解決されるため、FQDN-IPマッピングが同期しなくなる可能性があります。
この問題に対処するために、SRXシリーズファイアウォールはDNSスヌーピング機能をサポートしています。DNSスヌーピング機能は、DNS応答をリアルタイムで動的に検査してキャッシュするメカニズムを提供します。DNSスヌーピングを有効にすると、トラフィックがネットワークを通過するときにDNS応答パケットがシステムによってキャプチャされ、関連するDNSレコードが抽出され、ローカルキャッシュにFQDNとIPアドレスのマッピングが作成されます。このキャッシュは、完全修飾ドメイン名(FQDN)に関連付けられたIPアドレスが最新の状態に保たれるようにすることで、正確でタイムリーなDNSマッピングを提供します。
DNSスヌーピングのメリット
- DNSエントリーが頻繁に変更される環境において、DNSマッピングをリアルタイムで更新します。
- DNSスヌーピング設定を詳細に制御でき、機能をグローバルにアクティブにしたり、信頼できる特定のDNSサーバーに制限したりすることができます。
- IPv4とIPv6の両方のトラフィックをサポートします。
DNSスヌーピングの仕組み
クライアントから発信されたDNSトラフィックは、SRXシリーズファイアウォールを通過します。この図は、SRXシリーズファイアウォールがDNSクエリとDNS応答の両方を確認する対称的なトラフィックケースを示しています。DNSスヌーピングは、ファイアウォールがDNS応答のみを見る非対称トラフィックの導入もサポートします。
でのDNSスヌーピング
DNSを解決するために、クライアントブラウザはDNSクエリーをDNSリゾルバーに送信し、リゾルバーはルートサーバー、TLD(トップレベルドメイン)サーバー、権限サーバーを使用してIPを解決します。クライアントはDNS応答を受け取ります。この交換の後、クライアントはサーバーとの通信を開始します。
パケットがSRXシリーズファイアウォールを通過する際、ファイアウォールはアプリケーション識別とディープパケットインスペクション(DPI)を使用して、DNS関連のコンテキストを取得します。これらのコンテキストに基づいて、ファイアウォールはポリシーで設定されたFQDNのDNSレコードのキャッシュを構築します。キャッシュは、FQDN、IP、TTL情報を保持します。DNSキャッシュ内の更新、変更はNATまたはセキュリティポリシーモジュールに反映されます。
- DNSスヌーピングは、あるDNSサーバーから別のDNSサーバーへのトラフィック、ホストバウンドパケット、またはDNSプロキシへのパケットではなく、エンドユーザークライアントから発信されたトラフィック用に、SRXシリーズファイアウォールにDNSキャッシュを構築します。
- DNSプロキシまたはDNSスヌーピングのいずれかを一度に有効にできます。
- UDP経由のDNSトラフィックのスヌーピングとTCP経由のDNSトラフィックのスヌーピング(対称トラフィック導入)をサポートしています。
論理システムとテナントシステムのサポート
ルート論理システムで設定されたDNSスヌーピングは、すべての論理システムに適用されます。論理システムレベルで行われたDNSスヌーピングは、システム全体のDNSスヌーピングキャッシュに含まれます。
DNSスヌーピングとDNSモジュールの統合
DNSスヌーピング機能は、RE内の既存のDNSキャッシュモジュールとも統合されます。この共通DNSキャッシュは、包括的で最新のDNSデータベースを提供します。
システムは、以下のソースからのエントリーをマージして、共通DNSキャッシュのデータを提供します。
- 明示的なDNSクエリを使用してFQDNを解決するDNSリゾルバー
- データプレーン内のDNSトラフィックを検査した後にFQDNを解決するDNSスヌーピング。
show security dns-cacheコマンドは、DNS-resolverとDNS-snoopingの両方からのエントリーを表示します。
DNSスヌーピングキャッシュを活用したセキュリティポリシー
この例では、DNSスヌーピングを有効にし、FQDN名でアドレス帳を作成します。次に、セキュリティポリシーを作成し、アドレス帳(FQDN名)を宛先アドレスとして追加します。トラフィックがセキュリティポリシーに一致すると、トラフィックがネットワークを通過する際にDNS応答パケットがキャプチャされ、関連するDNSレコードが抽出され、ローカルキャッシュにFQDNとIPアドレスのマッピングが作成されます。
さらに、DNSキャッシュを使用するようにセキュリティポリシーを設定し、意図したポリシーを適用できます。例えば、次のサンプルでは、システムがDNSスヌーピングを介してデータを取得し、ポリシーP1が目的のトラフィックに一致できるようにします。
[edit] user@host# set security address-book global address addr1 dns-name www.example.com user@host# set services dns-snooping global-enable user@host# set security policies from-zone trust to-zone untrust policy P1 match source-address addr1 user@host# set security policies from-zone trust to-zone untrust policy P1 match destination-address any user@host# set security policies from-zone trust to-zone untrust policy P1 match application any user@host# set security policies from-zone trust to-zone untrust policy P1 match source-identity authenticated-user user@host# set security policies from-zone trust to-zone untrust policy P1 then permit
上記の設定により、ポリシー(P1)が「www.example.com」に関連付けられたアドレスから発信されたトラフィックに一致するようになります。この設定では、「www.example.com」からの認証済みユーザーのみが許可されます。この例では、DNSスヌーピングベースのポリシーが、リアルタイムのDNSデータに合わせて動的に調整することで、どのように正確な制御を提供し、ネットワークセキュリティを強化するかを示しています。
DNSスヌーピングレポート間隔の設定
以下のステートメントを使用して、データプレーンからのDNSスヌーピングデータがcomon DNSキャッシュに入力される頻度を制御できます。
[edit] user@host# set services dns-snooping report-interval <1..10>
間隔は1秒から10秒の間で設定できます。デフォルトの間隔は5秒です。
間隔を短くすると、データの伝搬が早くなり、ポリシーの適用が迅速化されますが、デバイスの通信が増加し、ポリシー変更が頻繁になります。show services dns-snooping countersに示されるように、DNSスヌーピングチャーンが最小の場合は、より低い間隔を使用します。
間隔を長くすると、ポリシーの変更やデバイス通信が減少します。