Microsoft IAS / ネットワーク ポリシー サーバー(NPS)のログを収集する

以下でサポートされています。

このドキュメントでは、Microsoft Azure Blob Storage V2 を使用して Google SecOps フィードを設定し、Microsoft Internet Authentication Service(IAS)/ Network Policy Server(NPS)ログを収集する方法について説明します。

Microsoft ネットワーク ポリシー サーバー(NPS)は、RADIUS(Remote Authentication Dial-In User Service)サーバーとプロキシの Microsoft による実装です。NPS を使用すると、VPN 接続、ワイヤレス アクセス ポイント、802.1X 認証スイッチ、ダイヤルアップ リモート アクセスのネットワーク アクセス認証、認可、アカウンティングを一元管理できます。NPS は、Windows Server 2003 以前のバージョンではインターネット認証サービス(IAS)と呼ばれていました。NPS は、ネイティブのクラウド エクスポート機能を持たない Windows Server のロールとして実行されるため、このガイドでは、Azure Monitor エージェントを使用して、ローカル ファイル システムから NPS アカウンティング ログファイルを収集し、Log Analytics ワークスペースを介して Azure Blob Storage にルーティングします。

始める前に

  • 次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス

  • Microsoft Azure ポータルへの特権アクセス。次の権限が必要です。

    • ストレージ アカウントを作成する
    • Log Analytics ワークスペースを作成して管理する
    • データの収集ルールを作成する
    • データ エクスポート ルールを作成する
    • アクセスキーを管理する
  • Windows Server 2016 以降(NPS ロールがインストールされていること)

  • NPS サーバーに対する管理者権限

  • NPS サーバーから Azure へのネットワーク接続(ポート 443 での HTTPS アウトバウンド)

NPS のアカウンティングとロギングを構成する

NPS を有効にして、認証リクエストとアカウンティング リクエストを IAS 形式のローカル テキスト ファイルに記録します。

NPS 会計ログを有効にする

  1. NPS を実行している Windows Server で、[サーバー マネージャー] を開きます。
  2. [ツール] > [ネットワーク ポリシー サーバー] に移動します。
  3. NPS コンソール ツリーで、[Accounting] をクリックします。
  4. 詳細ウィンドウの [アカウンティング] で、[アカウンティングを構成] をクリックします。
  5. [Accounting Configuration] ウィザードで、[Log to a text file on the local computer] を選択し、[Next] をクリックします。
  6. [ログファイルプロパティの構成] ページで、次のように構成します。
    • [次の情報をログに記録する] セクションで、ログに記録する情報のチェックボックスをオンにします。
      • アカウンティング リクエスト
      • 認証リクエスト
      • 定期的な会計ステータス
      • 定期的な認証のステータス
    • [Logging failure action] セクションで、ログファイルが利用できない場合に NPS の処理を停止するには、[If logging fails, discard connection requests] を選択します。ロギングに失敗した場合でも NPS で処理を続行する場合は、チェックボックスをオフのままにします。
  7. [次へ] をクリックします。
  8. 概要を確認して [Finish] をクリックします。

ログファイルのプロパティを構成する

  1. NPS コンソール ツリーで、[Accounting] をクリックします。
  2. 詳細ペインの [ログファイルのプロパティ] で、[ログファイルのプロパティを変更] をクリックします。
  3. [ログファイル] タブをクリックします。
  4. [Directory] フィールドで、ログファイルの場所を確認または変更します。
    • デフォルトのロケーション: %systemroot%\System32\LogFiles
    • 整理しやすくするため、専用のディレクトリ(C:\NPSLogs など)を指定します。
  5. [フォーマット] プルダウンで [IAS(従来版)] を選択します。

  6. [新しいログファイルを作成する] で、ログ ローテーションの間隔を選択します。

    • 毎日(ほとんどの環境で推奨)
    • 毎週
    • 毎月
    • なし(ファイルサイズ無制限)
    • ログファイルがこのサイズに達したとき(サイズを MB 単位で指定)
  7. ディスク容量が少なくなったときに NPS で古いログファイルを削除する場合は、[ディスクがいっぱいになったら古いログファイルを削除する] を選択します。

  8. [OK] をクリックして構成を保存します。

  9. 構成されたディレクトリにログファイルが作成されていることを確認します。

Azure ストレージ アカウントを構成する

