Mengumpulkan log LDAP server direktori Red Hat
Dokumen ini menjelaskan cara menyerap log LDAP Red Hat Directory Server ke Google Security Operations menggunakan agen Bindplane.
Red Hat Directory Server adalah layanan direktori LDAP kelas perusahaan yang dibangun berdasarkan standar terbuka yang menyediakan manajemen identitas pengguna, autentikasi, dan kontrol akses terpusat untuk lingkungan Linux dan UNIX. Server Direktori menyimpan log akses, error, audit, kegagalan audit, dan keamanan di direktori /var/log/dirsrv/slapd-instance_name/, yang mencatat koneksi klien, operasi LDAP, perubahan konfigurasi, operasi yang gagal, dan peristiwa keamanan seperti upaya autentikasi dan masalah otorisasi.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Host Linux dengan
systemd - Konektivitas jaringan antara agen Bindplane dan host Red Hat Directory Server
- Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses root atau sudo ke host Red Hat Directory Server
- Red Hat Directory Server 11 atau yang lebih baru telah diinstal dan berjalan
- Layanan
rsyslogdiinstal dan berjalan di host Server Direktori
Mendapatkan kredensial Google SecOps untuk agen Bindplane
Untuk mengautentikasi agen Bindplane ke Google SecOps, pilih salah satu metode berikut:
- Deployment baru: Gunakan Chronicle API (Opsi 1).
- Deployment lama: Terus gunakan file autentikasi penyerapan (Opsi 2) hingga Ingestion API dihentikan pada 20 Juli 2027.
Opsi 1: Membuat akun layanan untuk Chronicle API (direkomendasikan)
- Login ke Google Cloud konsol dan pilih project Google Cloud yang ditautkan ke instance Google SecOps Anda.
- Buka IAM & Admin > Service Accounts.
- Klik Create service account.
- Berikan detail konfigurasi berikut:
- Service account name: Masukkan nama akun (misalnya,
bindplane-ingest). - Deskripsi akun layanan: Masukkan deskripsi (misalnya,
Bindplane agent log ingestion).
- Service account name: Masukkan nama akun (misalnya,
- Klik Create and continue.
- Di bagian Grant this service account access to project, klik Select a role, lalu pilih Chronicle Editor.
- Klik Continue lalu klik Done.
- Klik akun layanan yang Anda buat, lalu buka tab Keys.
- Klik Add key > Create new key.
- Pilih JSON, lalu klik Create. File kunci didownload ke komputer Anda.
- Simpan file kunci sebagai
ingestion-auth.jsondi direktori pengumpul Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsondi Linux atauC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsondi Windows), atau perbaruicreds_file_pathdiconfig.yamlagar cocok dengan jalur tempat Anda menyimpannya. - Buka IAM & Admin > Settings dan salin Project number. Anda akan memerlukannya untuk konfigurasi pengekspor.
Opsi 2: Mendownload file autentikasi penyerapan (lama)
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download file autentikasi penyerapan.
- Simpan file dengan aman di sistem tempat agen Bindplane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal agen Bindplane
Instal agen Bindplane di sistem operasi Linux Anda sesuai dengan petunjuk berikut.
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sudo systemctl status observiq-otel-collectorLayanan akan ditampilkan sebagai active (running).
Referensi penginstalan tambahan
Untuk mengetahui opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen Bindplane.
Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps
Cari file konfigurasi
Linux:
sudo nano /opt/observiq-otel-collector/config.yaml
Edit file konfigurasi
Ganti seluruh konten
config.yamldengan konfigurasi berikut:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/redhat_ds: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: REDHAT_DIRECTORY_SERVER raw_log_field: body service: pipelines: logs/redhat_ds: receivers: - udplog exporters: - chronicle/redhat_ds
Parameter konfigurasi
Ganti placeholder berikut:
Konfigurasi penerima:
udplog: Jenis penerima berdasarkan protokol:udploguntuk syslog UDPtcploguntuk syslog TCPsysloguntuk syslog RFC 3164/5424
0.0.0.0: Alamat IP yang akan didengarkan:0.0.0.0untuk memproses semua antarmuka (direkomendasikan)- Alamat IP tertentu untuk memproses satu antarmuka
514: Nomor port yang akan diproses (misalnya,514,1514,6514)
Konfigurasi pengekspor:
<customer_id>: ID Pelanggan dari langkah sebelumnyalocation: Ganti<LOCATION>dengan region instance Google SecOps Anda (misalnya,us,europe, atauasia-southeast1). Pengekspor akan menambahkan awalanchronicle.googleapis.comdengan nilai ini. Lihat Endpoint Regional untuk mengetahui daftar lengkapnya.project: Ganti<PROJECT_NUMBER>dengan nomor project dari IAM & Admin > Settings.endpoint: Tetap tetapkan kechronicle.googleapis.com.- Sesuaikan
creds_file_pathke jalur file kunci JSON akun layanan Anda (Opsi 1), bergantung pada platform:- Linux:
/opt/observiq-otel-collector/ingestion-auth.json
- Linux:
Pengekspor API penyerapan lama
Jika Anda menggunakan file autentikasi penyerapan dari Opsi 2, ganti blok
exportersdengan kode berikut. Tetapkancreds_file_pathke jalur ke file autentikasi penyerapan, dan jika instance Anda berada di luar AS, gantimalachiteingestion-pa.googleapis.comdengan endpoint regional Anda (misalnya,europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/redhat_ds: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: REDHAT_DIRECTORY_SERVER raw_log_field: body
Menyimpan file konfigurasi
- Setelah mengedit, simpan file:
- Linux: Tekan
Ctrl+O, laluEnter, laluCtrl+X
- Linux: Tekan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorPastikan layanan sedang berjalan:
sudo systemctl status observiq-otel-collectorPeriksa log untuk mengetahui error:
sudo journalctl -u observiq-otel-collector -f
Mengaktifkan logging audit dan kegagalan audit di Red Hat Directory Server
Secara default, Red Hat Directory Server mengaktifkan logging akses, error, dan keamanan, tetapi menonaktifkan logging audit dan kegagalan audit. Aktifkan log ini untuk merekam semua perubahan direktori dan operasi yang gagal.
- Buka terminal dengan hak istimewa root atau sudo di host Server Direktori.
Aktifkan log audit dengan menjalankan perintah berikut:
dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditlog-logging-enabled=onAktifkan log kegagalan audit dengan menjalankan perintah berikut:
dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditfaillog-logging-enabled=onPastikan semua jenis log diaktifkan:
dsconf -D "cn=Directory Manager" instance_name config get nsslapd-accesslog-logging-enabled nsslapd-errorlog-logging-enabled nsslapd-auditlog-logging-enabled nsslapd-auditfaillog-logging-enabled nsslapd-securitylog-logging-enabledVerifikasi bahwa file log ada di direktori log:
ls -la /var/log/dirsrv/slapd-instance_name/
Opsional: Aktifkan logging menggunakan konsol web
- Login ke konsol web Red Hat Directory Server.
- Pilih item.
- Buka Server > Logging.
- Pilih jenis log yang ingin Anda aktifkan (misalnya, Log Audit).
- Aktifkan tombol logging untuk jenis log yang dipilih.
- Klik Simpan Setelan Log.
Mengonfigurasi rsyslog untuk meneruskan log Server Direktori ke agen Bindplane
Red Hat Directory Server menulis log ke file di /var/log/dirsrv/slapd-instance_name/, bukan langsung ke syslog. Gunakan modul imfile rsyslog untuk memantau file log ini dan meneruskan entri ke agen Bindplane.
Buat file konfigurasi rsyslog baru untuk penerusan log server direktori:
sudo nano /etc/rsyslog.d/rhds-forward.confTambahkan konten berikut ke file konfigurasi:
# Load the imfile module to read log files module(load="imfile" PollingInterval="10") # Monitor the access log input(type="imfile" File="/var/log/dirsrv/slapd-instance_name/access" Tag="dirsrv-access" Severity="info" Facility="local6") # Monitor the error log input(type="imfile" File="/var/log/dirsrv/slapd-instance_name/errors" Tag="dirsrv-errors" Severity="err" Facility="local6") # Monitor the audit log input(type="imfile" File="/var/log/dirsrv/slapd-instance_name/audit" Tag="dirsrv-audit" Severity="info" Facility="local6") # Monitor the security log input(type="imfile" File="/var/log/dirsrv/slapd-instance_name/security" Tag="dirsrv-security" Severity="info" Facility="local6") # Forward all Directory Server logs to the Bindplane agent local6.* @BINDPLANE_IP:514Verifikasi sintaksis konfigurasi rsyslog:
sudo rsyslogd -N1Mulai ulang layanan rsyslog untuk menerapkan perubahan:
sudo systemctl restart rsyslogPastikan log Server Direktori diteruskan dengan memeriksa log agen Bindplane:
sudo journalctl -u observiq-otel-collector -f
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
attrs_label |
about.labels |
Digabung |
cn_label |
about.labels |
Digabung |
conn_label |
about.labels |
Digabung |
csn_label |
about.labels |
Digabung |
err_label |
about.labels |
Digabung |
etime_label |
about.labels |
Digabung |
fd_label |
about.labels |
Digabung |
filter_label |
about.labels |
Digabung |
label |
about.labels |
Digabung |
method_label |
about.labels |
Digabung |
msgid_label |
about.labels |
Digabung |
name_label |
about.labels |
Digabung |
nentries_label |
about.labels |
Digabung |
offset_label |
about.labels |
Digabung |
op_label |
about.labels |
Digabung |
optime_label |
about.labels |
Digabung |
org_label |
about.labels |
Digabung |
ou_label |
about.labels |
Digabung |
scope_label |
about.labels |
Digabung |
slot_label |
about.labels |
Digabung |
tag_label |
about.labels |
Digabung |
targetop_label |
about.labels |
Digabung |
version_label |
about.labels |
Digabung |
wtime_label |
about.labels |
Digabung |
desc |
metadata.description |
Dipetakan secara langsung |
creationDate |
metadata.event_timestamp |
Diurai sebagai UNIX_MS |
recordDate |
metadata.event_timestamp |
Diuraikan sebagai UNIX_MS |
time |
metadata.event_timestamp |
Diuraikan sebagai dd/MMM/yyyy:HH:mm:ss Z |
ts |
metadata.event_timestamp |
Diuraikan sebagai MMM d HH:mm:ss |
operation |
metadata.product_event_type |
Dipetakan secara langsung |
mrId |
metadata.product_log_id |
Dipetakan secara langsung |
properties._ecs_agent_version |
metadata.product_version |
Dipetakan secara langsung |
host |
principal.asset.hostname |
Dipetakan secara langsung |
oid |
principal.asset.product_object_id |
Dipetakan secara langsung |
host |
principal.hostname |
Dipetakan secara langsung |
client_ip |
principal.ip |
Digabung |
namespace |
principal.namespace |
Dipetakan secara langsung |
user |
principal.user.userid |
Dipetakan secara langsung |
sec_result |
security_result |
Digabung |
properties._hostname |
target.asset.hostname |
Dipetakan secara langsung |
properties.host |
target.asset.hostname |
Dipetakan secara langsung |
properties._hostname |
target.hostname |
Dipetakan secara langsung |
properties.host |
target.hostname |
Dipetakan secara langsung |
target_ip |
target.ip |
Digabung |
properties.country |
target.location.country_or_region |
Dipetakan secara langsung |
properties._file_path |
target.process.file.full_path |
Dipetakan secara langsung |
properties._file_size |
target.process.file.size |
Diganti namanya/dipetakan |
discipline_label |
target.resource.attribute.labels |
Digabung |
document_type_label |
target.resource.attribute.labels |
Digabung |
environment_label |
target.resource.attribute.labels |
Digabung |
hostgroup_label |
target.resource.attribute.labels |
Digabung |
platform_label |
target.resource.attribute.labels |
Digabung |
product_label |
target.resource.attribute.labels |
Digabung |
project_label |
target.resource.attribute.labels |
Digabung |
base |
target.user.group_identifiers |
Digabung |
dn |
target.user.group_identifiers |
Digabung |
| T/A | metadata.event_type |
Konstanta: NETWORK_CONNECTION |
| T/A | metadata.product_name |
Konstanta: REDHAT_DIRECTORY_SERVER |
| T/A | metadata.vendor_name |
Konstanta: REDHAT |
| T/A | target.platform |
Konstanta: LINUX |
properties._file_inode |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
properties._file_offset |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
conn |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
op |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
err |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
tag |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
nentries |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
wtime |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
optime |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
etime |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
csn |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
cn |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
ou |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
filter |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
attrs |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
scope |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
o |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
targetop |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
msgid |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
method |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
version |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
fd |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
slot |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
name |
event.idm.read_only_udm.additional.fields |
Dipetakan dari log perubahan |
properties.discipline" ,"properties.document_type" ,"properties.environment" ,"properties.hostgroup" ,"properties.platform" ,"properties.product |
target.resource.attribute.labels |
Dipetakan dari log perubahan |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.