收集 Microsoft IAS / 網路政策伺服器 (NPS) 記錄

支援的國家/地區:

本文說明如何使用 Microsoft Azure Blob Storage V2 設定 Google SecOps 資訊提供,藉此收集 Microsoft Internet Authentication Service (IAS) / Network Policy Server (NPS) 記錄。

Microsoft 網路政策伺服器 (NPS) 是 Microsoft 實作的 RADIUS (遠端使用者撥入驗證) 伺服器和 Proxy。NPS 可集中管理 VPN 連線、無線存取點、802.1X 驗證交換器和撥號遠端存取的網路存取驗證、授權和會計。在 Windows Server 2003 和更早版本中,NPS 稱為網際網路驗證服務 (IAS)。由於 NPS 是以 Windows Server 角色執行,沒有原生雲端匯出功能,因此本指南會使用 Azure 監視器代理程式,從本機檔案系統收集 NPS 帳戶記錄檔,並透過記錄檔分析工作區將這些檔案傳送至 Azure Blob 儲存體。

事前準備

  • 請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體

  • 具備下列權限的 Microsoft Azure 入口網站特殊存取權:

    • 建立儲存空間帳戶
    • 建立及管理 Log Analytics 工作區
    • 建立資料收集規則
    • 建立資料匯出規則
    • 管理存取金鑰
  • 已安裝 NPS 角色的 Windows Server 2016 以上版本

  • NPS 伺服器的管理員存取權

  • 從 NPS 伺服器到 Azure 的網路連線 (通訊埠 443 的 HTTPS 連出連線)

設定 NPS 會計和記錄

啟用 NPS,以 IAS 格式將驗證和帳戶要求記錄到本機文字檔。

啟用 NPS 會計記錄

  1. 在執行 NPS 的 Windows Server 上,開啟「伺服器管理員」
  2. 依序前往「工具」>「網路原則伺服器」
  3. 在 NPS 控制台樹狀結構中,按一下「會計」
  4. 在詳細資料窗格的「會計」下方,按一下「設定會計」。
  5. 在「會計設定」精靈中,選取「記錄到本機電腦上的文字檔」,然後按一下「下一步」
  6. 在「Configure Log File Properties」(設定記錄檔屬性) 頁面中,設定下列項目:
    • 在「記錄下列資訊」部分,選取要記錄的資訊核取方塊:
      • 會計要求
      • 驗證要求
      • 週期性會計狀態
      • 定期驗證狀態
    • 在「記錄失敗動作」部分,選取「如果記錄失敗,請捨棄連線要求」,讓 NPS 在記錄檔無法使用時停止處理。如果即使記錄失敗,仍要繼續處理 NPS,請取消勾選這個核取方塊。
  7. 點選「下一步」
  8. 檢閱摘要,然後按一下 [Finish] (完成)

設定記錄檔屬性

  1. 在 NPS 控制台樹狀結構中,按一下「會計」
  2. 在詳細資料窗格的「記錄檔屬性」下方,按一下「變更記錄檔屬性」
  3. 按一下「記錄檔」分頁標籤。
  4. 在「目錄」欄位中,確認或變更記錄檔位置:
    • 預設位置:%systemroot%\System32\LogFiles
    • 為方便管理,請指定專用目錄 (例如 C:\NPSLogs)
  5. 在「格式」下拉式選單中,選取「IAS (舊版)」

  6. 在「建立新的記錄檔」中,選取記錄檔輪替間隔:

    • 每日 (建議用於大多數環境)
    • 每週
    • 每月
    • 永不 (檔案大小無限制)
    • 記錄檔達到這個大小時 (以 MB 為單位指定大小)
  7. 如要在磁碟空間不足時刪除舊記錄檔,請選取「磁碟空間不足時刪除舊記錄檔」

  8. 按一下「確定」儲存設定。

  9. 確認記錄檔是否在設定的目錄中建立。

設定 Azure 儲存體帳戶

建立儲存空間帳戶

  1. Azure 入口網站中,搜尋「儲存體帳戶」
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取現有資料庫或建立新資料庫
    儲存體帳戶名稱 輸入不重複的名稱 (例如 npsiaslogs)
    區域 選取區域 (例如 East US)
    效能 標準 (建議)
    備援功能 GRS (異地備援儲存空間) 或 LRS (本機備援儲存空間)
  4. 按一下「Review + create」

  5. 查看帳戶總覽,然後按一下「建立」

  6. 等待部署作業完成。