ストレージ アカウントを作成する

  1. Azure ポータルで、[ストレージ アカウント] を検索します。
  2. [+ 作成] をクリックします。
  3. 次の構成情報を提供してください。

    設定 値
    サブスクリプション Azure サブスクリプションを選択する
    リソース グループ 既存のものを選択するか、新しいものを作成
    ストレージ アカウント名 一意の名前を入力します(例: npsiaslogs)。
    リージョン リージョンを選択します(例: East US)。
    パフォーマンス 標準(推奨)
    冗長性 GRS(地理冗長ストレージ)または LRS(ローカル冗長ストレージ)
  4. [Review + create] をクリックします。

  5. アカウントの概要を確認し、[作成] をクリックします。

  6. デプロイが完了するまで待ちます。

ストレージ アカウントの認証情報を取得する

  1. 作成したストレージ アカウントに移動します。
  2. 左側のナビゲーションで、[セキュリティ + ネットワーキング] の [アクセスキー] を選択します。
  3. [キーを表示] をクリックします。
  4. 後で使用するために、次の情報をコピーして保存します。
    • ストレージ アカウント名: ストレージ アカウント名(例: npsiaslogs)
    • Key 1 または Key 2: 共有アクセスキー(base-64 でエンコードされた 512 ビットのランダムな文字列)

Blob サービス エンドポイントを取得する

  1. 同じストレージ アカウントで、左側のナビゲーションから [エンドポイント] を選択します。
  2. Blob サービスのエンドポイント URL をコピーして保存します。
    • 例: https://npsiaslogs.blob.core.windows.net/

Log Analytics ワークスペースを作成する

Azure Blob Storage にエクスポートする前に、Azure Monitor エージェントからカスタム テキストログを受信するには、Log Analytics ワークスペースが必要です。

  1. Azure ポータルで、ログ分析ワークスペースを検索します。
  2. [+ 作成] をクリックします。
  3. 次の構成情報を提供してください。

    設定 値
    サブスクリプション Azure サブスクリプションを選択する
    リソース グループ ストレージ アカウントと同じリソース グループを選択します。
    名前 一意の名前を入力します(例: nps-ias-workspace)。
    リージョン ストレージ アカウントと同じリージョンを選択します。
  4. [レビュー + 作成] をクリックします。

  5. 設定を確認し、[作成] をクリックします。

  6. デプロイが完了するまで待ちます。

カスタム ログテーブルを作成する

Log Analytics ワークスペースにカスタム テーブルを作成して、NPS / IAS ログデータを保存する。

  1. Azure ポータルで、作成した ログ分析ワークスペースに移動します。
  2. 左側のナビゲーションで、[Settings] の [Tables] を選択します。
  3. [+ 作成] > [新しいカスタムログ(DCR ベース)] をクリックします。
  4. [テーブル名] フィールドに「NpsIasLogs」と入力します。完全なテーブル名は NpsIasLogs_CL になります。
  5. [作成] をクリックします。

NPS サーバーを Azure Arc にオンボーディングする

NPS はオンプレミスの Windows Server で実行されるため、Azure Monitor エージェントをインストールする前に、サーバーを Azure Arc にオンボーディングする必要があります。

NPS サーバーを Azure Arc に登録する

  1. Azure ポータルで、Azure Arc を検索します。
  2. 左側のナビゲーションで、[Infrastructure] の [Machines] を選択します。
  3. [+ 追加 / 作成] > [マシンを追加] をクリックします。
  4. [Azure Arc を使用してサーバーを追加する] セクションで、[単一のサーバーを追加する] の [スクリプトを生成する] を選択します。
  5. 次の構成情報を指定します。
    • Subscription: Azure サブスクリプションを選択します。
    • Resource group: 以前に使用したリソース グループを選択します。
    • リージョン: ログ分析ワークスペースと同じリージョンを選択します。
    • オペレーティング システム: [Windows] を選択します。
    • 接続方法: [パブリック エンドポイント] を選択します(ネットワークで必要な場合は [プロキシ サーバー] を選択します)。
  6. [Download and run script] をクリックします。
  7. 生成された PowerShell スクリプトを NPS サーバーにコピーします。
  8. NPS サーバーで、管理者として PowerShell を開き、次のスクリプトを実行します。

    & '.\OnboardingScript.ps1'
    
  9. 画面上の手順に沿って Azure で認証を行い、オンボーディングを完了します。

  10. スクリプトが完了したら、[Azure portal] > [Azure Arc] > [Machines] に戻り、NPS サーバーが [Connected] ステータスで表示されていることを確認します。

Azure Monitor エージェントをインストールする

