Mengumpulkan data Microsoft Windows AD
Dokumen ini menyertakan informasi berikut:
- Arsitektur deployment dan langkah-langkah penginstalan, serta konfigurasi yang diperlukan yang menghasilkan log yang didukung oleh parser Chronicle untuk peristiwa Microsoft Windows Active Directory. Untuk mengetahui ringkasan penyerapan data Chronicle, lihat Penyerapan data ke Chronicle.
- Informasi tentang cara parser memetakan kolom dalam log asli ke kolom Chronicle Unified Data Model.
Informasi dalam dokumen ini berlaku untuk parser dengan label penyerapan WINDOWS_AD. Label penyerapan mengidentifikasi parser mana yang menormalisasi data log mentah ke format UDM terstruktur.
Sebelum memulai
Meninjau arsitektur deployment yang direkomendasikan
Diagram ini menggambarkan komponen dasar yang direkomendasikan dalam arsitektur deployment untuk mengumpulkan dan mengirim peristiwa Microsoft Windows ke Chronicle. Bandingkan informasi ini dengan lingkungan Anda untuk memastikan komponen tersebut diinstal. Setiap deployment pelanggan akan berbeda dari representasi ini dan mungkin lebih kompleks. Hal berikut diperlukan:
- Semua sistem dalam arsitektur deployment dikonfigurasi dengan zona waktu UTC.
- Skrip PowerShell dibuat dan dikonfigurasi pada setiap server Microsoft Windows AD untuk mengumpulkan data USER_CONTEXT dan ASSET_CONTEXT.
- NXLog diinstal di setiap server Microsoft Windows AD untuk mengirim data ke server pusat Microsoft Windows atau Linux.
Forwarder Chronicle diinstal di server pusat Microsoft Windows atau Linux untuk meneruskan data log ke Chronicle.
Meninjau perangkat dan versi yang didukung
Parser Chronicle mendukung log dari versi server Microsoft Windows berikut. Microsoft Windows Server dirilis dengan edisi berikut: Foundation, Essentials, Standard, dan Datacenter. Skema peristiwa untuk log yang dihasilkan oleh setiap edisi tidak berbeda.
- Microsoft Windows Server 2019
- Microsoft Windows Server 2016
- Microsoft Windows Server 2012
Parser Chronicle mendukung log yang dikumpulkan oleh Community atau Enterprise Edition NXLog.
Meninjau jenis log yang didukung
Parser Chronicle akan mengurai dan menormalisasi data yang diambil dari User Context dan Asset Context. Alat ini mendukung log yang dibuat dengan teks bahasa Inggris dan tidak didukung dengan log yang dibuat dalam bahasa selain bahasa Inggris.
Mengonfigurasi server Microsoft Windows AD
Langkah-langkah untuk mengonfigurasi server Microsoft Windows AD dalam arsitektur deployment:
- Konfigurasikan semua sistem dengan zona waktu UTC.
- Di setiap server Microsoft Windows Active Directory, buat dan konfigurasi skrip PowerShell untuk mengumpulkan data log ke dalam file output. NXLog membaca file {i>output<i} dan mengirim data ke server pusat Microsoft Windows atau Linux.
Membuat skrip Powershell. Lihat contoh berikut. Ubah nilai
$OUTPUT_FILENAME
ke lokasi tempat file output harus ditulis. File ini akan dibaca oleh NXLog. Data harus disimpan dalam format JSON. Setel encoding ke utf8. Gunakan parameter-Filter
, bukan parameter-LDAPFilter
saat memanggil cmdletGet-ADUser
danGet-ADComputer
.# Set the location where the log file will be written $OUTPUT_FILENAME="<Path_of_the_output_file>" If (Test-Path -Path $OUTPUT_FILENAME) { Remove-Item -path $OUTPUT_FILENAME -ErrorAction SilentlyContinue} # USER_CONTEXT: Gets all Active Directory users and their properties. Get-ADUser -Filter * -properties samAccountName | % { Get-ADUser $_.SamAccountName -properties * | ConvertTo-JSON -compress | Out-File -encoding utf8 $OUTPUT_FILENAME -Append } # ASSET_CONTEXT: Gets all Active Directory assets and their properties. Get-ADComputer -Filter * -properties samAccountName | % { Get-ADComputer $_.SamAccountName -properties * | ConvertTo-JSON -compress | Out-File -encoding utf8 $OUTPUT_FILENAME -Append }
Buat tugas berulang yang menjalankan skrip untuk mengambil dan menulis data ke file output.
- Buka aplikasi Task Scheduler.
- Klik Create task.
- Masukkan nama dan deskripsi tugas.
- Pilih kotak centang Jalankan dengan hak istimewa tertinggi untuk memastikan semua data telah diambil.
- Di tab Triggers, tentukan kapan Anda ingin mengulangi tugas.
- Di tab Action, tambahkan tindakan baru dan berikan jalur file tempat skrip disimpan.
Instal Agen NXLog di setiap server Microsoft Windows Active Directory. Aplikasi ini meneruskan log ke server pusat Microsoft Windows atau Linux. Ikuti dokumentasi NXLog.
Buat file konfigurasi untuk setiap instance NXLog. Gunakan modul im_file NXLog untuk membaca dari file dan mengurai baris ke dalam kolom. Gunakan modul om_tcp untuk meneruskan data ke server pusat Microsoft Windows atau Linux.
Berikut adalah contoh konfigurasi NXLog. Ganti nilai
<hostname>
dan<port>
dengan informasi tentang Microsoft Windows atau Server Linux pusat tujuan. Di bagian<Input in_adcontext>
dan propertiFile
, tambahkan jalur file log output yang ditulis oleh skrip Powershell. Selalu tetapkanDirCheckInterval
danPollInterval
. Jika ini tidak ditentukan, NXLog akan membuat polling untuk file setiap 1 detik.define ROOT C:\Program Files\nxlog define ADCONTEXT_OUTPUT_DESTINATION_ADDRESS <hostname> define ADCONTEXT_OUTPUT_DESTINATION_PORT <port> Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data LogFile %ROOT%\data\nxlog.log <Input in_adcontext> Module im_file File "<Path_of_the_output_file>" DirCheckInterval 3600 PollInterval 3600 </Input> <Output out_chronicle_adcontext> Module om_tcp Host %ADCONTEXT_OUTPUT_DESTINATION_ADDRESS% Port %ADCONTEXT_OUTPUT_DESTINATION_PORT% </Output> <Route ad_context_to_chronicle> Path in_adcontext => out_chronicle_adcontext </Route>
Mulai layanan NXLog di setiap sistem.
Konfigurasikan server Microsoft Windows atau Linux pusat
Lihat artikel Menginstal dan mengonfigurasi forwarder di Linux atau Menginstal dan mengonfigurasi forwarder di Microsoft Windows untuk mengetahui informasi cara menginstal dan mengonfigurasi forwarder.
- Mengonfigurasi sistem dengan zona waktu UTC.
- Instal forwarder Chronicle di server Microsoft Windows atau Linux pusat.
Konfigurasi penerusan Chronicle untuk mengirim log ke Chronicle. Berikut adalah contoh konfigurasi Forwarder.
- syslog: common: enabled: true data_type: WINDOWS_AD batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10518 connection_timeout_sec: 60
Referensi pemetaan kolom: kolom log perangkat ke kolom UDM
Bagian ini menjelaskan cara parser memetakan kolom log asli ke kolom Model Data Terpadu.
Log Konteks Pengguna
Kolom NXLog | Kolom UDM |
---|---|
GivenName |
entity.entity.user.first_name |
Surname |
entity.entity.user.last_name |
SamAccountName |
entity.entity.user.userid |
SID.Value |
entity.entity.user.windows_sid |
ObjectClass |
If the value is user ,entity.metadata.entity_type is set to USER |
ObjectGuid |
If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the objectGUID log field value is not empty, then the objectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the
entity.entity.user.product_object_id UDM field.
|
objectGUID |
If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the objectGUID log field value is not empty, then the objectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
|
ObjectGUID |
If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the objectGUID log field value is not empty, then the objectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.user.product_object_id UDM field.
|
AccountExpirationDate |
entity.entity.user.account_expiration_time |
badPwdCount |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
CanonicalName |
entity.entity.administrative_domain |
City |
entity.entity.user.personal_address.city |
Company |
entity.entity.user.company_name |
Country |
entity.entity.user.personal_address.country_or_region |
Department |
entity.entity.user.department |
Description |
entity.metadata.description |
DisplayName |
entity.entity.user.user_display_name |
EmailAddress |
entity.entity.user.email_addresses |
EmployeeID |
entity.entity.user.employee_id |
HomeDirectory |
entity.entity.file.full_path |
HomePage |
entity.entity.url |
HomePhone |
entity.entity.user.phone_numbers |
LastBadPasswordAttempt |
entity.entity.user.last_bad_password_attempt_time |
lastLogoff |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
lastLogon |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
LastLogonDate |
entity.entity.user.last_login_time |
Manager |
Values for GUID , SAMAccountname , SID all mapped to different UDM fields:- SID is stored in manager.windows_sid- Distinguished name (i.e. value in first CN) is stored in
manager.user_display_name - GUID ,SamAccountName is stored in manager.userid |
MemberOf |
The following fields in the first occurrence of CN are set:entity.relations.entity.group.group_display_name entity.relations.entity_type set to GROUP entity.relations.relationship set t0 MEMBER entity.relations.direction set to UNIDIRECTIONAL |
MobilePhone |
entity.entity.user.phone_numbers |
Office |
entity.entity.user.office_address.name |
PasswordExpired |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
PasswordLastSet |
entity.entity.user.last_password_change_time |
PasswordNeverExpires |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
PasswordNotRequired |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
PrimaryGroup |
Following fields are set: - entity.relations.entity.group.group_display_name - entity.relations.entity_type set to GROUP - entity.relations.relationship set to MEMBER - entity.relations.direction set to UNIDIRECTIONAL |
ServicePrincipalNames |
entity.entity.user.attribute.label.key and entity.entity.user.attribute.label.value |
State |
entity.entity.user.personal_address.state |
StreetAddress |
entity.entity.user.personal_address.name |
Title |
entity.entity.user.title |
whenCreated |
entity.user.attribute.creation_time |
AccountLockoutTime |
entity.entity.user.account_lockout_time |
Log Konteks Aset
Kolom NXLog | Kolom UDM |
---|---|
DNSHostName |
entity.entity.asset.hostname |
SamAccountName |
entity.entity.asset.asset_id |
SID.Value |
entity.entity.user.windows_sid |
ObjectClass |
If the value is computer , entity.metadata.entity_type set to ASSET |
ObjectGuid |
If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.asset.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.asset.product_object_id UDM field. |
ObjectGUID |
If the ObjectGuid log field value is not empty, then the ObjectGuid log field is mapped to the entity.entity.asset.product_object_id UDM field.
Else, If the ObjectGUID log field value is not empty, then the ObjectGUID log field is mapped to the entity.entity.asset.product_object_id UDM field. |
AccountExpirationDate |
entity.entity.user.account_expiration_time |
badPwdCount |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
CanonicalName |
entity.entity.administrative_domain |
countryCode |
entity.entity.asset.location.country_or_region |
Description |
entity.entity.metadata.description |
HomePage |
entity.entity.url |
IPv4Address |
entity.entity.asset.ip |
IPv6Address |
entity.entity.asset.ip |
LastBadPasswordAttempt |
entity.entity.user.last_bad_password_attempt_time |
lastLogoff |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
lastLogon |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
LastLogonDate |
entity.entity.user.last_login_time |
Location |
entity.entity.asset.location.name |
ManagedBy |
The following fields are set:entity.entity.user.user_display_name entity.relations.entity_type set to USER entity.relations.relationship set to ADMINISTERS entity.relations.direction set to UNIDIRECTIONAL |
ObjectCategory |
entity.entity.asset.category |
OperatingSystem |
If the name contains Windows ,
entity.entity.asset.platform_software.platform field is set to
WINDOWS . |
OperatingSystemServicePack |
entity.entity.asset.platform_software.platform_patch_level |
OperatingSystemVersion |
The field entity.entity.asset.platform_software.platform_version is set to
%{OperatingSystem} - %{OperatingSystemVersion} |
PasswordExpired |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
PasswordLastSet |
entity.entity.user.last_password_change_time |
PasswordNeverExpires |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
PasswordNotRequired |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
PrimaryGroup |
The following fields are set: - entity.relations.entity.group.group_display_name - entity.relations.entity_type set to GROUP - entity.relations.relationship set to MEMBER - entity.relations.direction set to UNIDIRECTIONAL |
ServicePrincipalNames |
entity.entity.asset.attribute.label.key and entity.entity.asset.attribute.label.value |
whenChanged |
entity.entity.asset.attribute.last_update_time |
whenCreated |
entity.entity.asset.attribute.creation_time |
AccountLockoutTime |
entity.entity.user.account_lockout_time |