Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

許可しない Web サイト ドメインの DNS リクエスト フィルタリング

DNS リクエスト フィルタリングの概要

Junos OS リリース 18.3R1 以降、DNS フィルタリングを設定して、許可しない Web サイト ドメインの DNS リクエストを特定できるようになりました。Junos OSリリース19.3R2以降、MX-SPC3サービスカードで次世代サービスを実行している場合、DNSフィルタリングを設定できます。次世代サービスは、MX240、MX480、MX960ルーターでサポートされています。DNS リクエスト タイプ A、AAAA、MX、CNAME、TXT、SRV、ANY では、拒否されたドメインの DNS リクエストに対して実行するアクションを設定します。以下のいずれかを実行できます。

  • WEB サイトへのアクセスをブロックするには、DNS シンクホール サーバーの IP アドレスまたは完全修飾ドメイン名(FQDN)を含む DNS 応答を送信します。これにより、クライアントが許可されていないドメインにトラフィックを送信しようとすると、トラフィックがシンクホール サーバーに送信されるようになります( 図 1 を参照)。

  • リクエストをログに記録し、アクセスを許可します。

Junos OS リリース 21.1R1 以降では、許可しないドメインに対して DNS リクエストに対して以下のアクションを設定することもできます。

  • 警告
  • 受け入れる
  • ドロップ
  • ドロップ no-log

許可されないドメインの他の DNS リクエスト タイプでは、そのリクエストがログに記録され、アクセスが許可されます。

シンクホールサーバーが実行するアクションは、DNSリクエストフィルタリング機能によって制御されません。シンクホールサーバーのアクションを設定する必要がありますたとえば、シンクホールサーバーは、ドメインに到達できないというメッセージをリクエストに送信し、許可されないドメインへのアクセスを防ぐことができます。

図 1:拒否されたドメイン DNS Request for Disallowed Domainの DNS リクエスト

利点

DNSフィルタリングは、許可されないWebサイトドメインに対するDNSリクエストをシンクホールサーバーにリダイレクトし、システムオペレーティングシステムが拒否されたドメインのリストを見ないようにします。これは、許可しないドメイン名が暗号化された形式であるためです。

許可しないドメイン フィルター データベース ファイル

DNS リクエスト フィルタリングには、許可しないドメイン フィルター データベースの .txt ファイルが必要です。このファイルでは、禁止された各ドメイン名、拒否されたドメインに対して DNS 要求に対して実行するアクション、DNS シンクホール サーバーの IP アドレスまたは完全修飾ドメイン名(FQDN)を識別します。

DNS フィルター プロファイル

DNS フィルター プロファイルを構成して、使用を許可しないドメイン フィルター データベース ファイルを指定します。また、DNSリクエストフィルタリングを実行するインターフェイスを指定し、特定のDNSサーバーのリクエストにフィルタリングを制限し、特定の送信元IPアドレスプレフィックスからのリクエストにフィルタリングを制限することもできます。

DNSリクエストフィルタリングを設定する方法

許可しない Web サイト ドメインの DNS リクエストをフィルタリングするには、以下を実行します。

ドメイン フィルター データベースを構成する方法

禁止された各ドメインのエントリを含む 1 つ以上のドメイン フィルター データベース ファイルを作成します。各エントリは、許可しない Web サイト ドメインに対する DNS リクエストの対処方法を指定します。

