次の方法で共有


DNS トラフィックを保護して表示する (プレビュー)

この記事では、DNS セキュリティ ポリシーを使用して、仮想ネットワークで DNS トラフィックを表示してフィルター処理する方法について説明します。

Note

DNS セキュリティ ポリシーはプレビュープレビュー段階です。
ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

この DNS セキュリティ ポリシーのプレビューは、プレリリース機能のプレビューに登録する必要なく提供されます。

前提条件

セキュリティ ポリシーを作成する

Azure portal または PowerShell を使用してセキュリティ ポリシーを作成するには、次のいずれかの方法を選択します。

Azure portal を使用して DNS セキュリティ ポリシーを作成するには:

  1. Azure portal の [ホーム] ページで DNSセキュリティ ポリシーを検索して選択します。 また、Azure Marketplace から [DNS セキュリティ ポリシー] を選択することもできます。

  2. [+ 作成] を選択して新しいポリシーの作成を開始します。

  3. [基本] タブで、[サブスクリプション][リソース グループ] を選択するか、新しいリソース グループを作成します。

  4. [インスタンス名] の横に DNS セキュリティ ポリシーの名前を入力し、セキュリティ ポリシーを適用する [リージョン] を選択します。

    Note

    DNS セキュリティ ポリシーは、セキュリティ ポリシーと同じリージョン内の VNet にのみ適用できます。

    セキュリティ ポリシーの [基本] タブのスクリーンショット。

  5. [次へ: 仮想ネットワーク リンク] を選択し、次に [+ 追加] を選択します。

  6. セキュリティ ポリシーと同じリージョンの VNet が表示されます。 1 つ以上の利用可能な VNet を選び、[追加] を選びます。 既に別のセキュリティ ポリシーに関連付けられている VNet を選択することはできません。 次の例では、2 つの VNet がセキュリティ ポリシーに関連付けられており、選択可能な VNet は 2 つです。

    セキュリティ ポリシーの [仮想ネットワーク リンク] タブのスクリーンショット。

  7. 選択された VNet が表示されます。 必要に応じて、仮想ネットワーク リンクを作成する前に、リストから VNet を削除できます。

    仮想ネットワーク リンクのリストのスクリーンショット。

    Note

    仮想ネットワーク リンクは、選択されているかどうかにかかわらず、リストに表示されている全ての VNet に対して作成されます。 チェックボックスを使用して、リストから削除する VNet を選択します。

  8. [確認および作成] を選択し、次に [作成] を選択します。 [次へ: DNS トラフィック ルール] の選択はここではスキップしますが、今すぐトラフィック ルールを作成することもできます。 このガイドでは、トラフィック ルールと DNS ドメイン リストを作成し、後で DNS セキュリティ ポリシーに適用します。

ログ分析ワークスペースを作成する

既に使用する Log Analytics ワークスペースがある場合は、このセクションをスキップします。

Azure portal を使用して Log Analytics ワークスペースを作成するには:

  1. Azure portal の [ホーム] ページで、Log Analytics ワークスペースを検索して選択します。 Azure Marketplace から [Log Analytics ワークスペース] を選択することもできます。

  2. [+ 作成] を選択して新しいワークスペースの作成を開始します。

  3. [基本] タブで、[サブスクリプション][リソース グループ] を選択するか、新しいリソース グループを作成します。

  4. [名前] の横にワークスペースの名前を入力し、ワークスペースの [リージョン] を選択します。

    セキュリティ ポリシーの仮想ネットワーク リンクのリストのスクリーンショット。

  5. [確認および作成] を選択し、次に [作成] を選択します。

診断設定を構成する

Log Analytics ワークスペースができたので、このワークスペースを使用するようにセキュリティ ポリシーの診断設定を構成します。

診断設定を構成するには:

  1. 作成した DNS セキュリティ ポリシー (この例では myeast-secpol) を選択します。

  2. [監視][診断設定] を選択します。

  3. [診断設定の追加] を選択します。

  4. [診断設定の名前] の横に、ここで収集するログの名前を入力します。

  5. [ログ][メトリック] で "すべて" のログとメトリックを選択します。

  6. [診断の詳細][Log Analytics ワークスペースに送信する] を選択し、作成したサブスクリプションと ワークスペースを選択します。

  7. [保存] を選択します。 次の例を参照してください。

    セキュリティ ポリシーの診断設定のスクリーンショット。

DNS ドメイン リストを作成する

