アプリケーションシナリオ
企業は、ビジネスコンプライアンスとセキュリティ要件を満たすためにネットワークログを保存および分析します。 イントラネットDNSログは、内部ドメイン名のDNSクエリへの明確な洞察を提供します。これにより、企業は内部ネットワークでのユーザーの行動を効率的に監査し、潜在的なセキュリティリスクを早期に特定できます。
イントラネットDNSログとは
イントラネットDNSログには、Alibaba Cloudアカウントのすべての仮想プライベートクラウド (VPC) にある端末から送信されたDNSクエリと、DNSサーバーから返された応答が記録されます。 収集された情報には、DNSリクエストの送信元リージョン、VPC ID、送信元IPアドレス、送信先IPアドレス (DNSサーバーのアドレス) 、照会されたドメイン名、レコードタイプ、および応答が含まれます。 端末によって照会されるドメイン名は、Alibaba Cloud DNS PrivateZoneで設定された内部権限ドメイン名およびパブリックドメイン名です。 Log Serviceでは、イントラネットDNSログをLog Audit Serviceに統合できます。 イントラネットDNSログ機能を有効にすると、複数のアカウントとリージョンのイントラネットDNSログを集中的にすばやく簡単に収集、管理、クエリ、分析できます。
イントラネットDNSログは、DNSサーバーによって返された次のタイプのドメイン名と応答のVPC DNSクエリを記録します。
1. Alibaba Cloud DNS PrivateZoneで設定された内部権限ドメイン名
Alibaba Cloud DNS PrivateZoneは、VPCベースのプライベートドメイン名解決および管理サービスです。 Alibaba Cloud DNS PrivateZoneを使用して、プライベートドメイン名を1つ以上のVPCのIPアドレスにマッピングできます。 Alibaba Cloud DNS PrivateZoneでは、プライベートドメイン名を使用して、Elastic Compute Service (ECS) インスタンス、Server Load Balancer (SLB) インスタンス、Object Storage Service (OSS) バケットなどのAlibaba Cloudリソースにアクセスできます。 ただし、VPC以外のプライベートドメイン名は使用できません。 Express connect回線またはVPNゲートウェイを介してVPCをオンプレミスデータセンターに接続することもできます。 これにより、プライベートドメイン名を使用して、オンプレミスのデータセンターとVPCの間でリソースを共有できます。
2. ApsaraシステムのDNSに設定されたクラウドサービスインスタンスのドメイン名
Alibaba Cloudサービスインスタンスのすべてのドメイン名は、ApsaraシステムのDNSを使用して解決されます。
3。 クエリが内部DNSサーバーに転送される外部ドメイン名
ほとんどの場合、内部DNSサーバーは、データセンターの内部ネットワーク上のDNSサーバーです。 Alibaba Cloud DNS PrivateZoneリゾルバーが、内部DNSサーバーに転送されるように設定されたドメイン名のVPC DNSクエリを受信すると、リゾルバーはDNSクエリを内部DNSサーバーに転送します。 これにより、Alibaba Cloud VPC内のECSインスタンスは、データセンター内のアプリケーションのドメイン名にアクセスできます。
4。 権威DNSサーバー上のパブリックドメイン名
パブリック権限DNSサーバーは、s example.comなどの特定のパブリックドメイン名のドメイン名レジストリまたはドメイン名レジストラで構成されているDNSサーバーです。 パブリック権限DNSサーバーは、ルートドメイン名、トップレベルドメイン名、およびその他のレベルのドメイン名に関する権限情報を管理および解決します。 パブリック権限DNSサーバーは、DNSサーバーで設定されたドメイン名のみを解決し、DNSサーバーで設定されていないドメイン名のクエリを拒否します。
次の表に、DNSクエリと応答のイントラネットDNSログのフィールドを示します。 DNSリクエストとレスポンスのログは別々に保存されます。
1. DNSクエリログのフィールド
ログフィールド | 説明 | 例: |
ユーザー_id | Alibaba CloudアカウントのID | xxxxxxxxxxxxxxxx |
region_id | リージョンID | cn-shanghai |
vpc_id | VPCにデプロイされたインスタンスのID | vpc-xxxxxxxxxxxxxxxxxxx |
src_addr | 送信元IPアドレス | 192.168.0.1 |
dst_addr | 宛先IPアドレス | 100.100.2.136 |
src_port | ソースポート | 12345 |
dst_port | 宛先ポート | 53 |
輸送 | 伝送プロトコル | UDP |
dns_msg_id | DNSメッセージのID | 23456 |
dns_msg_フラグ | メッセージ内のフラグ | QR |
query_name | 照会されたドメイン名 | www.example.com. |
query_type | クエリタイプ | A |
rcode | 応答コード | |
答え_rrset | 応答のリソースレコード | |
authority_rrset | 権限セクションのリソースレコード | |
追加の_rrset | 追加のリソースレコード |
2. DNS応答ログのフィールド
ログフィールド | 説明 | 例: |
ユーザー_id | Alibaba CloudアカウントのID | xxxxxxxxxxxxxxxx |
region_id | リージョンID | cn-shanghai |
vpc_id | VPCにデプロイされたインスタンスのID | vpc-xxxxxxxxxxxxxxxxxxx |
src_addr | 送信元IPアドレス | 100.100.2.136 |
dst_addr | 宛先IPアドレス | 192.168.0.1 |
src_port | ソースポート | 53 |
dst_port | 宛先ポート | 12345 |
輸送 | 伝送プロトコル | UDP |
dns_msg_id | DNSメッセージのID | 23456 |
dns_msg_フラグ | メッセージ内のフラグ | QR RD AA |
query_name | 照会されたドメイン名 | www.example.com. |
query_type | クエリタイプ | A |
rcode | 応答コード | 0 |
答え_rrset | 応答のリソースレコード | Jsonアレイ: ["www.example.com. 600 A 192.168.1.1 "、" www.example.com 600 A 192.168.1.2 "、] |
authority_rrset | 権限セクションのリソースレコード | Jsonアレイ: ["example.com。 600 SO A ns1.example.com。 hostmaster.example.com. 2023010101 3600 1200 3600 360 "] |
追加の_rrset | 追加のリソースレコード | Jsonアレイ: ["ns1.example.com. 600 A 100.100.2.136 "] |
ログ監査サービス
ログ監査サービスとは
Log Audit Serviceは、Log Serviceのログアプリケーションです。 Log Serviceの機能に加えて、Log Audit Serviceは強力なマルチアカウント管理とクロスリージョンログ収集を提供します。 リソースディレクトリを使用して、複数のアカウントからのクラウドサービスログの管理と保存を整理および統合できます。
Log Audit ServiceでイントラネットDNSログの収集を有効にする
Log ServiceコンソールでイントラネットDNSログの収集を有効にするには、[ログアプリケーション] > [監査とセキュリティ] > [ログ監査サービス] を選択します。 ログのストレージ期間を指定し、ホットおよびコールド階層ストレージを設定できます。 詳細については、「ログ収集の有効化」をご参照ください。
Log Audit Serviceは、中国 (上海) と中国 (北京) でのみイントラネットDNSログの収集をサポートしています。 他のリージョンでイントラネットDNSログを収集する場合は、Alibaba Cloud DNSテクニカルサポートにチケットを起票してください。
マルチアカウント設定
Log Audit Serviceは、メンバーアカウントのイントラネットDNSログを収集し、Alibaba Cloudアカウントの中央プロジェクトに保存するために使用できる強力なクロスアカウントログ収集機能を提供します。 これは、集中ログ管理を容易にする。 Log Audit Serviceは、マルチアカウントログの収集と管理に、リソースディレクトリとカスタム認証の2つのモードをサポートしています。 詳細については、「マルチアカウントコレクションの設定」をご参照ください。
Terraformに基づくログ収集設定
Terraformは、Alibaba Cloudサービスまたはサードパーティのクラウドサービスのワークロードに構成ファイルをデプロイし、構成ファイルのバージョンを管理できる使いやすいコマンドラインインターフェイス (CLI) を提供します。 Terraformを使用してlog Audit Serviceでログ収集を構成する方法の詳細については、「Terraformを使用してLog Audit Serviceを構成する」をご参照ください。
次のサンプルコードは、Terraformを使用してイントラネットDNSログを収集する方法の例を示しています。
resource "alicloud_log_audit" "dns_example" {
display_name = "tf-audit-test-dns"
aliuid = "1480************" // The Alibaba Cloud account to which the central project for log storage belongs.
variable_map = {
"dns_intranet_enabled" = "true", // Enable the collection of intranet DNS logs.
"dns_sync_enabled" = "true", // Enable synchronization of logs from the regional project to the central project.
"dns_intranet_ttl" = "3", // Specify that logs are stored in the regional project for three days.
"dns_sync_ttl" = "185" // Specify that logs are stored in the central project for 185 days.
"dns_intranet_collection_policy" = "accept tag.env == \\\"test\\\"\\ndrop \\\"*\\\"" // Specify that only intranet DNS logs related to VPCs that have a tag value of prod for the env tag key.
}
multi_account = ["1039************"] // Set multi-account configurations.
}
ログ収集ポリシー
ログ収集ポリシーは、詳細なログ収集管理を提供し、不要なログをログ収集から除外できます。 詳細については、「ログ収集ポリシーの設定」をご参照ください。 イントラネットDNSログ収集の最小粒度はVPCです。
log Audit Serviceコンソールでのログ収集ポリシーの設定
Log Audit Serviceコンソールで収集ポリシーを管理および設定できます。
ログクエリと分析のベストプラクティス
このセクションでは、イントラネットDNSログのクエリと分析の一般的なシナリオについて説明します。 カスタムのクエリおよび分析ステートメントを使用して、特定のビジネス要件を満たすことができます。 SQLクエリ結果をダッシュボードに追加したり、クエリステートメントを保存検索として保存したり、結果をアラートとして保存したりして、その後のクエリおよび分析操作を容易にすることもできます。
1. DNS解決結果
特定の期間内にECSインスタンスからドメイン名のクエリに対する完全な応答を照会します。
* and query_name: "metrichub-cn-beijing.aliyun.com." and dst_addr: "10.0.2.48" and answer_rrset
not null |select user_id, vpc_id, query_type, answer_rrset
特定の期間内にVPC上のドメイン名のDNSクエリの配布を照会します。
* and vpc_id: vpc-2ze9dducyc3t6p8aeksb3 |select count(*) as total_req, query_name group by query_name
2。 DNS解決RT
特定の期間内にVPCからドメイン名の特定のタイプの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