Arc 対応サーバーに Azure Monitor エージェントをインストールする

  1. Azure ポータルで、[Azure Arc] > [Machines] に移動します。
  2. マシンのリストから NPS サーバーを選択します。
  3. 左側のナビゲーションで、[設定] の [拡張機能] を選択します。
  4. [+ Add] をクリックします。
  5. 拡張機能のリストから [Azure Monitor Agent] を選択します。
  6. [次へ] をクリックします。
  7. [Review + create] をクリックします。
  8. [作成] をクリックします。
  9. 拡張機能のインストールが完了するまで待ちます。ステータスが [プロビジョニングが成功しました] に変わります。

NPS ログファイルのデータの収集ルールを作成する

データ収集ルール(DCR)は、NPS IAS ログファイルを収集して Log Analytics ワークスペースに送信するよう Azure Monitor エージェントに指示します。

  1. Azure ポータルで、[モニタリング] を検索します。
  2. 左側のナビゲーションで、[設定] の [データの収集ルール] を選択します。
  3. [+ 作成] をクリックします。
  4. [基本] タブで、次の構成の詳細を入力します。
    • ルール名: 「dcr-nps-ias-logs」と入力します。
    • Subscription: Azure サブスクリプションを選択します。
    • Resource Group: 以前に使用したリソース グループを選択します。
    • リージョン: ログ分析ワークスペースと同じリージョンを選択します。
    • プラットフォーム タイプ: [Windows] を選択します。
  5. [次へ: リソース] をクリックします。
  6. [リソース] タブで、次の操作を行います。
    1. [+ リソースを追加] をクリックします。
    2. リソース グループを開き、Azure Arc 対応 NPS サーバーを選択します。
    3. [適用] をクリックします。
  7. [次へ: 収集と配信] をクリックします。
  8. [集荷と配送] タブで、次の操作を行います。

    1. [+ データソースを追加] をクリックします。
    2. [データソース タイプ] プルダウンで、[カスタム テキストログ] を選択します。
    3. [ファイル パターン] フィールドに、NPS ログファイルのパスを入力します。

      C:\Windows\System32\LogFiles\IN*.log
      
    4. [テーブル名] プルダウンで NpsIasLogs_CL を選択します。

    5. [レコード区切り文字] フィールドで、[行末] を選択します。

    6. [変換] フィールドに「source」と入力して、未加工のログデータを変更せずに送信します。

    7. [データソースを追加] をクリックします。

  9. [Destination] セクションで、作成した Log Analytics ワークスペースが一覧表示されていることを確認します。

  10. [Next: Review + create] をクリックします。

  11. 設定を確認し、[作成] をクリックします。

Azure Blob Storage へのデータ エクスポートを構成する

データ エクスポート ルールを作成して、NPS / IAS ログデータを Log Analytics ワークスペースから Azure Blob Storage に継続的にエクスポートする。

データ エクスポート ルールを作成する

  1. Azure ポータルで、作成した Log Analytics ワークスペースに移動します。
  2. 左側のナビゲーションで、[設定] の [データのエクスポート] を選択します。
  3. [+ 新しいエクスポート ルール] をクリックします。
  4. [基本] タブで、次の構成の詳細を入力します。
    • ルール名: 「export-nps-ias-logs」と入力します。
    • 宛先: [ストレージ アカウント] を選択します。
  5. [次へ: ソース] をクリックします。
  6. [ソース] タブで、NpsIasLogs_CL テーブルを選択します。
  7. [次へ: 宛先] をクリックします。
  8. [宛先] タブで、次の操作を行います。
    • Subscription: ストレージ アカウントを含むサブスクリプションを選択します。
    • ストレージ アカウント: 前に作成したストレージ アカウント(npsiaslogs など)を選択します。
  9. [Review + create] をクリックします。
  10. 設定を確認し、[作成] をクリックします。

Microsoft IAS のログを取り込むように Google SecOps でフィードを構成する

  1. [設定] > [データ管理] > [フィード] に移動します。SIEM のみのプラットフォームを使用している場合は、[設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一のフィードを構成する] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Microsoft IAS NPS Logs)。
  5. [ソースタイプ] として [Microsoft Azure Blob Storage V2] を選択します。
  6. [Log type] として [Microsoft IAS] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • Azure URI: コンテナパスを含む Blob Service エンドポイント URL を入力します。
    https://npsiaslogs.blob.core.windows.net/am-NpsIasLogs_CL/
    
    • 次のように置き換えます。
      • npsiaslogs: Azure ストレージ アカウント名。
      • am-NpsIasLogs_CL: データ エクスポート ルールによって自動的に作成された blob コンテナ名。
    • Source deletion option: 必要に応じて削除オプションを選択します。
    • なし: 転送後にファイルを削除しません。
    • 転送されたファイルを削除する: 転送が完了した後にファイルを削除します。
    • 転送されたファイルと空のディレクトリを削除する: 転送が成功した後にファイルと空のディレクトリを削除します。
    • ファイルの最長存続期間: 過去数日間に変更されたファイルを含めます(デフォルトは 180 日)。
    • 共有キー: 以前にストレージ アカウントからキャプチャした共有キーの値(アクセスキー)を入力します。
    • Asset namespace: アセットの名前空間。
    • Ingestion labels: このフィードのイベントに適用されるラベル。
  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

