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 会計ログを有効にする
- NPS を実行している Windows Server で、[サーバー マネージャー] を開きます。
- [ツール] > [ネットワーク ポリシー サーバー] に移動します。
- NPS コンソール ツリーで、[Accounting] をクリックします。
- 詳細ウィンドウの [アカウンティング] で、[アカウンティングを構成] をクリックします。
- [Accounting Configuration] ウィザードで、[Log to a text file on the local computer] を選択し、[Next] をクリックします。
- [ログファイルプロパティの構成] ページで、次のように構成します。
- [次の情報をログに記録する] セクションで、ログに記録する情報のチェックボックスをオンにします。
- アカウンティング リクエスト
- 認証リクエスト
- 定期的な会計ステータス
- 定期的な認証のステータス
- [Logging failure action] セクションで、ログファイルが利用できない場合に NPS の処理を停止するには、[If logging fails, discard connection requests] を選択します。ロギングに失敗した場合でも NPS で処理を続行する場合は、チェックボックスをオフのままにします。
- [次の情報をログに記録する] セクションで、ログに記録する情報のチェックボックスをオンにします。
- [次へ] をクリックします。
- 概要を確認して [Finish] をクリックします。
ログファイルのプロパティを構成する
- NPS コンソール ツリーで、[Accounting] をクリックします。
- 詳細ペインの [ログファイルのプロパティ] で、[ログファイルのプロパティを変更] をクリックします。
- [ログファイル] タブをクリックします。
- [Directory] フィールドで、ログファイルの場所を確認または変更します。
- デフォルトのロケーション:
%systemroot%\System32\LogFiles - 整理しやすくするため、専用のディレクトリ(
C:\NPSLogsなど)を指定します。
- デフォルトのロケーション:
[フォーマット] プルダウンで [IAS(従来版)] を選択します。
[新しいログファイルを作成する] で、ログ ローテーションの間隔を選択します。
- 毎日(ほとんどの環境で推奨)
- 毎週
- 毎月
- なし(ファイルサイズ無制限)
- ログファイルがこのサイズに達したとき(サイズを MB 単位で指定)
ディスク容量が少なくなったときに NPS で古いログファイルを削除する場合は、[ディスクがいっぱいになったら古いログファイルを削除する] を選択します。
[OK] をクリックして構成を保存します。
構成されたディレクトリにログファイルが作成されていることを確認します。
Azure ストレージ アカウントを構成する
ストレージ アカウントを作成する
- Azure ポータルで、[ストレージ アカウント] を検索します。
- [+ 作成] をクリックします。
次の構成情報を提供してください。
設定 値 サブスクリプション Azure サブスクリプションを選択する リソース グループ 既存のものを選択するか、新しいものを作成 ストレージ アカウント名 一意の名前を入力します(例: npsiaslogs)。リージョン リージョンを選択します(例: East US)。パフォーマンス 標準(推奨) 冗長性 GRS(地理冗長ストレージ)または LRS(ローカル冗長ストレージ) [Review + create] をクリックします。
アカウントの概要を確認し、[作成] をクリックします。
デプロイが完了するまで待ちます。
ストレージ アカウントの認証情報を取得する
- 作成したストレージ アカウントに移動します。
- 左側のナビゲーションで、[セキュリティ + ネットワーキング] の [アクセスキー] を選択します。
- [キーを表示] をクリックします。
- 後で使用するために、次の情報をコピーして保存します。
- ストレージ アカウント名: ストレージ アカウント名(例:
npsiaslogs) - Key 1 または Key 2: 共有アクセスキー(base-64 でエンコードされた 512 ビットのランダムな文字列)
- ストレージ アカウント名: ストレージ アカウント名(例:
Blob サービス エンドポイントを取得する
- 同じストレージ アカウントで、左側のナビゲーションから [エンドポイント] を選択します。
- Blob サービスのエンドポイント URL をコピーして保存します。
- 例:
https://npsiaslogs.blob.core.windows.net/
- 例:
Log Analytics ワークスペースを作成する
Azure Blob Storage にエクスポートする前に、Azure Monitor エージェントからカスタム テキストログを受信するには、Log Analytics ワークスペースが必要です。
- Azure ポータルで、ログ分析ワークスペースを検索します。
- [+ 作成] をクリックします。
次の構成情報を提供してください。
設定 値 サブスクリプション Azure サブスクリプションを選択する リソース グループ ストレージ アカウントと同じリソース グループを選択します。 名前 一意の名前を入力します(例: nps-ias-workspace)。リージョン ストレージ アカウントと同じリージョンを選択します。 [レビュー + 作成] をクリックします。
設定を確認し、[作成] をクリックします。
デプロイが完了するまで待ちます。
カスタム ログテーブルを作成する
Log Analytics ワークスペースにカスタム テーブルを作成して、NPS / IAS ログデータを保存する。
- Azure ポータルで、作成した ログ分析ワークスペースに移動します。
- 左側のナビゲーションで、[Settings] の [Tables] を選択します。
- [+ 作成] > [新しいカスタムログ(DCR ベース)] をクリックします。
- [テーブル名] フィールドに「
NpsIasLogs」と入力します。完全なテーブル名はNpsIasLogs_CLになります。 [作成] をクリックします。
NPS サーバーを Azure Arc にオンボーディングする
NPS はオンプレミスの Windows Server で実行されるため、Azure Monitor エージェントをインストールする前に、サーバーを Azure Arc にオンボーディングする必要があります。
NPS サーバーを Azure Arc に登録する
- Azure ポータルで、Azure Arc を検索します。
- 左側のナビゲーションで、[Infrastructure] の [Machines] を選択します。
- [+ 追加 / 作成] > [マシンを追加] をクリックします。
- [Azure Arc を使用してサーバーを追加する] セクションで、[単一のサーバーを追加する] の [スクリプトを生成する] を選択します。
- 次の構成情報を指定します。
- Subscription: Azure サブスクリプションを選択します。
- Resource group: 以前に使用したリソース グループを選択します。
- リージョン: ログ分析ワークスペースと同じリージョンを選択します。
- オペレーティング システム: [Windows] を選択します。
- 接続方法: [パブリック エンドポイント] を選択します(ネットワークで必要な場合は [プロキシ サーバー] を選択します)。
- [Download and run script] をクリックします。
- 生成された PowerShell スクリプトを NPS サーバーにコピーします。
NPS サーバーで、管理者として PowerShell を開き、次のスクリプトを実行します。
& '.\OnboardingScript.ps1'画面上の手順に沿って Azure で認証を行い、オンボーディングを完了します。
スクリプトが完了したら、[Azure portal] > [Azure Arc] > [Machines] に戻り、NPS サーバーが [Connected] ステータスで表示されていることを確認します。
Azure Monitor エージェントをインストールする
Arc 対応サーバーに Azure Monitor エージェントをインストールする
- Azure ポータルで、[Azure Arc] > [Machines] に移動します。
- マシンのリストから NPS サーバーを選択します。
- 左側のナビゲーションで、[設定] の [拡張機能] を選択します。
- [+ Add] をクリックします。
- 拡張機能のリストから [Azure Monitor Agent] を選択します。
- [次へ] をクリックします。
- [Review + create] をクリックします。
- [作成] をクリックします。
拡張機能のインストールが完了するまで待ちます。ステータスが [プロビジョニングが成功しました] に変わります。
NPS ログファイルのデータの収集ルールを作成する
データ収集ルール(DCR)は、NPS IAS ログファイルを収集して Log Analytics ワークスペースに送信するよう Azure Monitor エージェントに指示します。
- Azure ポータルで、[モニタリング] を検索します。
- 左側のナビゲーションで、[設定] の [データの収集ルール] を選択します。
- [+ 作成] をクリックします。
- [基本] タブで、次の構成の詳細を入力します。
- ルール名: 「
dcr-nps-ias-logs」と入力します。 - Subscription: Azure サブスクリプションを選択します。
- Resource Group: 以前に使用したリソース グループを選択します。
- リージョン: ログ分析ワークスペースと同じリージョンを選択します。
- プラットフォーム タイプ: [Windows] を選択します。
- ルール名: 「
- [次へ: リソース] をクリックします。
- [リソース] タブで、次の操作を行います。
- [+ リソースを追加] をクリックします。
- リソース グループを開き、Azure Arc 対応 NPS サーバーを選択します。
- [適用] をクリックします。
- [次へ: 収集と配信] をクリックします。
[集荷と配送] タブで、次の操作を行います。
- [+ データソースを追加] をクリックします。
- [データソース タイプ] プルダウンで、[カスタム テキストログ] を選択します。
[ファイル パターン] フィールドに、NPS ログファイルのパスを入力します。
C:\Windows\System32\LogFiles\IN*.log[テーブル名] プルダウンで
NpsIasLogs_CLを選択します。[レコード区切り文字] フィールドで、[行末] を選択します。
[変換] フィールドに「
source」と入力して、未加工のログデータを変更せずに送信します。[データソースを追加] をクリックします。
[Destination] セクションで、作成した Log Analytics ワークスペースが一覧表示されていることを確認します。
[Next: Review + create] をクリックします。
設定を確認し、[作成] をクリックします。
Azure Blob Storage へのデータ エクスポートを構成する
データ エクスポート ルールを作成して、NPS / IAS ログデータを Log Analytics ワークスペースから Azure Blob Storage に継続的にエクスポートする。
データ エクスポート ルールを作成する
- Azure ポータルで、作成した Log Analytics ワークスペースに移動します。
- 左側のナビゲーションで、[設定] の [データのエクスポート] を選択します。
- [+ 新しいエクスポート ルール] をクリックします。
- [基本] タブで、次の構成の詳細を入力します。
- ルール名: 「
export-nps-ias-logs」と入力します。 - 宛先: [ストレージ アカウント] を選択します。
- ルール名: 「
- [次へ: ソース] をクリックします。
- [ソース] タブで、NpsIasLogs_CL テーブルを選択します。
- [次へ: 宛先] をクリックします。
- [宛先] タブで、次の操作を行います。
- Subscription: ストレージ アカウントを含むサブスクリプションを選択します。
- ストレージ アカウント: 前に作成したストレージ アカウント(
npsiaslogsなど)を選択します。
- [Review + create] をクリックします。
設定を確認し、[作成] をクリックします。
Microsoft IAS のログを取り込むように Google SecOps でフィードを構成する
- [設定] > [データ管理] > [フィード] に移動します。SIEM のみのプラットフォームを使用している場合は、[設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一のフィードを構成する] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Microsoft IAS NPS Logs)。 - [ソースタイプ] として [Microsoft Azure Blob Storage V2] を選択します。
- [Log type] として [Microsoft IAS] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- 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: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
Azure Storage ファイアウォールを構成する(有効になっている場合)
Azure Storage アカウントでファイアウォールを使用している場合は、Google SecOps の IP 範囲を追加する必要があります。
- Azure ポータルで、[ストレージ アカウント] に移動します。
- [セキュリティ + ネットワーキング] で [ネットワーキング] を選択します。
- [ファイアウォールと仮想ネットワーク] で、[選択した仮想ネットワークと IP アドレスから有効にする] を選択します。
- [ファイアウォール] セクションの [アドレス範囲] で、[+ IP 範囲を追加] をクリックします。
各 Google SecOps IP 範囲を CIDR 表記で追加します。
現在の IP 範囲を取得するには:
- IP 許可リストのドキュメントをご覧ください。
- または、Feed Management API を使用してプログラムで取得します。
[信頼できるサービスのリストにある Azure サービスによるこのストレージ アカウントへのアクセスを許可する] チェックボックスがオンになっていることを確認します(Log Analytics データ エクスポートが機能するために必要です)。
[保存] をクリックします。
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 のプロフェッショナルから回答を得ることができます。