內網DNS日誌應用情境
出於合規和安全性的考慮,公司通常要求對部落格進行儲存和分析。通過內網DNS日誌,可以清晰瞭解企業內網網域名稱的使用方式,協助企業對內網使用者行為進行審計,及時發現潛在的安全問題。
什麼是內網DNS日誌
內網DNS日誌(Intranet DNS Log) 記錄了指定阿里雲uid下所有VPC網路內終端產生的DNS網域名稱解析請求和應答(包括請求的地區、請求的VPC ID、源IP地址、目的IP地址(DNS服務地址)、查詢的網域名稱、記錄類型、應答的結果等),終端請求的這些網域名稱既包含了配置在PrivateZone上的內網權威網域名稱,也包含了外部公網網域名稱。為了滿足使用者可以快速、簡單實現多帳號、多地區情境下內網DNS日誌的採集、管理、中心化查詢分析等需求,DNS與SLS聯合開發,在SLS日誌審計應用中發布一鍵開啟內網DNS日誌的功能。
一、內網DNS日誌記錄的是內網終端的網域名稱解析請求和應答記錄,請求的網域名稱主要來自於以下4類。
1、配置在雲解析PrivateZone上的內網權威網域名稱。
Alibaba Cloud DNS PrivateZone,是基於阿里雲Virtual Private Cloud(Virtual Private Cloud)環境的私人DNS服務。該服務允許您在一個或多個VPC中將自訂私人網域名稱映射到IP地址。通過PrivateZone,您可以方便地使用自訂私人網域名稱來管理VPC中的ECS主機名稱、SLB、OSS等阿里雲資源,而這些私人網域名稱在VPC之外將無法訪問。此外,您還可以通過專線或VPN等串連方式,將您的VPC與傳統資料中心相連,實現傳統資料中心與阿里雲VPC之間通過私人網域名稱進行資源互相訪問。
2、配置在飛天雲平台DNS(雲底座DNS)上的雲產品執行個體網域名稱。
雲底座DNS,是內建於阿里雲飛天平台的底層DNS,阿里雲的所有雲產品提供的執行個體網域名稱,都是通過雲底座DNS進行解析的。
3、轉寄到外部DNS上的外部網域名稱。
外部DNS,通常指的是您資料中心的內網DNS系統,通過PrivateZone解析器的功能,將來自VPC的網域名稱解析請求,轉寄到您資料中心的DNS系統進行解析,從而實現阿里雲VPC的ECS主機可以訪問您資料中心的應用網域名稱。
4、遞迴到外部公網權威DNS上的公網網域名稱。
公網權威DNS,是特定公網網域名稱(例如“example.com”)在網域名稱註冊局或者網域名稱註冊商處所設定的DNS伺服器。公網權威DNS可以為根網域名稱、頂級網域名稱和其他各級網域名稱提供網域名稱權威資料的管理和解析服務。公網權威DNS伺服器只對自己所擁有的網域名稱進行網域名稱解析,對於不是自己的網域名稱則拒絕訪問。
二、內網DNS日誌提供的欄位資訊如下所示,請求日誌和響應日誌分開儲存。
1、請求日誌樣本
日誌欄位 | 說明 | 樣本資料(僅做格式參考) |
user_id | 阿里雲帳號ID | xxxxxxxxxxxxxxxx |
region_id | 地區 | cn-shanghai |
vpc_id | VPC執行個體ID | vpc-xxxxxxxxxxxxxxxxxxxxx |
src_addr | 源IP地址 | 192.168.0.1 |
dst_addr | 目的IP地址 | 100.100.2.136 |
src_port | 源連接埠 | 12345 |
dst_port | 目的連接埠 | 53 |
transport | 傳輸協議 | UDP |
dns_msg_id | DNS資訊ID | 23456 |
dns_msg_flags | DNS資訊Flags | QR |
query_name | 查詢名稱 | www.example.com. |
query_type | 查詢類型 | A |
rcode | 傳回碼 | |
answer_rrset | 回答資源記錄集 | |
authority_rrset | 權威資源記錄集 | |
additional_rrset | 其他資源記錄集 |
2、應答日誌樣本
日誌欄位 | 說明 | 樣本資料(僅做格式參考) |
user_id | 阿里雲帳號ID | xxxxxxxxxxxxxxxx |
region_id | 地區 | cn-shanghai |
vpc_id | VPC執行個體ID | vpc-xxxxxxxxxxxxxxxxxxxxx |
src_addr | 源IP地址 | 100.100.2.136 |
dst_addr | 目的IP地址 | 192.168.0.1 |
src_port | 源連接埠 | 53 |
dst_port | 目的連接埠 | 12345 |
transport | 傳輸協議 | UDP |
dns_msg_id | DNS資訊ID | 23456 |
dns_msg_flags | DNS資訊Flags | QR RD AA |
query_name | 查詢名稱 | www.example.com. |
query_type | 查詢類型 | A |
rcode | 傳回碼 | 0 |
answer_rrset | 回答資源記錄集 | Json array: ["www.example.com. 600 A 192.168.1.1", "www.example.com 600 A 192.168.1.2", ] |
authority_rrset | 權威資源記錄集 | Json array: ["example.com. 600 SOA ns1.example.com. hostmaster.example.com. 2023010101 3600 1200 3600 360" ] |
additional_rrset | 其他資源記錄集 | Json array: ["ns1.example.com. 600 A 100.100.2.136"] |
內網DNS日誌審計
一、什麼是審計日誌
日誌審計服務是阿里雲Log ServiceSLS平台下的一款應用,它在繼承了Log ServiceSLS的全部功能以外,還有強大的多帳號管理及跨地區採集阿里雲各種雲產品日誌的功能,並且支援通過資來源目錄(Resource Directory)的方式有組織性地統一地管理和記錄多帳號下雲產品執行個體的日誌資訊。
二、內網DNS審計日誌開通
使用者在SLS下開啟內網DNS日誌的採集,僅需要進入SLS控制台,在日誌應用中找到日誌審計服務,即可一鍵開啟內網DNS日誌的採集, 使用者可以自訂日誌儲存的天數,是否開啟冷熱階層式存放區等功能。詳細操作步驟參見開啟日誌採集功能。
內網DNS日誌審計功能目前在華東2(上海)、華北2(北京)、華南3(廣州)、華南1(深圳)、華東1(杭州)和華北1(青島)region開放使用,如果您有其他地區region日誌審計需求,可通過工單反饋到Alibaba Cloud DNS產品處理。
多帳號配置
日誌審計強大的跨帳號採集能力可以滿足使用者多帳號情境下將成員帳號的內網DNS日誌統一採集到中心帳號的需求。日誌審計支援兩種多帳號管理配置:(1)資來源目錄管理員模式(2)自訂鑒權管理員模式。詳細配置步驟請參見採集多帳號雲產品日誌。下圖是多帳號配置下內網DNS日誌採集的樣本:
Terraform配置
Terraform是一種開源工具,其命令列介面(CLI)提供了一種簡單機制,用於將設定檔部署到阿里雲或其他任意支援的雲上,並對其進資料列版本設定。通過Terraform配置日誌審計下雲產品日誌採集的詳細步驟可以參考使用Terraform配置日誌審計服務。
下面是一個通過Terraform配置內網DNS日誌採集的配置樣本:
resource "alicloud_log_audit" "dns_example" {
display_name = "tf-audit-test-dns"
aliuid = "1480************" //中心帳號
variable_map = {
"dns_intranet_enabled" = "true", //開啟內網DNS日誌的採集
"dns_sync_enabled" = "true", //開啟地區化日誌同步到中心project
"dns_intranet_ttl" = "3", //日誌地區化儲存天數3天
"dns_sync_ttl" = "185" //日誌中心化儲存天數185天
"dns_intranet_collection_policy" = "accept tag.env == \\\"test\\\"\\ndrop \\\"*\\\"" //僅開啟標籤健為env下標籤值為prod的VPC執行個體下的內網DNS日誌
}
multi_account = ["1039************"] //多帳號配置
}
採集策略
內網DNS日誌可以通過採集策略進行精細化的採集管理。內網DNS日誌最小採集粒度為VPC執行個體,可以根據VPC執行個體的資訊進行DNS日誌的採集控制。
控制台配置採集策略
使用者可以在日誌審計控制台進行採集策略的管理配置,下圖是一個“僅開啟標籤健為env下標籤值為prod的所有VPC執行個體下的內網DNS日誌”的策略配置樣本。通過採集策略的配置,可以協助使用者實現精細化採集管理,減少不必要的日誌採集。
查詢分析最佳實務
下面列舉幾類常見的內網DNS日誌的查詢分析情境,使用者也可以根據實際需求自訂查詢分析語句。此外,使用者還可以將SQL語句查詢結果添加到儀錶盤、或者另存新檔快速查詢、另存新檔警示等進行後續分析處理。
一、DNS解析結果類
某時間段內,指定VPC下,不同查詢網域名稱的DNS請求量分布。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 |select count(*) as total_req, query_name group by query_name
二、DNS解析RT類
某時間段內,指定VPC,指定網域名稱,指定queryType的DNS解析RT統計分析。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 and query_name: "metrichub-cn-beijing.aliyun.com." and query_type: A | select stddev(__time__) as RT, dns_msg_id GROUP by dns_msg_id