取得儲存空間帳戶憑證

  1. 前往您剛建立的「儲存空間帳戶」
  2. 在左側導覽中,選取「Security + networking」(安全性 + 網路) 下方的「Access keys」(存取金鑰)
  3. 按一下「顯示金鑰」
  4. 複製並儲存下列項目,以供日後使用:
    • 儲存體帳戶名稱:儲存體帳戶名稱 (例如 npsiaslogs)
    • 金鑰 1金鑰 2:共用存取金鑰 (採用 Base64 編碼的 512 位元隨機字串)

取得 Blob 服務端點

  1. 在同一個儲存空間帳戶中,選取左側導覽列的「Endpoints」(端點)
  2. 複製並儲存 Blob 服務端點網址。
    • 範例:https://npsiaslogs.blob.core.windows.net/

建立 Log Analytics 工作區

如要將 Azure 監視代理程式的自訂文字記錄匯出至 Azure Blob 儲存體,必須先將記錄傳送至記錄檔分析工作區。

  1. Azure 入口網站中,搜尋 記錄檔分析工作區
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取與儲存空間帳戶相同的資源群組
    名稱 輸入不重複的名稱 (例如 nps-ias-workspace)
    區域 選取與儲存空間帳戶相同的區域
  4. 按一下「檢查並建立」

  5. 檢查設定,然後按一下「建立」

  6. 等待部署作業完成。

建立自訂記錄資料表

在 Log Analytics 工作區中建立自訂資料表,儲存 NPS/IAS 記錄資料。

  1. Azure 入口網站中,前往您剛建立的 Log Analytics 工作區
  2. 在左側導覽面板中,選取「設定」下方的「表格」
  3. 依序點選「+ 建立」>「新的自訂記錄 (以 DCR 為準)」
  4. 在「Table name」(資料表名稱) 欄位中輸入 NpsIasLogs。完整資料表名稱為 NpsIasLogs_CL
  5. 點選「建立」

將 NPS 伺服器加入 Azure Arc

由於 NPS 是在內部部署 Windows Server 上執行,因此您必須先將伺服器加入 Azure Arc,才能安裝 Azure 監視器代理程式。

向 Azure Arc 註冊 NPS 伺服器

  1. Azure 入口網站中,搜尋 Azure Arc
  2. 在左側導覽面板中,選取「基礎架構」下方的「機器」
  3. 依序點選「+ 新增/建立」>「新增機器」。
  4. 在「透過 Azure Arc 新增伺服器」部分,選取「新增單一伺服器」下方的「產生指令碼」
  5. 請提供下列設定詳細資料:
    • 訂閱項目:選取 Azure 訂閱項目。
    • 資源群組:選取先前使用的資源群組。
    • 區域:選取與 Log Analytics 工作區相同的區域。
    • 作業系統:選取「Windows」
    • 連線方法:選取「公開端點」 (或「Proxy 伺服器」,視網路需求而定)。
  6. 按一下「下載並執行指令碼」
  7. 將產生的 PowerShell 指令碼複製到 NPS 伺服器。
  8. 在 NPS 伺服器上,以系統管理員身分開啟 PowerShell,然後執行指令碼:

    & '.\OnboardingScript.ps1'
    
  9. 按照畫面上的指示,透過 Azure 進行驗證並完成新手上路程序。

  10. 指令碼完成後,請返回 Azure 入口網站 > Azure Arc > 機器,並確認 NPS 伺服器顯示「已連線」狀態。

安裝 Azure Monitor 代理程式

在已啟用 Azure Arc 的伺服器上安裝 Azure 監視器代理程式

  1. Azure 入口網站中,前往「Azure Arc」> 機器
  2. 從機器清單中選取 NPS 伺服器。
  3. 在左側導覽中,選取「設定」下方的「擴充功能」
  4. 按一下「+ 新增」
  5. 從擴充功能清單中選取「Azure Monitor Agent」
  6. 點選「下一步」
  7. 按一下「Review + create」
  8. 點選「建立」
  9. 等待擴充功能安裝完成。狀態會變更為「佈建成功」

為 NPS 記錄檔建立資料收集規則

