Mengumpulkan log Netgate pfSense
Dokumen ini menjelaskan cara mengumpulkan log Netgate pfSense menggunakan forwarder Operasi Keamanan Google.
Untuk informasi selengkapnya, lihat Penambahan data ke Google SecOps.
Label penyerapan mengidentifikasi parser yang menormalisasi data log mentah ke format UDM terstruktur. Informasi dalam dokumen ini berlaku untuk parser dengan
label transfer PFSENSE
.
Mengonfigurasi Netgate pfSense
- Login ke antarmuka pfSense dengan kredensial administrator.
- Di setelan Global log, lakukan hal berikut:
- Pilih Status > Log sistem > Setelan.
- Pada tab Setelan, pilih Opsi logging umum, lalu lakukan tindakan berikut:
- Di kolom Log message format, pilih syslog (RFC 5424, dengan stempel waktu presisi mikrodetik RFC 3339).
- Di kolom Log firewall default blocks, centang kotak berikut:
- Mencatat paket yang cocok dari aturan pemblokiran default dalam kumpulan aturan
- Paket log yang cocok dari aturan kartu default yang dimasukkan ke dalam kumpulan aturan
- Mencatat paket yang diblokir oleh aturan 'Block bogon networks'
- Mencatat paket yang diblokir oleh aturan 'Blokir jaringan pribadi'
- Untuk menyimpan setelan baru, klik Simpan.
Mengirim log firewall ke Google SecOps
- Di setelan Log global, pilih Status > Log sistem > Setelan.
- Di tab Setelan, pilih Opsi logging jarak jauh dan lakukan tindakan berikut:
- Di kolom Enable remote logging, centang kotak Send log messages to remote syslog server.
- Di kolom Source address, gunakan nilai default Any.
- Di kolom IP Protocol, jika alamat sumber dipilih sebagai nilai default, Anda tidak perlu menentukan alamat IP. Jika tidak, masukkan alamat IP.
- Di Remote log servers, tentukan alamat IP penerusan Google SecOps.
- Di Remote syslog contents, centang kotak Firewall events.
- Untuk menyimpan perubahan, klik Simpan.
Mengonfigurasi penerusan Google SecOps untuk menyerap log pfSense Netgate
- Pilih Setelan SIEM > Penerima.
- Klik Tambahkan penerusan baru.
- Di kolom Nama pengirim, masukkan nama unik untuk pengirim.
- Klik Kirim, lalu klik Konfirmasi. Pengirim ditambahkan dan jendela Tambahkan konfigurasi kolektor akan muncul.
- Di kolom Nama kolektor, ketik nama unik untuk kolektor.
- Pilih pfSense sebagai Jenis log.
- Di kolom Jenis kolektor, pilih Syslog.
- Konfigurasikan parameter input wajib berikut:
- Protokol: menentukan protokol koneksi yang digunakan kolektor untuk memproses data syslog.
- Address: tentukan alamat IP atau nama host target tempat kolektor berada dan memproses data syslog.
- Port: menentukan port target tempat kolektor berada dan memproses data syslog.
- Klik Kirim.
Untuk informasi selengkapnya tentang forwarder Google SecOps, lihat Mengelola konfigurasi forwarder melalui UI Google SecOps.
Jika Anda mengalami masalah saat membuat penerusan, hubungi dukungan Google SecOps.
Referensi pemetaan kolom
Parser firewall pfSense ini mengekstrak kolom dari pesan syslog menggunakan pola grok, yang menangani berbagai format log termasuk peristiwa DHCP dan firewall. Kemudian, alat ini memetakan kolom yang diekstrak ini ke UDM, yang memperkaya data dengan informasi kontekstual seperti alamat IP, alamat MAC, nama pengguna, dan detail jaringan.
Tabel pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
application | principal.application |
Nilai diekstrak dari pesan log menggunakan pola grok. Untuk pesan syslog, nama aplikasi biasanya ditemukan setelah nama host dan stempel waktu. |
perintah | principal.process.command_line |
Diekstrak dari kolom deskripsi saat log menunjukkan eksekusi perintah. |
deskripsi | metadata.description |
Kolom deskripsi dipetakan ke deskripsi metadata UDM, kecuali untuk log aplikasi syslog-ng yang dipetakan ke metadata.description . Untuk peristiwa DHCP, dhcp_type ditambahkan di awal deskripsi. |
dhcp_type | metadata.product_event_type |
Jenis pesan DHCP (misalnya, DHCPDISCOVER, DHCPOFFER) diekstrak dan dipetakan. |
host | intermediary.hostname ATAU intermediary.ip |
Jika nilai host adalah alamat IP yang valid, nilai tersebut akan dipetakan ke intermediary.ip . Jika tidak, kolom akan dipetakan ke intermediary.hostname . |
host | principal.hostname , principal.asset.hostname |
Jika tidak ada IP utama, host akan diperlakukan sebagai nama host utama. |
mac | principal.mac , network.dhcp.chaddr |
Alamat MAC yang terkait dengan permintaan DHCP diekstrak dan dipetakan. |
src_ip | principal.ip , principal.asset.ip |
Diekstrak dari format log tertentu menggunakan pola grok. |
src_mac | principal.mac |
Diekstrak dari format log tertentu menggunakan pola grok. |
dst_mac | target.mac |
Diekstrak dari format log tertentu menggunakan pola grok. |
timestamp | metadata.event_timestamp |
Stempel waktu diekstrak dari pesan log dan dikonversi ke format stempel waktu UDM. Informasi zona waktu (tz) ditambahkan ke stempel waktu sebelum konversi jika tersedia. |
timestamp_no_year | metadata.event_timestamp |
Jika stempel waktu tanpa tahun ada, stempel waktu tersebut akan diuraikan, dan tahun saat ini akan ditambahkan selama proses penguraian. |
pengguna | principal.user.userid |
Nama pengguna yang terkait dengan peristiwa diekstrak dan dipetakan. |
kolom1 | security_result.rule_id |
Dipetakan dari kolom CSV pertama jika deskripsinya dalam format CSV. |
column6 | security_result.rule_type |
Dipetakan dari kolom CSV keenam jika deskripsinya dalam format CSV. |
column7 | security_result.action |
Dipetakan dari kolom CSV ketujuh jika deskripsinya dalam format CSV. Dikonversi menjadi "BLOCK" atau "ALLOW". |
column8 | network.direction |
Dipetakan dari kolom CSV kedelapan jika deskripsinya dalam format CSV. Dikonversi menjadi "INBOUND" atau "OUTBOUND". |
column13 | network.ip_protocol (jika UDP atau ICMP) |
Dipetakan dari kolom CSV ketiga belas jika deskripsi dalam format CSV dan protokolnya adalah UDP atau ICMP. Untuk peristiwa TCP/UDP, peristiwa ini digunakan untuk membuat kolom tambahan dengan kunci "Id". |
column16 | principal.ip , principal.asset.ip (jika IPv6 dan column9 adalah 6) |
Dipetakan dari kolom CSV keenam belas jika deskripsi dalam format CSV dan kolom9 adalah 6. Untuk peristiwa TCP/UDP, kolom ini digunakan untuk identifikasi protokol jika kolom9 adalah 4. |
column17 | target.ip , target.asset.ip (jika IPv6 dan bukan ip_failure) |
Dipetakan dari kolom CSV ketujuh belas jika deskripsi dalam format CSV, column9 adalah 6, dan nilainya adalah IP yang valid. Untuk peristiwa TCP/UDP, ini digunakan untuk identifikasi protokol. |
column18 | principal.port (jika UDP) |
Dipetakan dari kolom CSV kedelapan belas jika deskripsi dalam format CSV dan protokolnya adalah UDP. Untuk peristiwa TCP/UDP, peristiwa ini dipetakan ke network.received_bytes . |
column19 | target.port (jika UDP) |
Dipetakan dari kolom CSV kesembilan belas jika deskripsi dalam format CSV dan protokolnya adalah UDP. Untuk peristiwa DHCP, peristiwa ini dipetakan ke network.dhcp.yiaddr . Untuk peristiwa lainnya, peristiwa tersebut dipetakan ke principal.ip , principal.asset.ip . |
column20 | additional.fields (kunci: "data_length") (jika UDP) |
Dipetakan dari kolom CSV kedua puluh jika deskripsi dalam format CSV dan protokolnya adalah UDP. Untuk peristiwa lainnya, peristiwa tersebut dipetakan ke target.ip , target.asset.ip . |
column21 | principal.port (jika TCP/UDP) |
Dipetakan dari kolom CSV kedua puluh satu jika deskripsi dalam format CSV dan protokolnya adalah TCP atau UDP. |
column22 | target.port (jika TCP/UDP) |
Dipetakan dari kolom CSV kedua puluh dua jika deskripsi dalam format CSV dan protokolnya adalah TCP atau UDP. |
column23 | additional.fields (kunci: "data_length") (jika TCP/UDP) |
Dipetakan dari kolom CSV kedua puluh tiga jika deskripsi dalam format CSV dan protokolnya adalah TCP atau UDP. |
column24 | additional.fields (kunci: "tcp_flags") (jika TCP) |
Dipetakan dari kolom CSV kedua puluh empat jika deskripsinya dalam format CSV dan protokolnya adalah TCP. |
column25 | additional.fields (kunci: "sequence_number") (jika TCP/UDP) |
Dipetakan dari kolom CSV ke dua puluh lima jika deskripsi dalam format CSV dan protokolnya adalah TCP atau UDP. |
column29 | additional.fields (kunci: "tcp_options") (jika TCP) |
Dipetakan dari kolom CSV kedua puluh sembilan jika deskripsinya dalam format CSV dan protokolnya adalah TCP. |
compression_algo | additional.fields (kunci: "Compression Algorithm") |
Diekstrak dari kolom deskripsi dan ditambahkan sebagai kolom tambahan. |
menurun | metadata.description |
Diekstrak dari kolom pesan dan digunakan sebagai deskripsi. |
principal_ip | principal.ip , principal.asset.ip |
Diekstrak dari kolom deskripsi dan mewakili alamat IP utama. |
principal_username | principal.user.userid |
Diekstrak dari kolom deskripsi dan mewakili nama pengguna akun utama. |
status | security_result.detection_fields (kunci: "status") |
Diekstrak dari kolom deskripsi dan ditambahkan sebagai kolom deteksi dalam hasil keamanan. |
target_host | target.hostname , target.asset.hostname |
Diekstrak dari kolom deskripsi dan mewakili nama host target. |
src_port | principal.port |
Diekstrak dari kolom deskripsi dan mewakili port sumber. Ditentukan berdasarkan berbagai kolom log dan logika parser. Dapat berupa NETWORK_CONNECTION, NETWORK_DHCP, STATUS_UPDATE, atau GENERIC_EVENT. Di-hardcode ke "PFSENSE". Di-hardcode ke "PFSENSE". Di-hardcode ke "PFSENSE". Tetapkan ke "DHCP" untuk peristiwa DHCP. Tetapkan ke "BOOTREQUEST" untuk DHCPDISCOVER dan DHCPREQUEST, serta "BOOTREPLY" untuk DHCPOFFER dan DHCPACK. Tetapkan ke "DISCOVER", "REQUEST", "OFFER", atau "ACK" berdasarkan kolom dhcp_type . |
Perubahan
2024-05-08
- Menambahkan pola Grok untuk mengurai kolom "deskripsi".
- Memetakan "principal_ip" ke "principal.ip" dan "principal.asset.ip".
- Memetakan "src_port" ke "principal.port".
- Memetakan "compression_algo" ke "additional.fields".
- Memetakan "status" ke "security_result.detection_fields".
- Memetakan "principal_username" ke "principal.user.userid".
- Memetakan "target_host" ke "target.hostname" dan "target.asset.hostname".
2023-05-05
- Menambahkan konversi ke huruf besar sebelum memetakan "network.ip_protocol".
- Memetakan "column18" ke "principal.port" jika protokol ada di "column13".
- Memetakan "column19" ke "target.port" jika protokol ada di "column13".
- Memetakan "column20" ke "additional.fields" sebagai "data-length" saat protokol ada di "column13".
2023-02-20
- Menambahkan pola Grok untuk mendukung format log filter dan format syslog-ng baru.
2022-10-04
- Memaketkan ulang nama perangkat firewall ke intermediary.hostname, bukan principal.hostname untuk log dengan event_types "NETWORK_CONNECTION".
2022-09-05
- Enhancement-
- untuk log format csv yang memetakan kolom berikut.
- Menambahkan pola grok untuk mengambil "IP" dan "MAC".
- Memetakan "column19" yang merupakan "source-address" ke "network.dhcp.yiaddr".
- Memetakan "security_result.action" ke "ALLOW" jika "column7" sama dengan "pass".
- Jika "column9" sama dengan "6" yang menunjukkan "IPV6", kolom berikut akan dipetakan:
- Memetakan "column17" yang merupakan "destination-address" ke "target.ip".
- Memetakan "column16" yang merupakan "source-address" ke "principal.ip".
- Memetakan "event_type" ke "NETWORK_CONNECTION" jika "column16" dan "column17" bukan null.
- Memetakan "column12" yang merupakan "hop_limit" ke "additional.fields".
- Memetakan "column13" yang merupakan "ip_protocol" ke "network.ip_protocol".
- Memigrasikan parser kustom ke parser default.
- Menambahkan pemeriksaan bersyarat untuk menetapkan "event_type" ke "STATUS_UPDATE"
2022-06-30
- Memetakan "ttl" ke "additional.fields".
- Memetakan "Id" ke "additional.fields".
- Memetakan "Offset" ke "additional.fields".
- Memetakan "Panjang data" ke "additional.fields".
- Memetakan "Panjang" ke "additional.fields".
- Memetakan "Sequence-number" ke "additional.fields".
2022-04-11
- Parser yang baru dibuat