ドメインフィルターデータベースファイルを設定するには:

  1. ファイルの名前を作成します。データベース ファイル名の長さは最大 64 文字で、 拡張子は .txt である必要があります。
  2. 20170314_01:domain,sinkhole_ip,v6_sinkhole,sinkhole_fqdn,id,action などの形式のファイル ヘッダーを追加します。
  3. 禁止された各ドメインのファイルにエントリを追加します。ドメイン エントリーは最大 10,000 個まで含めることができます。データベース・ファイル内の各項目には、以下の項目があります。

    ハッシュドドメイン名、IPv4シンクホールアドレス、IPv6シンクホールアドレス、シンクホールFQDN、ID、アクション

    どこ:

    • hashed-domain-name は、許可しないドメイン名のハッシュ値です(16 進 64 文字)。Junos OS CLIでDNSフィルタリングを設定する場合、ハッシュドメイン値の生成に使用するハッシュメソッドとハッシュキーが必要です。

    • IPv4 sinkhole address は、IPv4 DNSリクエストのDNSシンクホールサーバーのアドレスです。

    • IPv6 sinkhole address は、IPv6 DNSリクエストのDNSシンクホールサーバーのアドレスです。

    • sinkhole FQDN は、DNSシンクホールサーバーの完全修飾ドメイン名です。

    • ID は、エントリーをハッシュされたドメイン名に一意に関連付ける 32 ビット番号です。

    • action は、拒否されたドメイン名と一致する DNS リクエストに適用するアクションです。以下を入力すると、

      • replaceでは、MXシリーズルーターは、DNSシンクホールサーバーのIPアドレスまたはFQDNでクライアントにDNS応答を送信します。と入力 reportすると、DNS リクエストが記録され、DNS サーバーに送信されます。
      • reportをクリックすると、DNS リクエストがログに記録され、DNS サーバーに送信されます。
      • alertをクリックすると、DNS リクエストがログに記録され、そのリクエストが DNS サーバーに送信されます。
      • acceptをクリックすると、DNS リクエストがログに記録され、そのリクエストが DNS サーバーに送信されます。
      • dropを選択すると、DNS リクエストがドロップされ、リクエストがログに記録されます。DNS リクエストは DNS サーバーに送信されません。
      • drop-no-logでは、DNS リクエストはドロップされ、syslog は生成されません。DNS リクエストは DNS サーバーに送信されません。
  4. ファイルの最後の行には、ハッシュドメイン名の生成に使用したのと同じキーとハッシュメソッドを使用して計算するファイルハッシュを含めます。
  5. /var/db/url-filterd ディレクトリのルーティング エンジンにデータベース ファイルを保存します。
  6. ドメイン フィルター データベース ファイルを検証します。
  7. データベース・ファイルに変更を加えた場合は、変更を適用します。

DNS フィルター プロファイルを構成する方法

DNS フィルター プロファイルには、許可しない Web サイト ドメインの DNS 要求をフィルタリングするための一般設定が含まれており、最大 32 個のテンプレートが含まれます。テンプレート設定は、特定のアップリンクおよびダウンリンク論理インターフェイスまたはルーティングインスタンス上のDNSリクエスト、または特定の送信元IPアドレスプレフィックスからのDNSリクエストに適用され、対応する設定をDNSプロファイルレベルで上書きします。最大8つのDNSフィルタープロファイルを設定できます。