Azure Storage ファイアウォールを構成する(有効になっている場合)

Azure Storage アカウントでファイアウォールを使用している場合は、Google SecOps の IP 範囲を追加する必要があります。

  1. Azure ポータルで、[ストレージ アカウント] に移動します。
  2. [セキュリティ + ネットワーキング] で [ネットワーキング] を選択します。
  3. [ファイアウォールと仮想ネットワーク] で、[選択した仮想ネットワークと IP アドレスから有効にする] を選択します。
  4. [ファイアウォール] セクションの [アドレス範囲] で、[+ IP 範囲を追加] をクリックします。
  5. 各 Google SecOps IP 範囲を CIDR 表記で追加します。

    現在の IP 範囲を取得するには:

  6. [信頼できるサービスのリストにある Azure サービスによるこのストレージ アカウントへのアクセスを許可する] チェックボックスがオンになっていることを確認します(Log Analytics データ エクスポートが機能するために必要です)。

  7. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
packet_type additional.fields 空でない場合は、各フィールドのラベルと統合されます。
auth_type additional.fields
filter_id additional.fields
framed_netmask additional.fields
framed_address additional.fields
framed_protocol additional.fields
framed_routing additional.fields
framed_mtu additional.fields
framed_compression additional.fields
reason_code additional.fields
extensible_auth_protocol additional.fields
service_type additional.fields
nas_port additional.fields
reply_message additional.fields
nas_identifier additional.fields
device-type additional.fields
coa-push additional.fields
audit-session-id additional.fields
日付 metadata.event_timestamp 日付と時刻から連結され、MM/dd/yyyy HH:mm:ss 形式で解析されます。
時間 metadata.event_timestamp
principal_present metadata.event_type 「GENERIC_EVENT」に設定し、principal_present と target_present の場合は「NETWORK_CONNECTION」に設定します。それ以外の場合は、principal_present の場合は「STATUS_UPDATE」に設定します。
target_present metadata.event_type
ac-user-agent network.http.parsed_user_agent 解析が成功した場合は ac-user-agent から変換
ac-user-agent network.http.user_agent 値が直接コピーされる
session_duration network.session_duration.seconds 値が直接コピーされ、整数に変換されます。
session_id network.session_id 値が直接コピーされる
principal_hostname principal.asset.hostname 値が直接コピーされる
principal_ip principal.asset.ip 有効な IP の場合は principal_ip の値、有効な IP の場合は calling_station_id
calling_station_id principal.asset.ip
principal_hostname principal.hostname 値が直接コピーされる
principal_ip principal.ip 有効な IP の場合は principal_ip の値、有効な IP の場合は calling_station_id
calling_station_id principal.ip
device-mac principal.mac device-mac の値(空でない場合、- を : に置換後)。空の場合は device-public-mac
device-public-mac principal.mac
nat_ip principal.nat_ip 値が直接コピーされる
デバイス プラットフォーム principal.platform ["Win","win"] の場合は「WINDOWS」、=~ "mac|iOS" の場合は「MAC」、=~ "lin" の場合は「LINUX」に設定します。
device-platform-version principal.platform_version 値が直接コピーされる
device-uid principal.resource.product_object_id 値が直接コピーされる
user_name principal.user.user_display_name 値が直接コピーされる
userid principal.user.userid 値が直接コピーされる
service_name target.application 値が直接コピーされる
computer_name target.asset.hostname 値が直接コピーされる
target_ip target.asset.ip 有効な IP の場合は target_ip の値、有効な IP の場合は called_station_id
called_station_id target.asset.ip
computer_name target.hostname 値が直接コピーされる
target_ip target.ip 有効な IP の場合は target_ip の値、有効な IP の場合は called_station_id
called_station_id target.ip
target_port target.port 値が直接コピーされ、整数に変換されます。
metadata.product_name metadata.product_name 「MICROSOFT_IAS」に設定
metadata.vendor_name metadata.vendor_name 「MICROSOFT_IAS」に設定

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。