Azure portal を使って DNS ドメイン リストを作成するには:

  1. Azure portal の [ホーム] ページで DNS ドメイン リストを検索して選択します。

  2. [+ 作成] を選択して新しいドメイン リストの作成を開始します。

  3. [基本] タブで、[サブスクリプション][リソース グループ] を選択するか、新しいリソース グループを作成します。

  4. [ドメイン リスト名] の横にドメイン リスト名を入力し、リストの [リージョン] を選択します。

    Note

    セキュリティ ポリシーには、同じリージョン内のドメイン リストが必要です。

  5. [次へ: DNS ドメイン] を選択します。

  6. [DNS ドメイン] タブで、ドメイン名を 1 つずつ手動で入力するか、コンマ区切り値 (CSV) ファイルからインポートします。

    DNS ドメイン リストの作成のスクリーンショット。

  7. ドメイン名の入力が完了したら、[確認と作成] を選択し、[作成] を選択します。

必要に応じて、詳細なドメイン リストを作成するためにこのセクションを繰り返します。 各ドメイン リストは、次の 3 つのアクションのいずれかを持つトラフィック ルールに関連付けることができます。

  • 許可: DNS クエリを許可し、ログに記録します。
  • ブロック: DNS クエリをブロックし、ブロック アクションをログに記録します。
  • アラート: DNS クエリを許可し、アラートをログに記録します。

1 つの DNS トラフィック ルールから複数のドメイン リストを動的に追加または削除できます。

DNS トラフィック ルールを構成する

DNS ドメイン リストができたので、このワークスペースを使用するようにセキュリティ ポリシーの診断設定を構成します。

Note

CNAME チェーンが調べられ ("追跡され")、ドメインに関連付けられているトラフィック ルールを適用する必要があるかどうかを判断します。 たとえば、malicious.contoso.com に適用されるルールは、adatum.commalicious.contoso.com にマップされる場合、または malicious.contoso.comadatum.com の CNAME チェーンのどこかに表示される場合は、adatum.com にも適用されます。

診断設定を構成するには:

  1. 作成した DNS セキュリティ ポリシー (この例では myeast-secpol) を選択します。

  2. [設定] で、[DNS トラフィック ルール] を選択します。

  3. [+ 追加] を選択します。 [DNS トラフィック ルールの追加] ペインが開きます。

  4. [優先度] の横に、100 - 65000 の範囲の値を入力します。 ルールの数値が小さいほど優先度が高くなります。

  5. [ルール名] の横にルールの名前を入力します。

  6. [DNS ドメイン リスト] の横で、このルールで使用するドメイン リストを選択します。

  7. [トラフィック アクション] の次に、選択したドメインに適用するアクションの種類に基づいて、[許可][ブロック]、または [アラート] を選択します。 この例では [許可] が選択されています。

  8. 既定の [ルールの状態][有効] のままにして、[保存] を選択します。

    DNS トラフィック ルールの作成のスクリーンショット。

  9. ビューを更新して、ルールが正常に追加されたことを確認します。 トラフィック アクション、DNS ドメイン リスト、ルールの優先度、ルールの状態を編集できます。

    DNS トラフィック ルールのスクリーンショット。

DNS ログを表示してテストする

  1. DNS セキュリティ ポリシーに移動し、[監視][診断設定] を選択します。
  2. 以前にセキュリティ ポリシーに関連付けた Log Analytics ワークスペース (この例では secpol-loganalytics) を選択します。
  3. 左側の [ログ] を選びます。
  4. 同じリージョン内の IP アドレス 10.40.40.4 の仮想マシンからの DNS クエリを表示するには、次のようにクエリを実行します。
DNSQueryLogs
| where SourceIpAddress contains "10.40.40.4"
| limit 1000

次の例を参照してください。

Log Analytics クエリの例のスクリーンショット。

contoso.com を含むトラフィック ルールが [許可] クエリに設定されていたことを思い出してください。 仮想マシンからのクエリは正常に応答します。

C:\>dig db.sec.contoso.com +short
10.0.1.2

ログ分析でクエリの詳細を展開すると、次のようなデータが表示されます。

  • OperationName: RESPONSE_SUCCESS
  • リージョン: EastUS
  • QueryName: db.sec.contoso.com
  • QueryType: A
  • SourceIpAddress: 10.40.40.4
  • ResolutionPath: PrivateDnsResolution
  • ResolverPolicyRuleAction: Allow

トラフィック ルールを編集して [ブロック] の contoso.com クエリに設定すると、仮想マシンからのクエリの王乙が失敗します。 ルールのコンポーネントを変更する場合は、必ず [保存] を選択してください。

編集とトラフィック ルールのスクリーンショット。

この変更により、次のようにクエリが失敗します。

C:\>dig db.sec.contoso.com

; <<>> DiG 9.9.2-P1 <<>> db.sec.contoso.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 24053
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

失敗したクエリは次のログ分析に記録されます。

失敗したクエリのスクリーンショット。

Note

クエリの結果がログ分析に表示されるまで、数分かかる場合があります。