Menggunakan Firewall Rules Logging

Dengan Firewall Rules Logging, Anda dapat mengaudit, memverifikasi, dan menganalisis efek aturan firewall Anda. Misalnya, Anda dapat menentukan apakah aturan firewall yang dirancang untuk menolak traffic berfungsi sebagaimana mestinya. Logging juga berguna jika Anda perlu menentukan jumlah koneksi yang terpengaruh oleh aturan firewall tertentu.

Halaman ini menunjukkan cara mengaktifkan dan menonaktifkan logging untuk aturan firewall Virtual Private Cloud. Untuk mengetahui petunjuk cara melakukan logging pada aturan kebijakan firewall, baca Menggunakan kebijakan dan aturan firewall hierarkis.

Halaman ini juga menunjukkan cara melihat log yang dihasilkan. Untuk mengetahui informasi lebih lanjut mengenai apa saja yang dicatat ke dalam log, contoh logging, dan format log, lihat Logging Aturan Firewall.

Jika mengaktifkan logging pada aturan firewall, Anda dapat melihat insight dan rekomendasi untuknya dari Analisis Firewall. Untuk mengetahui informasi selengkapnya, lihat Analisis Firewall dalam dokumentasi Network Intelligence Center.

Izin

Untuk mengubah aturan firewall atau mengakses log, akun utama IAM memerlukan salah satu peran berikut.

Tugas Peran yang Diperlukan
Membuat, menghapus, atau memperbarui aturan firewall Pemilik atau editor project atau Security Admin
Lihat Log Pemilik, editor, atau penampil project atau Logs Viewer
Lihat Panduan Kontrol Akses Logging untuk mengetahui detail tentang peran dan izin Logging IAM.

Mengaktifkan dan menonaktifkan Firewall Rules Logging

Saat membuat aturan firewall, Anda dapat memilih untuk mengaktifkan logging aturan firewall. Untuk mengetahui informasi selengkapnya, lihat Membuat aturan firewall.

Untuk mengaktifkan atau menonaktifkan Firewall Rules Logging untuk aturan firewall yang ada, ikuti petunjuk berikut. Saat mengaktifkan logging, Anda dapat mengontrol apakah kolom metadata disertakan atau tidak. Jika mengabaikannya, Anda dapat menghemat biaya penyimpanan.

Aktifkan Firewall Rules Logging

Konsol

  1. Di Konsol Google Cloud, buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Di kolom Logs, tentukan apakah logging firewall aktif atau nonaktif untuk setiap aturan firewall.

  3. Guna mengaktifkan logging untuk satu atau beberapa aturan firewall, pilih kotak centang di samping setiap aturan yang ingin Anda perbarui.

  4. Di panel tindakan Aturan firewall VPC, klik Configure logs.

  5. Pada dialog Configure logs, pilih On.

  6. Untuk menghapus kolom metadata, luaskan Show logs details, lalu hapus centang pada kotak Include metadata.

  7. Klik Simpan konfigurasi.

gcloud

gcloud compute firewall-rules update RULE_NAME \
    --enable-logging \
    --logging-metadata=LOGGING_METADATA

Ganti kode berikut:

  • RULE_NAME: nama aturan firewall.
  • LOGGING_METADATA: apakah Firewall Rules Logging menyertakan kolom metadata di log aturan firewall. Anda dapat mengonfigurasi kolom ini hanya jika logging diaktifkan. Nilainya harus exclude-all atau include-all. Secara default, kolom metadata disertakan.

Untuk mengetahui informasi selengkapnya, baca dokumentasi referensi SDK.

Terraform

Anda dapat menggunakan resource Terraform untuk membuat aturan firewall dengan logging yang diaktifkan.

resource "google_compute_firewall" "rules" {
  project     = var.project_id # Replace this with your project ID in quotes
  name        = "my-firewall-rule"
  network     = "default"
  description = "Creates firewall rule targeting tagged instances"

  log_config {
    metadata = "INCLUDE_ALL_METADATA"
  }

  allow {
    protocol = "tcp"
    ports    = ["80", "8080", "1000-2000"]
  }
  target_tags = ["web"]
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

API

Aktifkan Firewall Rules Logging untuk aturan firewall yang ada.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
  "name": "RULE_NAME,
  "logConfig": {
    "enable": true,
    "metadata": LOGGING_METADATA
  }
}