DNSフィルタープロファイルを設定するには:

  1. DNS フィルター プロファイルの名前を構成します

    プロファイルの最大数は8です。

  2. DNSフィルタリングのクライアントごとの統計情報をログに記録する間隔を設定します。範囲は 0~60 分で、デフォルトは 5 分です。
  3. プロファイルの一般的な DNS フィルタリング設定を構成します。これらの値は、DNS リクエストが特定のテンプレートに一致しない場合に使用されます。
    1. DNS リクエストのフィルタリング時に使用するドメイン フィルター データベースの名前を指定します。
    2. (オプション)特定のDNSサーバー宛てのDNSリクエストにDNSフィルタリングを制限するには、最大3つのIPアドレス(IPv4またはIPv6)を指定します。
    3. ハッシュキーの形式を指定します。
    4. ドメイン フィルター データベース ファイルにハッシュ されたドメイン名を作成するために使用したハッシュ キーを指定します。
    5. ドメイン フィルター データベース ファイルにハッシュ されたドメイン名を作成するために使用されたハッシュ メソッドを指定します。

      唯一サポートされているハッシュメソッドは.hmac-sha2-256

    6. DNS リクエストと、各顧客 IP アドレスに対して実行されるシンクホール アクションの統計情報をログに記録する間隔を設定します。範囲は 1~60 分、デフォルトは 5 分です。
    7. DNSシンクホールアクションを実行した後、DNS応答を送信しながら、稼働するまでの時間を設定します。範囲は0~86,400秒で、デフォルトは1800です。
    8. 一致を検索するサブドメインのレベルを設定します。範囲は0~10です。値 0 はサブドメインが検索されていないことを示します。

      例えば、 を 4 に設定 wildcarding-level し、データベース・ファイルに example.com のエントリーが含まれている場合、ドメイン・ 198.51.100.0.example.com に到着する DNS 要求について、以下の比較が行われます。

      • 198.51.100.0.example.com: 一致しない

      • 51.100.0.example.com: 1 レベルダウンで一致しない

      • 100.0.example.com: 下の 2 つのレベルに一致しません

      • 0.example.com: 下の 3 つのレベルに一致しません。

      • example.com: 下の4つのレベルのために一致します

  4. テンプレートを設定します。プロファイルには最大8つのテンプレートを設定できます。各テンプレートは、特定のアップリンクおよびダウンリンク論理インターフェイスまたはルーティングインスタンスのDNSリクエスト、または特定のソースIPアドレスプレフィックスからのDNSリクエストのフィルター設定を識別します。
    1. テンプレートの名前を設定します。
    2. (オプション)DNSフィルタリングが適用されるクライアント側論理インターフェイス(アップリンク)を指定します。
    3. (オプション)DNSフィルタリングが適用されるサーバー側論理インターフェイス(ダウンリンク)を指定します。
    4. (オプション)DNSフィルタリングが適用されるクライアント側の論理インターフェイスのルーティングインスタンスを指定します。
    5. (オプション)DNSフィルタリングが適用されるサーバー側の論理インターフェイスのルーティングインスタンスを指定します。
      メモ:

      クライアントとサーバーインターフェイス、またはクライアントおよびサーバールーティングインスタンスを設定すると、インターフェイスまたはルーティングインスタンスに暗示的なフィルターがインストールされ、DNSフィルタリング用のサービスPICにDNSトラフィックを誘導します。クライアントとサーバーのインターフェイスもルーティングインスタンスも設定しない場合、DNSトラフィックをサービスPICに誘導する方法(ルートなど)を提供する必要があります。

    6. DNS リクエストのフィルタリング時に使用するドメイン フィルター データベースの名前を指定します。
    7. (オプション)特定のDNSサーバー宛てのDNSリクエストにDNSフィルタリングを制限するには、最大3つのIPアドレス(IPv4またはIPv6)を指定します。
    8. ドメイン フィルター データベース ファイルにハッシュ されたドメイン名を作成するために使用されたハッシュ メソッドを指定します。

      唯一サポートされているハッシュメソッドは.hmac-sha2-256

    9. ドメインフィルターデータベースファイルにハッシュされたドメイン名を作成するために使用されたハッシュキーを指定します。
    10. DNS リクエストと、各顧客 IP アドレスに対して実行されるシンクホール アクションの統計情報をログに記録する間隔を設定します。範囲は 1~60 分、デフォルトは 5 分です。
    11. DNSシンクホールアクションを実行した後、DNS応答を送信しながら、稼働するまでの時間を設定します。範囲は0~86,400秒で、デフォルトは1800です。
    12. 一致を検索するサブドメインのレベルを設定します。範囲は0~10です。値 0 はサブドメインが検索されていないことを示します。

      例えば、 を 4 に設定 wildcarding-level し、データベース・ファイルに example.com のエントリーが含まれている場合、ドメイン・ 198.51.100.0.example.com に到着する DNS 要求について、以下の比較が行われます。

      • 198.51.100.0.example.com: 一致しない

      • 51.100.0.example.com: 1 レベルダウンで一致しない

      • 100.0.example.com: 2レベルダウンで一致しない

      • 0.example.com: 下の 3 つのレベルに一致しません。

      • example.com: 下の4つのレベルのために一致します

    13. (オプション)SRV および TXT クエリ タイプの応答エラー コードを指定します。

      (オプション)SRV および TXT クエリ タイプの応答エラー コードを指定します。

    14. テンプレートの条件を設定します。テンプレートでは、最大64の条件を設定できます。
    15. (オプション)フィルタリングするDNSリクエストの送信元IPアドレスプレフィックスを指定します。1つの条件で最大64個のプレフィックスを設定できます。
    16. ドメインフィルターデータベースで特定されたシンクホールアクションが、許可されていないDNSリクエストに対して実行されるように指定します。

DNS フィルタリング用のサービス セットを構成する方法

