Menginstal dan mengonfigurasi penerus
Dokumen ini menjelaskan cara menginstal dan mengonfigurasi penerus Google Security Operations di sistem Linux dan Windows menggunakan Docker.
Forwarder adalah komponen software yang dapat Anda instal di komputer atau perangkat, seperti server, dalam jaringan Anda. Agent mengumpulkan data log dan meneruskan data tersebut ke instance Google SecOps Anda.
Anda dapat menggunakan penerus untuk mengirim log langsung dari lingkungan Anda ke Google SecOps, tanpa memerlukan bucket cloud atau API pihak ketiga untuk jenis log yang tidak didukung. Forwarder berfungsi sebagai solusi siap di-deploy, sehingga tidak perlu melakukan integrasi manual dengan API penyerapan.
Google SecOps menyediakan container Docker untuk deployment penerusan yang aman. Anda dapat menjalankan dan mengelola container Docker di mesin fisik atau virtual.
Persyaratan sistem
Berikut adalah rekomendasi umum. Untuk mendapatkan rekomendasi khusus terkait sistem Anda, hubungi Dukungan Google SecOps.
Sistem Linux
Forwarder didukung di berbagai distribusi Linux seperti Debian, Ubuntu, Red Hat, dan Suse. Untuk performa yang optimal, Anda harus menggunakan Docker versi 20.10.21
atau yang lebih baru.
RAM: Diperlukan RAM 1 GB untuk setiap jenis data yang dikumpulkan yang diterima Google SecOps untuk penyerapan. Misalnya, jika Anda menentukan empat pengumpul yang berbeda, Anda memerlukan RAM 4 GB untuk mengumpulkan data untuk keempat pengumpul tersebut.
CPU: Dua CPU sudah cukup untuk menangani hingga 10.000 peristiwa per detik (EPS) di semua jenis data. Jika Anda memperkirakan penerus akan menangani lebih dari 10.000 EPS, alokasikan empat hingga enam CPU.
Disk: Direkomendasikan ruang disk sebesar 20 GB, terlepas dari jumlah data yang ditangani penerus.
Sistem Windows
Forwarder didukung di Microsoft Windows Server 2022. Untuk performa yang optimal,
Anda harus menggunakan Docker versi 20.10.21
atau yang lebih baru.
RAM: RAM 1,5 GB diperlukan untuk setiap jenis data yang dikumpulkan yang diterima Google SecOps untuk penyerapan. Misalnya, jika Anda menentukan empat pengumpul yang berbeda, Anda memerlukan RAM 6 GB untuk mengumpulkan data untuk keempat pengumpul tersebut.
CPU: Dua CPU sudah cukup untuk menangani hingga 10.000 peristiwa per detik (EPS) di semua jenis data. Jika Anda memperkirakan penerus akan menangani lebih dari 10.000 EPS, alokasikan empat hingga enam CPU.
Disk: Direkomendasikan ruang disk sebesar 20 GB, terlepas dari jumlah data yang ditangani penerus.
Sebelum memulai
Sebelum memulai penerapan penerusan, pertimbangkan hal berikut.
Rentang alamat IP Google
Saat mengonfigurasi penerus, Anda mungkin perlu menyesuaikan setelan firewall yang melibatkan penentuan rentang alamat IP. Rentang IP domain default yang digunakan oleh Google API dan layanan Google dialokasikan secara dinamis dan sering berubah. Lihat Mendapatkan rentang alamat IP Google untuk mengetahui informasi selengkapnya.
Memverifikasi konfigurasi firewall
Jika penampung penerusan Anda berada di belakang firewall atau proxy yang diautentikasi, Anda harus membuka akses ke host berikut:
Jenis Koneksi | Tujuan | Port |
TCP | malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-northeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-south1-malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-southeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | australia-southeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west2-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west3-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west6-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west9-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west12-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-central1-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-central2-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-west1-malachiteingestion-pa.googleapis.com | 443 |
TCP | northamerica-northeast2-malachiteingestion-pa.googleapis.com | 443 |
TCP | southamerica-east1-malachiteingestion-pa.googleapis.com | 443 |
TCP | accounts.google.com | 443 |
TCP | gcr.io | 443 |
TCP | cloud.google.com/artifact-registry | 443 |
TCP | oauth2.googleapis.com | 443 |
TCP | storage.googleapis.com | 443 |
Merencanakan penerapan Anda
Sebelum Anda mulai mengonfigurasi penerus, rencanakan penerapan Anda. Hal ini akan membantu Anda menyelaraskan sumber data dan atribut konfigurasi dengan tujuan keamanan, kemampuan infrastruktur, dan persyaratan skalabilitas.
Tentukan data yang akan diserap
Identifikasi sumber data yang paling relevan untuk penerusan Anda dari opsi berikut:
Splunk: Ideal jika Anda sudah menggunakan Splunk untuk pengelolaan log.
Syslog: Serbaguna untuk log sistem dan aplikasi dari berbagai perangkat.
File: Fleksibel untuk menyerap file log apa pun.
Paket: Menawarkan visibilitas jaringan yang mendalam dengan merekam traffic mentah.
Kafka: Ideal untuk agregasi log real-time dan bervolume tinggi dari sistem terdistribusi.
WebProxy: Ideal untuk mendapatkan insight tentang traffic web dan perilaku pengguna.
Batasan
Feed data memiliki ukuran baris log maksimum sebesar 4 MB.
Menentukan konfigurasi
Sebelum menginstal penerus, tentukan atribut utama berikut untuk memastikan penerapan yang berhasil.
Kompresi data
Kompresi data atau log mengurangi konsumsi bandwidth jaringan saat mentransfer log ke Google SecOps. Namun, hal ini dapat menyebabkan peningkatan penggunaan CPU. Keseimbangan optimal antara penghematan bandwidth dan penggunaan CPU bergantung pada beberapa faktor seperti jenis log, kemampuan kompresi data, sumber daya CPU yang tersedia, dan batasan bandwidth jaringan Anda.
Misalnya, log berbasis teks biasanya dikompresi dengan baik dan dapat memberikan penghematan bandwidth yang besar dengan penggunaan CPU yang rendah, sementara data terenkripsi atau biner mungkin tidak dikompresi secara efisien dan dapat menimbulkan penggunaan CPU yang lebih tinggi.
Secara default, kompresi log dinonaktifkan. Evaluasi kompromi berdasarkan lingkungan spesifik dan sifat data log Anda.
Buffering disk
Sebaiknya aktifkan buffering disk. Buffering disk memungkinkan Anda melakukan buffering pesan yang tertunda ke disk, bukan ke memori, sehingga melindungi dari kehilangan data jika terjadi error pada penerus atau host. Namun, mengaktifkan buffering disk dapat memengaruhi performa.
Jika buffering disk dinonaktifkan, penerus akan mengalokasikan memori (RAM) sebesar 1 GB untuk setiap jenis log (misalnya, per konektor). Memori maksimum yang diizinkan untuk buffering disk adalah 4 GB.
Filter ekspresi reguler
Filter ekspresi reguler memungkinkan Anda memfilter log dengan mencocokkan pola dengan data log mentah. Filter menggunakan sintaksis RE2. Filter harus menyertakan ekspresi reguler dan, secara opsional, menentukan perilaku saat ada kecocokan.
Label arbitrer
Label digunakan untuk melampirkan metadata kustom ke log menggunakan key-value pair. Anda dapat mengonfigurasi label untuk seluruh penerus atau dalam pengumpul tertentu dari penerus. Jika keduanya ada, label tingkat pengumpul akan menggantikan label tingkat penerusan jika kunci tumpang-tindih.
Namespace
Anda dapat menggunakan label namespace untuk mengidentifikasi log dari segmen jaringan yang berbeda dan untuk mengatasi pertentangan alamat IP yang tumpang-tindih. Anda dapat mengonfigurasi label namespace untuk seluruh penerus atau dalam pengumpul tertentu dari penerus. Jika keduanya ada, namespace tingkat pengumpul akan menggantikan namespace tingkat penerusan.
Jenis log
Google SecOps mendukung berbagai jenis log. Untuk daftar lengkapnya, lihat Set data yang didukung.
Opsi load balancing dan ketersediaan tinggi
Load balancing hanya didukung untuk jenis pengumpulan syslog.
Forwarder dapat di-deploy di lingkungan tempat load balancer layer 4 diinstal di antara instance sumber data dan forwarder. Dengan begitu, Anda dapat mendistribusikan pengumpulan log di beberapa penerus, sehingga meningkatkan keandalan dengan mengalihkan log ke penerus lain jika terjadi kegagalan.
Forwarder memiliki server HTTP bawaan yang merespons health check dari load balancer dan mencegah kehilangan log selama startup dan shutdown. Anda dapat mengonfigurasi server HTTP, load balancing, dan opsi ketersediaan tinggi untuk menentukan durasi waktu tunggu dan kode status untuk health check. Konfigurasi ini kompatibel dengan deployment berbasis container dan load balancer.
Setelan | Deskripsi |
---|---|
Waktu tunggu tuntas | Jumlah waktu koneksi baru diterima setelah penerusan menampilkan status unready sebagai respons terhadap health check.
Ini juga merupakan waktu untuk menunggu antara menerima sinyal untuk berhenti dan
benar-benar memulai penonaktifan server itu sendiri. Hal ini memberi
load balancer waktu untuk menghapus penerusan dari kumpulan.Nilai yang valid adalah dalam detik. Misalnya, untuk menentukan 10 detik, ketik 10.
Nilai desimal tidak diizinkan.Default: 15 detik |
Waktu tunggu pengosongan | Jumlah waktu yang ditunggu penerus agar koneksi aktif ditutup sendiri sebelum ditutup oleh server. Misalnya, untuk menentukan 5 detik, ketik 5.
Nilai desimal tidak diizinkan.Default: 10 detik |
Port | Nomor port yang diproses server HTTP untuk health check dari load balancer. Nilai harus antara 1.024 hingga 65.535. Default: 8080 |
Alamat IP atau nama host | Alamat IP atau nama host yang dapat di-resolve menjadi alamat IP,
yang harus didengarkan oleh server. Default: 0.0.0.0 (sistem lokal) |
Waktu tunggu baca | Digunakan untuk menyesuaikan server HTTP. Biasanya, tidak perlu diubah
dari setelan default. Waktu maksimum yang diizinkan untuk membaca
seluruh permintaan, baik header maupun isi. Anda dapat menetapkan kolom waktu tunggu baca dan kolom waktu tunggu baca header. Default: 3 detik |
Waktu tunggu baca header | Digunakan untuk menyesuaikan server HTTP. Biasanya, tidak perlu diubah
dari setelan default. Waktu maksimum yang diizinkan untuk membaca header permintaan. Batas waktu baca koneksi direset setelah
membaca header. Default: 3 detik |
Waktu tunggu penulisan | Digunakan untuk menyesuaikan server HTTP. Biasanya, tidak perlu diubah
dari setelan default. Waktu maksimum yang diizinkan untuk mengirim
respons. Nilai ini direset saat header permintaan baru dibaca. Default: 3 detik |
Waktu tunggu tidak ada aktivitas | Digunakan untuk menyesuaikan server HTTP. Biasanya, tidak perlu diubah
dari setelan default. Waktu maksimum untuk menunggu
permintaan berikutnya saat koneksi tidak aktif diaktifkan. Jika kolom idle
timeout disetel ke nol, nilai kolom read
timeout akan digunakan. Jika keduanya nol, kolom waktu tunggu header baca akan digunakan. Default: 3 detik |
Kode status yang tersedia | Kode status yang ditampilkan penerus saat pemeriksaan keaktifan diterima dan penerus tersedia. Penjadwal dan pengelola
kontainer sering mengirim pemeriksaan keaktifan. Default: 204 |
Kode status siap | Kode status yang ditampilkan penerusan saat siap menerima
traffic dalam salah satu situasi berikut:
|
Kode status belum siap | Kode status yang ditampilkan penerus saat tidak siap menerima
traffic. Default: 503 |
Langkah 1: Tentukan konfigurasi penerus
Setiap penerus yang di-deploy memerlukan file konfigurasi penerus. File konfigurasi forwarder menentukan setelan untuk mentransfer data ke instance Google SecOps Anda. Sebaiknya buat file konfigurasi baru untuk setiap host guna mempertahankan perbedaan yang jelas antara pengumpul yang terkait dengan masing-masing host.
Google Cloud menyesuaikan file konfigurasi ini dengan metadata tertentu untuk setiap instance penerus. Anda dapat mengubah file ini agar sesuai dengan persyaratan spesifik Anda dan menyertakan detail tentang jenis log yang ingin Anda masukkan.
Anda dapat membuat file konfigurasi penerusan melalui UI, melalui API, atau secara manual.
UI menyediakan antarmuka grafis untuk mengonfigurasi penerusan dan merupakan metode yang direkomendasikan untuk membuat konfigurasi penerusan. Ini adalah cara termudah untuk memulai dan tidak memerlukan pemrograman apa pun. Untuk mendownload file konfigurasi menggunakan antarmuka pengguna Google SecOps, lihat Mengelola konfigurasi penerusan melalui UI Google SecOps.
API ini menyediakan cara terprogram untuk mengonfigurasi penerusan. Untuk mendownload konfigurasi penerus secara terprogram, lihat Forwarder Management API.
Anda dapat membuat file konfigurasi secara manual dan menambahkan opsi konfigurasi ke dalamnya. Sebaiknya gunakan metode UI untuk membuat file konfigurasi guna memastikan akurasi dan meminimalkan potensi error. Untuk membuat file secara manual, lihat Mengelola file konfigurasi penerusan secara manual.
Langkah 2: Instal Docker
Bagian ini menjelaskan cara menginstal Docker di sistem Anda.
Autentikasi Docker dengan registry artefak
Sebagai bagian dari penginstalan Docker, Anda harus melakukan autentikasi Docker. Anda dapat mengautentikasi Docker menggunakan Antarmuka Command Line (CLI) Google Cloud CLI atau, jika Anda tidak dapat menginstal Antarmuka Command Line (CLI) Google Cloud, dengan membuat JSON akun layanan baru di VM.
Metode pertama: Menggunakan Antarmuka Command Line (CLI) Google Cloud CLI
Jalankan perintah berikut untuk mengautentikasi Docker:
gcloud auth configure-docker gcr.io
Metode kedua: Buat dan download JSON akun layanan baru di Virtual machine (VM).
Gunakan metode ini jika Anda tidak dapat menginstal Google Cloud CLI (Antarmuka Command Line).
Jalankan perintah berikut untuk mengautentikasi Docker:
cat key.json | docker login -u _json_key --password-stdin https://gcr.io
Untuk mempelajari lebih lanjut metode tambahan untuk autentikasi Docker, lihat : Mengonfigurasi autentikasi ke Artifact Registry untuk Docker
Sistem Linux
Docker bersifat open source dan semua dokumentasi yang diperlukan tersedia dari komunitas Docker open source. Untuk mengetahui petunjuk penginstalan Docker, lihat Menginstal Docker Engine.
Untuk memeriksa apakah Docker telah diinstal dengan benar di sistem Anda, jalankan perintah berikut (memerlukan hak istimewa yang ditingkatkan):
docker ps
Respons berikut menunjukkan bahwa Docker telah diinstal dengan benar:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Sistem Windows
Mulai Windows PowerShell dengan hak istimewa administrator dan periksa konektivitas jaringan ke Google Cloud dengan mengikuti langkah-langkah berikut:
Klik Mulai.
Ketik
PowerShell
, lalu klik kanan Windows PowerShell.Klik Run as administrator.
Jalankan perintah berikut:
C:\> test-netconnection <host> -port <port>
Output perintah menunjukkan bahwa status
TcpTestSucceeded
adalahtrue
.Contoh:
C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443 ComputerName : malachiteingestion-pa.googleapis.com RemoteAddress : 198.51.100.1 RemotePort : 443 InterfaceAlias : Ethernet SourceAddress : 203.0.113.1 TcpTestSucceeded : True
Untuk menginstal Docker, lakukan hal berikut di server Windows Anda.
Aktifkan fitur penampung Microsoft Windows:
Install-WindowsFeature containers -Restart
Jalankan perintah berikut dalam mode Administrator PowerShell untuk menginstal Docker CE:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1 .\install-docker-ce.ps1
Uji antarmuka command line Docker dengan menjalankan perintah
docker ps
, yang menampilkan daftar container yang sedang berjalan. Jika Docker tidak diinstal dengan benar, akan muncul error.Untuk mengetahui informasi selengkapnya, lihat Memulai: Mempersiapkan Windows untuk container.
Untuk deployment perusahaan, instal Mirantis Container Runtime, yang juga dikenal sebagai Docker EE.
Langkah 3: Instal penerus
Bagian ini menjelaskan cara menginstal penerusan menggunakan container Docker.
Langkah 3a: Pindahkan file konfigurasi ke direktori penerusan
Langkah pertama dalam proses penginstalan penerusan melibatkan penempatan file konfigurasi yang diperlukan dalam direktori penerusan yang ditentukan.
Sistem Linux
Tempatkan file konfigurasi di direktori penerusan dengan mengikuti langkah-langkah berikut:
Hubungkan ke host penerusan Linux menggunakan terminal.
Ubah direktori ke direktori utama yang menjalankan penampung Docker.
Buat direktori untuk menyimpan file konfigurasi penerusan.
mkdir /opt/chronicle/'CONFIG'
Anda dapat mengganti nama direktori,
CONFIG
dengan nama apa pun yang Anda inginkan. Pastikan Anda menggunakan nama direktori yang sama saat menjalankan perintahdocker run
.Ubah direktori.
cd /opt/chronicle/config
Setelah file ditransfer, pastikan file konfigurasi berada di direktori
/opt/chronicle/config
.ls -l
Sistem Windows
Buat folder C:\config
dan letakkan file konfigurasi di dalamnya. Anda dapat
mengganti nama folder, config
, dengan nama pilihan Anda. Pastikan
Anda menggunakan nama folder yang sama saat menjalankan perintah docker run
.
Langkah 3b: Jalankan penerus
Setelah file konfigurasi ditempatkan dalam direktori penerusan yang ditentukan, Anda dapat memulai penerusan atau mengupgrade ke versi terbaru penampung Google SecOps.
Jika Anda mengupgrade container, bersihkan semua proses Docker sebelumnya dengan menjalankan perintah berikut.
docker stop 'cfps'
docker rm 'cfps'
Dalam contoh ini, nama container Docker adalah cfps
.
Untuk memulai penerusan untuk pertama kalinya atau mengupgrade ke versi terbaru penampung Google SecOps, lakukan hal berikut:
Dapatkan image Docker terbaru dari Google Cloud:
Sistem Linux:
docker pull gcr.io/chronicle-container/cf_production_stable
Sistem Windows:
docker pull gcr.io/chronicle-container/cf_production_stable_windows
Mulai penerusan dari container Docker:
Sistem Linux:
docker run \ --detach \ --name cfps \ --restart=always \ --log-opt max-size=100m \ --log-opt max-file=10 \ --net=host \ -v /opt/chronicle/config:/opt/chronicle/external \ gcr.io/chronicle-container/cf_production_stable -v /var/log/<parser-name>:/opt/chronicle/edr \
Sistem Windows:
docker run ` --detach ` --name cfps ` --restart=always ` --log-opt max-size=100m ` --log-opt max-file=10 ` -p 0.0.0.0:10515-10520:10515-10520/udp ` -v C:\config\:C:/opt/chronicle/external ` gcr.io/chronicle-container/cf_production_stable_windows
Opsi --log-opt
tersedia sejak Docker
1.13. Opsi ini membatasi ukuran file log penampung dan
harus digunakan selama versi Docker yang Anda gunakan mendukungnya.
Mengelola penerus
Bagian berikut memberikan panduan tentang cara mengelola penerusan.
Melihat log penerusan
Untuk melihat log penerusan, jalankan perintah berikut:
docker logs cfps
Untuk melihat jalur file tempat log disimpan, jalankan perintah berikut:
docker inspect --format='{{.LogPath}}' CONTAINER_NAME
Untuk melihat log yang berjalan secara langsung, jalankan perintah berikut:
docker logs cfps -f
Untuk menyimpan log dalam file, jalankan perintah berikut:
docker logs cfps &> logs.txt
Meng-uninstal penerus
Perintah Docker berikut membantu Anda menghentikan, meng-uninstal, atau menghapus penerusan.
Untuk menghentikan atau meng-uninstal container penerusan, jalankan perintah berikut:
docker stop cfps
Untuk menghapus container penerusan, jalankan perintah berikut:
docker rm cfps
Memperbarui penerusan
Forwarder terdiri dari dua komponen, yang masing-masing memiliki proses update sebagai berikut:
Paket Penerusan: Komponen ini diperbarui secara otomatis, sehingga tidak perlu dimulai ulang.
Image Docker penerusan: Update pada komponen ini dilakukan secara manual. Anda harus menghentikan instance penerusan saat ini dan memulai yang baru, seperti yang dijelaskan di Langkah 3b.
Panduan penyerapan penerusan untuk set data tertentu
Untuk mempelajari cara set data tertentu di-ingest menggunakan penerus, lihat berikut ini:
- Menginstal Carbon Black Event Forwarder
- Mengumpulkan log firewall Cisco ASA
- Mengumpulkan log Sensor Corelight
- Mengumpulkan log Fluentd
- Mengumpulkan log auditd Linux dan log sistem Unix
- Mengumpulkan data Microsoft Windows AD
- Mengumpulkan data DHCP Microsoft Windows
- Mengumpulkan data DNS Microsoft Windows
- Mengumpulkan data Peristiwa Microsoft Windows
- Mengumpulkan data Sysmon Microsoft Windows
- Mengumpulkan log osquery
- Mengumpulkan log OSSEC
- Mengumpulkan log firewall Palo Alto Networks
- Mengumpulkan log CIM Splunk
- Mengumpulkan log Zeek
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.