Ganti placeholder dengan nilai yang valid:

  • PROJECT_ID: ID project tempat aturan firewall berada.
  • RULE_NAME: nama aturan firewall.
  • LOGGING_METADATA: apakah Firewall Rules Logging menyertakan kolom metadata di log aturan firewall. Anda dapat mengonfigurasi kolom ini hanya jika logging diaktifkan. Nilainya harus exclude-all atau include-all. Secara default, kolom metadata disertakan.

Untuk informasi selengkapnya, lihat metode firewalls.patch.

Nonaktifkan Firewall Rules Logging

Konsol

  1. Di Konsol Google Cloud, buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Di kolom Logs, tentukan apakah logging firewall aktif atau nonaktif untuk setiap aturan firewall.

  3. Untuk menonaktifkan logging untuk satu atau beberapa aturan firewall, pilih kotak centang di samping setiap aturan yang ingin Anda perbarui.

  4. Di panel tindakan Aturan firewall VPC, klik Configure logs.

  5. Dalam dialog Configure logs, pilih Off, lalu klik Save configuration.

gcloud

gcloud compute firewall-rules update RULE_NAME \
    --no-enable-logging

Ganti RULE_NAME dengan nama aturan firewall.

API

Nonaktifkan Firewall Rules Logging untuk aturan firewall yang ada.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
  "name": "RULE_NAME,
  "logConfig": {
    "enable": false
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project tempat aturan firewall berada.
  • RULE_NAME: nama aturan firewall.

Untuk informasi selengkapnya, lihat metode firewalls.patch.

Lihat log

Log aturan firewall dibuat di project yang menghosting jaringan yang berisi instance VM dan aturan firewall. Dengan VPC Bersama, instance VM dibuat di project layanan, tetapi menggunakan Jaringan VPC Bersama yang terletak di project host. Log aturan firewall disimpan dalam project host tersebut.

Untuk melihat log aturan firewall, gunakan bagian Logs Explorer di Konsol Google Cloud.

Kueri berikut menunjukkan cara mencari peristiwa firewall tertentu.

Lihat semua log firewall

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Resource.

  3. Di daftar Select resource, klik Subnetwork, lalu klik Apply.

  4. Klik Log name, lalu pilih firewall pada daftar.

  5. Klik Terapkan.

Sebagai alternatif:

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Kueri.

  3. Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.

  4. Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti PROJECT_ID dengan project ID Anda.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    
  5. Klik Jalankan kueri.

Melihat log untuk subnet tertentu

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Resource.

  3. Di daftar Select resource, klik Subnetwork.

  4. Pilih subnetwork yang lognya ingin Anda lihat, lalu klik Apply.

  5. Klik Log name, lalu pilih firewall pada daftar.

  6. Klik Terapkan.

Sebagai alternatif:

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Kueri.

  3. Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.

  4. Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti PROJECT_ID dengan project ID Anda dan SUBNET_NAME dengan subnetwork Anda.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    resource.labels.subnetwork_name="SUBNET_NAME"
    
  5. Klik Jalankan kueri.

Melihat log di VM tertentu

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Resource.

  3. Pada daftar Select resource, klik VM instance.

  4. Pilih instance yang lognya ingin Anda lihat, lalu klik Apply.

  5. Klik Log name, lalu pilih firewall pada daftar.

  6. Klik Terapkan.

Sebagai alternatif:

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Kueri.

  3. Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.

  4. Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti PROJECT_ID dengan project ID Anda dan INSTANCE_ID dengan ID VM yang ingin Anda lihat lognya.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_ID"
    
  5. Klik Jalankan kueri.

Melihat log untuk koneksi dari negara tertentu

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Klik Kueri.

  3. Jika Anda tidak melihat kolom editor kueri di panel Query, klik tombol Show query.

  4. Tempel perintah berikut ke dalam kolom editor kueri di panel Query. Ganti PROJECT_ID dengan project ID Anda dan COUNTRY dengan kode ISO 3166-1alpha-3.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.remote_location.country=COUNTRY
    

Ekspor log

Untuk mengekspor log aturan firewall, lihat Mengonfigurasi dan mengelola sink.

Anda dapat menggunakan contoh kueri untuk mempersempit log yang diekspor.

Tabel interaksi

  • Dalam kasus komunikasi VM-ke-VM, data log dapat dihasilkan oleh kedua VM, bergantung pada aturan firewall-nya masing-masing.
  • Koneksi yang dicatat ke dalam log mencakup paket yang mengalir dengan dua arah jika paket awal diizinkan oleh firewall.
  • Untuk VM tertentu, koneksi masuk dicocokkan dengan aturan firewall yang dikonfigurasi pada VM tersebut, dan koneksi keluar dicocokkan dengan aturan firewall keluar yang dikonfigurasi pada VM tersebut.
  • Koneksi yang diizinkan yang cocok dengan aturan firewall dengan izin "izinkan dan logging" hanya dicatat satu kali. Entri log tidak diulang setiap 5 detik meskipun koneksi bertahan.
  • Koneksi yang ditolak yang cocok dengan aturan firewall dengan "denied and logging" akan mengulangi entri log setiap 5 detik selama ada paket yang terdeteksi dalam koneksi yang ditolak tersebut.

Tabel ini menampilkan perilaku logging firewall dari perspektif satu VM.

Dalam skenario di mana VM1 memiliki aturan masuk R1 yang cocok dengan paket dan aturan keluar R2 yang juga cocok dengan paket, perilaku logging firewall adalah sebagai berikut:

VM1 memiliki Aturan Ingress R1 (paket yang cocok) VM1 memiliki Aturan Keluar R2 (paket yang cocok) Arah Koneksi Tindakan Log
Izinkan + Catat Izinkan Masuk Izinkan Satu entri log:
disposition=allow, rule=R1
Tolak
Izinkan + Catat
Tolak + Catat
Izinkan Izinkan Masuk Izinkan Tanpa logging
Tolak
Izinkan + Catat
Tolak + Catat
Tolak + Catat T/A Masuk Tolak Satu entri log setiap 5 detik:
disposition=deny, rule=R1
Tolak T/A Masuk Tolak Tanpa logging
Izinkan Izinkan + Catat Traffic Keluar Izinkan Satu entri log:
disposition=allow, rule=R2
Tolak
Izinkan + Catat
Tolak + Catat
Izinkan Izinkan Traffic Keluar Izinkan Tidak Ada Pencatatan Log
Tolak
Izinkan + Catat
Tolak + Catat
T/A Tolak + Catat Traffic Keluar Tolak Satu entri log setiap 5 detik:
disposition=deny, rule=R2
T/A Tolak Traffic Keluar Tolak Tanpa logging

Perhatikan bahwa traffic masuk dan keluar bersifat simetris.

Berikut adalah deskripsi mendetail tentang semantik log firewall:

  • Izinkan + Log (logging hanya didukung untuk TCP dan UDP)

    • Koneksi yang dimulai sesuai arah penerapan aturan akan menyebabkan pembuatan satu data log.
    • Traffic balasan diizinkan karena pelacakan koneksi. Traffic balasan tidak menyebabkan logging apa pun terjadi, terlepas dari aturan firewall dalam arah tersebut.
    • Jika masa berlaku koneksi habis dari firewall (tidak aktif selama 10 menit atau TCP RST diterima), paket lain di kedua arah tersebut dapat memicu logging.
    • Logging didasarkan pada 5 tuple. Flag TCP tidak memengaruhi perilaku logging.
  • Deny + Log (logging hanya didukung untuk TCP dan UDP)

    • Paket dihapus (tidak ada koneksi yang dimulai).
    • Setiap paket yang sesuai dengan 5-tuple unik dicatat sebagai upaya koneksi yang gagal.
    • 5 tuple yang sama akan dicatat ke dalam log lagi setiap 5 detik jika terus menerima paket.

Pemecahan masalah

Tidak dapat melihat log

Jika Anda tidak dapat melihat log aturan firewall di bagian Logs Explorer pada Konsol Google Cloud, periksa hal berikut:

Kemungkinan penyebab: Izin tidak memadai

Minta pemilik project untuk memastikan akun utama IAM Anda setidaknya memiliki peran Logs Viewer untuk project. Lihat izin untuk informasi selengkapnya.
Kemungkinan penyebab: Jaringan lama tidak didukung
Anda tidak dapat menggunakan Logging Aturan Firewall di jaringan lama. Hanya jaringan VPC yang didukung.
Kemungkinan penyebab: Pastikan Anda melihat project yang benar
Karena log aturan firewall disimpan dengan project yang berisi jaringan, pastikan Anda mencari log di project yang tepat. Dengan VPC Bersama, instance VM dibuat di project layanan, tetapi menggunakan Jaringan VPC Bersama yang terletak di project host. Untuk skenario VPC Bersama, log aturan firewall disimpan dalam project host tersebut.

Jika VPC Bersama terlibat, Anda memerlukan izin yang sesuai untuk project host agar dapat melihat log aturan firewall. Meskipun instance VM itu sendiri berada di project layanan, log aturan firewall untuk instance VM tersebut berada di project host.

Entri log tidak ada

Kemungkinan penyebab: Koneksi mungkin tidak cocok dengan aturan firewall yang Anda harapkan

Pastikan aturan firewall yang Anda harapkan ada dalam daftar aturan firewall yang berlaku untuk sebuah instance. Gunakan konsol Google Cloud untuk melihat detail instance yang relevan, lalu klik tombol View details di bagian Network interface di halaman VM instance details. Periksa aturan firewall yang berlaku di bagian Firewall and routes details pada halaman Network interface details.

Untuk memastikan Anda membuat aturan firewall dengan benar, tinjau aturan firewall VPC.

Anda dapat menggunakan tcpdump pada VM untuk menentukan apakah koneksi yang dikirim atau diterimanya memiliki alamat, port, dan protokol yang cocok dengan firewall yang Anda harapkan.

Kemungkinan penyebab: Aturan prioritas yang lebih tinggi dengan Firewall Rules Logging yang dinonaktifkan mungkin berlaku

Aturan firewall dievaluasi sesuai dengan prioritasnya. Dari perspektif instance VM, hanya satu aturan firewall yang diterapkan ke traffic.

Aturan yang menurut Anda akan menjadi aturan prioritas tertinggi yang berlaku mungkin sebenarnya bukan aturan prioritas tertinggi yang berlaku. Aturan prioritas lebih tinggi yang tidak mengaktifkan logging mungkin dapat diterapkan.

Untuk memecahkan masalah, Anda dapat mengaktifkan logging sementara untuk semua aturan firewall yang mungkin yang berlaku untuk VM. Gunakan konsol Google Cloud untuk melihat detail VM yang relevan, lalu klik tombol View details di bagian Network interface di halaman VM instance details. Periksa aturan firewall yang berlaku di bagian Detail firewall dan rute pada halaman Detail antarmuka jaringan VM, dan identifikasi aturan khusus Anda dalam daftar tersebut. Aktifkan logging untuk semua aturan firewall kustom tersebut untuk sementara.

Dengan mengaktifkan logging, Anda dapat mengidentifikasi aturan yang berlaku. Setelah diidentifikasi, pastikan untuk menonaktifkan logging untuk semua aturan yang tidak benar-benar membutuhkannya.

Metadata untuk beberapa entri log tidak ada

Kemungkinan penyebab: Penundaan propagasi konfigurasi

Jika Anda memperbarui aturan firewall yang mengaktifkan logging firewall, mungkin perlu waktu beberapa menit sebelum Google Cloud selesai menerapkan perubahan yang diperlukan untuk mencatat traffic yang cocok dengan komponen aturan yang diperbarui.

Langkah selanjutnya