Mengumpulkan log Nokia Router

Didukung di:

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

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat Bindplane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. 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

Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirim ke Google SecOps

  1. Akses file konfigurasi:

    1. Temukan file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. 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
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  5. 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

  1. Masuk ke Mode Konfigurasi:

    config# log
    
  2. Tentukan Tujuan Syslog:

    config>log# syslog 1
    
  3. 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).
  4. Menerapkan Tujuan Syslog ke File Log:

    config>log# log-id 1
    config>log>log-id# to syslog 1
    
  5. Aktifkan File Log:

    config>log>log-id# no shutdown
    
  6. 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.