DNS フィルター プロファイルをネクストホップ サービス セットに関連付け、DNS フィルタリングのログ記録を有効にします。サービスインターフェイスは、MX-SPC3サービスカードを備えたmsまたはvms-インターフェイスの次世代サービス、またはAMS(集合型マルチサービス)インターフェイスにすることができます。

DNSフィルタリングのマルチテナントサポート

概要

Junos OS リリース 21.1R1 以降、顧客または IP サブグループごとにカスタム ドメイン フィードを設定できるようになりました。できます:

  • 複数のテナントのドメイン名とアクションを構成し、ドメインフィードをテナント単位で管理できるようにします。
  • プロファイルごと、dns-filter-templateごと、またはdns-filter-termごとに階層型ドメインフィード管理を設定します。
  • IP、サブネット、または CIDR レベルでの免除ドメイン フィード。

DNS フィルタリングに対する mutiltenant サポートを実装するには、テンプレートまたはプロファイル レベルでドメイン フィルター データベース ファイルを作成することは無効です。テンプレートレベルまたはプロファイルレベルでファイルを指定する必要はありません。Junos OS 21.1R1以降では、デフォルトで、 nsf_multi_tenant_dn_custom_file.txt (プレーンテキスト形式)または dnsf_multi_tenant_dn_custom_file_hashed.txt (暗号化されたファイル)の固定名を持つグローバルファイルが使用できます。

データベース・ファイル内の各項目には、以下の項目があります。

hashed-domain-name、IPv4シンクホールアドレス、IPv6シンクホールアドレス、シンクホールFQDN、ID、アクション、フィード名。

ファイルハッシュが計算され、ファイル内のドメイン名エントリーのリストに追加されます。ファイルハッシュは、グローバルキーとメソッドを使用して計算されます。これは、 階層で設定されたハッシュキーを使用して計算されたファイルハッシュで [edit services web-filter] 検証されます。ファイルの検証は、計算されたファイルハッシュがファイルに存在するファイルハッシュと一致する場合にのみ成功します。

nsf_multi_tenant_dn_custom_file.txt ファイル内の各エントリは、feed-name と呼ばれる追加のフィールドで構成されています。このフィード名は、ドメイン名のセットをグループ化し、それらをテナント(プロファイル、テンプレート、条件、IPアドレス)にマッピングするための指標として使用されます。

特定のSRC IPアドレスからDNSパケットを受信すると、対応するフィード名が取得され、条件に関連付けられたフィード名でマッピングされたドメイン名に対してルックアップが行われます。その IP アドレスに対してフィード名がプロビジョニングされていない場合、そのフィード名はテンプレート レベルで構成されたフィード名にフォールバックし、テンプレートに関連付けられた feed-name でマッピングされたドメイン名に対してルックアップが行われます。フィード名がテンプレートで構成されていない場合、ルックアップはプロファイルに関連付けられたフィード名に対してマッピングされたドメイン名に対して行われます。

