Menginstal dan mengonfigurasi penerus

Didukung di:

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:
  • Pemeriksaan kesiapan diterima dari penjadwal atau pengelola container.
  • Health check diterima dari load balancer.
Default: 204
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:

  1. Klik Mulai.

  2. Ketik PowerShell, lalu klik kanan Windows PowerShell.

  3. Klik Run as administrator.

  4. Jalankan perintah berikut:

    C:\> test-netconnection <host> -port <port>
    

    Output perintah menunjukkan bahwa status TcpTestSucceeded adalah true.

    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.

  1. Aktifkan fitur penampung Microsoft Windows:

    Install-WindowsFeature containers -Restart
    
  2. 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
    
    
  3. 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:

  1. Hubungkan ke host penerusan Linux menggunakan terminal.

  2. Ubah direktori ke direktori utama yang menjalankan penampung Docker.

  3. 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 perintah docker run.

  4. Ubah direktori.

      cd /opt/chronicle/config
    

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

  1. 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
    
  2. 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:

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.