資料收集規則 (DCR) 會指示 Azure 監視器代理程式收集 NPS IAS 記錄檔,並傳送至 Log Analytics 工作區。

  1. Azure 入口網站中,搜尋「Monitor」
  2. 在左側導覽中,選取「設定」下方的「資料收集規則」
  3. 點選「+ 建立」
  4. 在「基本」分頁中,提供下列設定詳細資料:
    • 規則名稱:輸入 dcr-nps-ias-logs
    • 訂閱項目:選取 Azure 訂閱項目。
    • 資源群組:選取先前使用的資源群組。
    • 區域:選取與 Log Analytics 工作區相同的區域。
    • 平台類型:選取「Windows」
  5. 按一下「下一步:資源」
  6. 在「資源」分頁中:
    1. 按一下「+ 新增資源」
    2. 展開資源群組,然後選取已啟用 Azure Arc 的 NPS 伺服器。
    3. 按一下「套用」
  7. 按一下「下一步:收取和交付」
  8. 在「收取和運送」分頁中:

    1. 按一下「+ 新增資料來源」
    2. 在「資料來源類型」下拉式選單中,選取「自訂文字記錄」
    3. 在「File pattern」欄位中,輸入 NPS 記錄檔的路徑:

      C:\Windows\System32\LogFiles\IN*.log
      
    4. 在「Table name」(資料表名稱) 下拉式選單中,選取 NpsIasLogs_CL

    5. 在「記錄分隔符」欄位中,選取「行尾」

    6. 在「轉換」欄位中輸入 source,即可傳送未經變更的原始記錄資料。

    7. 按一下「新增資料來源」

  9. 在「目的地」部分,確認您建立的 Log Analytics 工作區已列出。

  10. 按一下「下一步:檢閱 + 建立」

  11. 檢查設定,然後按一下「建立」

設定將資料匯出至 Azure Blob 儲存體

建立資料匯出規則,持續將 NPS/IAS 記錄資料從記錄檔分析工作區匯出至 Azure Blob 儲存體。

建立資料匯出規則

  1. Azure 入口網站中,前往您建立的 記錄檔分析 工作區
  2. 在左側導覽選單中,選取「設定」下方的「資料匯出」
  3. 按一下「+ 新增匯出規則」
  4. 在「基本」分頁中,提供下列設定詳細資料:
    • 規則名稱:輸入 export-nps-ias-logs
    • 目的地:選取「儲存空間帳戶」
  5. 按一下「下一步:來源」
  6. 在「來源」分頁中,選取「NpsIasLogs_CL」資料表。
  7. 按一下「下一步:目的地」
  8. 在「目的地」分頁中:
    • 訂閱項目:選取包含儲存空間帳戶的訂閱項目。
    • 「Storage Account」(儲存空間帳戶):選取您先前建立的儲存空間帳戶 (例如 npsiaslogs)。
  9. 按一下「Review + create」
  10. 檢查設定,然後按一下「建立」

在 Google SecOps 中設定動態饋給,擷取 Microsoft IAS 記錄

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Microsoft IAS NPS Logs)。
  5. 選取「Microsoft Azure Blob Storage V2」做為「來源類型」
  6. 選取「Microsoft IAS」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    • Azure URI:輸入 Blob 服務端點網址和容器路徑:
    https://npsiaslogs.blob.core.windows.net/am-NpsIasLogs_CL/
    
    • 取代下列項目:
      • npsiaslogs:您的 Azure 儲存體帳戶名稱。
      • am-NpsIasLogs_CL:資料匯出規則自動建立的 Blob 容器名稱。
    • 來源刪除選項:根據偏好設定選取刪除選項:
    • 永不:轉移後一律不刪除任何檔案。
    • 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
    • 刪除已轉移的檔案和空白目錄:成功轉移檔案後,刪除檔案和空白目錄。
    • 檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
    • 共用金鑰:輸入您先前從儲存空間帳戶擷取的共用金鑰值 (存取金鑰)
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  9. 點選「下一步」

  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

設定 Azure 儲存空間防火牆 (如已啟用)

如果 Azure 儲存體帳戶使用防火牆,您必須新增 Google SecOps IP 範圍。

  1. Azure 入口網站中,前往「儲存體帳戶」
  2. 選取「Security + networking」(安全性 + 網路) 下方的「Networking」(網路)
  3. 在「防火牆和虛擬網路」下方,選取「從所選虛擬網路和 IP 位址啟用」
  4. 在「防火牆」部分的「位址範圍」下方,按一下「+ 新增 IP 範圍」
  5. 以 CIDR 標記法新增每個 Google SecOps IP 範圍。

    如要取得目前的 IP 範圍,請按照下列步驟操作:

  6. 確認已選取「Allow Azure services on the trusted services list to access this storage account」核取方塊 (這是記錄檔分析資料匯出功能運作的必要條件)。

  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 如果 principal_present 和 target_present 都存在,請設為「GENERIC_EVENT」,然後設為「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 如果 principal_ip 是有效的 IP,則為該值;如果 calling_station_id 是有效的 IP,則為該值
calling_station_id principal.asset.ip
principal_hostname principal.hostname 直接複製值
principal_ip principal.ip 如果 principal_ip 是有效的 IP,則為該值;如果 calling_station_id 是有效的 IP,則為該值
calling_station_id principal.ip
device-mac principal.mac 如果裝置 MAC 位址不為空 (並將 - 替換為 :),則為該位址,否則為裝置公開 MAC 位址
device-public-mac principal.mac
nat_ip principal.nat_ip 直接複製值
device-platform 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 專業人員尋求答案。