DNSフィルタリングのマルチテナントサポートの設定

  1. Webフィルターを設定します。
  2. マルチテナントサポートを有効にする
  3. グローバルファイルのハッシュキーとハッシュメソッドを設定します。
    メモ:

    を設定すると multi-tenant-hash、グローバルdnsフィードファイルが暗号化されたフィードのみで構成されていることを示します。s が構成されていない場合 multi-tenant-hash 、グローバル dns フィード ファイルにプレーン テキスト形式のフィードがあることを示します。

  4. DNS フィルター プロファイルの名前を構成し、ドメイン フィードをプロファイル レベルでマッピングします。プロファイルレベルで設定されたフィード名インジケータは、フィード名インジケータが設定されていないプロファイルのすべてのテンプレートと条件に適用されます。
  5. プロファイルの一般的な DNS フィルタリング設定を構成します。これらの値は、DNS リクエストが特定のテンプレートに一致しない場合に使用されます。
    1. (オプション)特定のDNSサーバー宛てのDNSリクエストにDNSフィルタリングを制限するには、最大3つのIPアドレス(IPv4またはIPv6)を指定します。
    2. DNS リクエストと、各顧客 IP アドレスに対して実行されるシンクホール アクションの統計情報をログに記録する間隔を設定します。範囲は 1~60 分、デフォルトは 5 分です。
    3. DNSシンクホールアクションを実行した後にDNS応答を送信するTTL(稼働時間)を設定します。範囲は0~86,400秒で、デフォルトは1800です。
    4. 一致を検索するサブドメインのレベルを設定します。範囲は0~10です。値 0 はサブドメインが検索されていないことを示します。
    5. (オプション)TXT クエリ タイプの応答エラー コードを指定します。
  6. テンプレートを設定します。プロファイルには最大8つのテンプレートを設定できます。各テンプレートは、特定のアップリンクおよびダウンリンク論理インターフェイスまたはルーティングインスタンスのDNSリクエスト、または特定のソースIPアドレスプレフィックスからのDNSリクエストのフィルター設定を識別します。
    1. テンプレートの名前を設定します。
    2. フィード名を設定します。マルチテナント形式では、プロファイルまたはテンプレートの下にファイル名を追加できなくなります。profile の下で指定されたフィード名は、テンプレートで設定されたフィードよりも優先度が低くなります。
    3. (オプション)DNSフィルタリングが適用されるクライアント側論理インターフェイス(アップリンク)を指定します。
    4. (オプション)DNSフィルタリングが適用されるサーバー側論理インターフェイス(ダウンリンク)を指定します。
    5. (オプション)DNSフィルタリングが適用されるクライアント側の論理インターフェイスのルーティングインスタンスを指定します。
    6. (オプション)DNSフィルタリングが適用されるサーバー側の論理インターフェイスのルーティングインスタンスを指定します。
      メモ:

      クライアントとサーバーインターフェイス、またはクライアントおよびサーバールーティングインスタンスを設定すると、インターフェイスまたはルーティングインスタンスに暗示的なフィルターがインストールされ、DNSフィルタリング用のサービスPICにDNSトラフィックを誘導します。クライアントとサーバーのインターフェイスもルーティングインスタンスも設定しない場合、DNSトラフィックをサービスPICに誘導する方法(ルートなど)を提供する必要があります。

    7. DNS リクエストと、各顧客 IP アドレスに対して実行されるシンクホール アクションの統計情報をログに記録する間隔を設定します。範囲は 1~60 分、デフォルトは 5 分です。
    8. DNSシンクホールアクションを実行した後、DNS応答を送信しながら、稼働するまでの時間を設定します。範囲は0~86,400秒で、デフォルトは1800です。
    9. 一致を検索するサブドメインのレベルを設定します。範囲は0~10です。値 0 はサブドメインが検索されていないことを示します。
    10. テンプレートの条件を設定します。テンプレートでは、最大64の条件を設定できます。
    11. フィード名を設定します。条件で設定されたフィード名は、テンプレートの下で設定されたものよりも高くなります。ただし、シンクホールドメインが、templateの下のフィード名で言及されている唯一のドメインと一致している場合、そのエントリに指定されたアクションが実装されます。
    12. (オプション)フィルタリングするDNSリクエストの送信元IPアドレスプレフィックスを指定します。1つの条件で最大64個のプレフィックスを設定できます。
    13. ドメインフィルターデータベースで特定されたシンクホールアクションが、許可されていないDNSリクエストに対して実行されるように設定します。
  7. DNS フィルター プロファイルをネクストホップ サービス セットに関連付け、DNS フィルタリングのログ記録を有効にします。サービスインターフェイスは、マルチサービス(ms)または仮想マルチサービス(vms)インターフェイス(MX-SPC3サービスカードを備えた次世代サービス)、またはAMS(集合型マルチサービス)インターフェイスにすることができます。
  8. MX-SPC3サービスカードで次世代サービスを実行している場合は、vmsインターフェイスを設定して、syslogでFPCとPIC情報を取得します。

例:DNSフィルタリングのマルチテナントサポートの設定

構成

CLI クイックコンフィギュレーション

この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、[edit]階層レベルの CLI にコマンドをコピー アンド ペーストします。

リリース履歴テーブル
リリース
説明
19.3R2
Junos OSリリース19.3R2以降、MX-SPC3サービスカードで次世代サービスを実行している場合、DNSフィルタリングを設定できます。次世代サービスは、MX240、MX480、MX960ルーターでサポートされています。