Mengumpulkan log Nokia Router
Dokumen ini menjelaskan cara mengumpulkan log Nokia Router ke Google Security Operations menggunakan agen Bindplane. Parser pertama-tama mengekstrak kolom seperti stempel waktu, alamat IP, nama host, dan detail peristiwa menggunakan pola Grok. Kemudian, alat ini memetakan kolom yang diekstrak ini ke kolom yang sesuai dalam skema UDM Google SecOps, melakukan transformasi data, dan memperkaya data dengan konteks tambahan berdasarkan jenis dan kondisi peristiwa tertentu.
Sebelum memulai
- Pastikan Anda memiliki instance Google SecOps.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses dengan hak istimewa ke Router Nokia.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat 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
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
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.sh
Referensi penginstalan tambahan
- Untuk opsi penginstalan tambahan, lihat panduan penginstalan ini.
Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirim ke Google SecOps
Akses file konfigurasi:
- Temukan file
config.yaml
. Biasanya, file ini berada di direktori/etc/bindplane-agent/
di Linux atau di direktori penginstalan di Windows. - Buka file menggunakan editor teks (misalnya,
nano
,vi
, atau Notepad).
- Temukan file
Edit file
config.yaml
sebagai berikut:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: NOKIA_ROUTER raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
Ganti
<customer_id>
dengan ID pelanggan yang sebenarnya.Perbarui
/path/to/ingestion-authentication-file.json
ke jalur tempat file autentikasi disimpan di bagian Mendapatkan file autentikasi penyerapan Google SecOps.
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi Syslog di Nokia Service Router
Masuk ke Mode Konfigurasi:
config# log
Tentukan Tujuan Syslog:
config>log# syslog 1
Mengonfigurasi Parameter Syslog:
config>log>syslog# address <syslog-server-ip> config>log>syslog# port <port-number> config>log>syslog# facility local0 config>log>syslog# level info config>log>syslog# log-prefix "Nokia-SR" config>log>syslog# description "Google SecOps syslog server"
- Ganti
<syslog-server-ip>
dengan alamat IP Agen Bindplane dan<port-number>
dengan port yang sesuai (misalnya,514
untuk UDP).
- Ganti
Menerapkan Tujuan Syslog ke File Log:
config>log# log-id 1 config>log>log-id# to syslog 1
Aktifkan File Log:
config>log>log-id# no shutdown
Simpan konfigurasi:
config>log>log-id# exit config>log# save
Contoh konfigurasi lengkap:
```bash
config# log
config>log# syslog 1
config>log>syslog# address 192.168.1.100
config>log>syslog# port 514
config>log>syslog# facility local0
config>log>syslog# level info
config>log>syslog# log-prefix "Nokia-SR"
config>log>syslog# description "Google SecOps syslog server"
config>log>syslog# exit
config>log# log-id 1
config>log>log-id# to syslog 1
config>log>log-id# no shutdown
config>log>log-id# exit
config>log# save
```
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
%{SYSLOGTIMESTAMP:date_time} |
metadata.event_timestamp |
Diekstrak dari log mentah dan dikonversi menjadi stempel waktu. |
%{IP:src_ip} |
principal.ip |
Diekstrak dari log mentah. |
%{HOSTNAME:host_name} |
principal.hostname |
Diekstrak dari log mentah. |
%{INT:sequence_id} |
metadata.product_log_id |
Diekstrak dari log mentah. |
%{DATA:router_name} |
metadata.product_name |
Diekstrak dari log mentah. |
%{DATA:application} |
target.application |
Diekstrak dari log mentah. |
%{WORD:severity} |
security_result.severity |
Dipetakan dari tingkat keparahan log mentah berdasarkan logika berikut: - CLEARED, INFO -> INFORMATIONAL - MINOR -> ERROR - WARNING -> LOW - MAJOR -> HIGH - CRITICAL -> CRITICAL |
%{DATA:event_name} |
metadata.product_event_type |
Diekstrak dari log mentah. |
%{INT:event_id} |
additional.fields.value.string_value |
Diekstrak dari log mentah dan ditempatkan dalam additional fields dengan kunci Event Id . |
%{GREEDYDATA:message1} |
Digunakan untuk mengekstrak berbagai kolom berdasarkan event_name . Lihat logika untuk kolom tertentu di bawah. |
|
Group %{NOTSPACE:group_id} |
target.group.product_object_id |
Diekstrak dari message1 saat event_name terkait dengan peristiwa BGP. |
%{WORD} %{IP:dest_ip} |
target.ip |
Diekstrak dari message1 saat event_name terkait dengan peristiwa BGP. |
%{GREEDYDATA:desc} |
security_result.description |
Diekstrak dari message1 untuk berbagai skenario event_name . |
SAP %{DATA:sap_id} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah sapStatusChanged dan ditempatkan dalam additional fields dengan kunci SAP Id . |
in service %{INT:service_id} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah sapStatusChanged dan ditempatkan dalam additional fields dengan kunci Service Id . |
\\(customer %{INT:customer_id}\\) |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah sapStatusChanged dan ditempatkan dalam additional fields dengan kunci Customer Id . |
admin=%{WORD:admin_status} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah sapStatusChanged dan ditempatkan dalam additional fields dengan kunci Admin Status . |
oper=%{WORD:operation_status} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah sapStatusChanged dan ditempatkan dalam additional fields dengan kunci Operation Status . |
flags=%{WORD:flag} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah sapStatusChanged dan ditempatkan dalam additional fields dengan kunci Flag . |
with MI:SCI %{DATA:mi_sci} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah tmnxMkaSessionEstablished dan ditempatkan dalam additional fields dengan kunci MI:SCI . |
on port %{DATA:port_id} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah tmnxMkaSessionEstablished dan ditempatkan dalam additional fields dengan kunci Port Id . |
sub-port %{INT:sub_port_id} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah tmnxMkaSessionEstablished dan ditempatkan dalam additional fields dengan kunci Sub-port Id . |
CA %{INT:ca} |
additional.fields.value.string_value |
Diekstrak dari message1 saat event_name adalah tmnxMkaSessionEstablished dan ditempatkan dalam additional fields dengan kunci CA . |
EAPOL-destination %{MAC:dest_mac} |
target.mac |
Diekstrak dari message1 saat event_name adalah tmnxMkaSessionEstablished . |
local port-id %{DATA:local_port_id} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci local_port_id . |
dest-mac-type %{NOTSPACE:mac_type} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci mac_type . |
remote system name %{HOSTNAME:dest_host} |
target.hostname |
Diekstrak dari message1 untuk nilai event_name tertentu. |
remote chassis-id %{DATA:dest_mac} |
target.mac |
Diekstrak dari message1 untuk nilai event_name tertentu. |
remote port-id %{DATA:port_id} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci port_id . |
remote-index %{INT:remote_index} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci remote_index . |
remote management address %{IP:dest_ip} |
target.ip |
Diekstrak dari message1 untuk nilai event_name tertentu. |
advRtr:%{HOSTNAME:dest_host}%{GREEDYDATA}, ip@:%{IP:dest_ip}/%{INT:dest_port} |
target.hostname , target.ip , target.port |
Diekstrak dari message1 untuk nilai event_name tertentu. |
SID:%{INT:sid} |
network.session_id |
Diekstrak dari message1 untuk nilai event_name tertentu. |
level:%{DATA:level} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci level . |
mtid:%{INT:mtid} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci mtid . |
type:%{WORD:type} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci type . |
flags:%{WORD:flag} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci flag . |
, algo:%{INT:algo} |
target.resource.attribute.labels.value |
Diekstrak dari message1 untuk nilai event_name tertentu dan ditempatkan dalam target.resource.attribute.labels dengan kunci algo . |
Description:%{GREEDYDATA:desc}. |
security_result.description |
Diekstrak dari message1 saat event_name adalah mafEntryMatch . |
SrcIP |
principal.ip |
Diekstrak dari kolom kv_data saat event_name adalah mafEntryMatch . |
SrcIP: %{INT:src_port} |
principal.port |
Diekstrak dari kolom kv_data saat event_name adalah mafEntryMatch . |
DstIP |
target.ip |
Diekstrak dari kolom kv_data saat event_name adalah mafEntryMatch . |
DstIP: %{INT:dest_port} |
target.port |
Diekstrak dari kolom kv_data saat event_name adalah mafEntryMatch . |
Protocol |
network.ip_protocol |
Diekstrak dari kolom kv_data saat event_name adalah mafEntryMatch . |
T/A | metadata.vendor_name |
Tetapkan ke NOKIA_ROUTER . |
T/A | metadata.event_type |
Ditentukan berdasarkan keberadaan dan kombinasi kolom yang diekstrak: - src_ip , dest_ip , dan network ada -> NETWORK_CONNECTION- principal ada -> STATUS_UPDATE- Jika tidak -> GENERIC_EVENT |
%{GREEDYDATA:description} |
metadata.description |
Diekstrak dari message1 saat event_name adalah tmnxMkaSessionEstablished . |
Perubahan
2023-11-27
- Parser yang baru dibuat.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.