Menggunakan Firewall Rules Logging

Logging Aturan Firewall memungkinkan Anda 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 petunjuk tentang logging untuk aturan kebijakan firewall, lihat Menggunakan kebijakan dan aturan firewall hierarkis.

Halaman ini juga menunjukkan cara melihat log yang dihasilkan. Untuk mengetahui informasi selengkapnya tentang hal yang dicatat ke dalam log, contoh logging, dan format log, lihat Logging Aturan Firewall.

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

Izin

Untuk mengubah aturan firewall atau log akses, 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 pelihat project atau Pelihat Log
Lihat Panduan Kontrol Akses Logging untuk mengetahui detail tentang peran dan izin IAM Logging.

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 Logging Aturan Firewall untuk aturan firewall yang ada, ikuti petunjuk berikut. Saat mengaktifkan logging, Anda dapat mengontrol apakah kolom metadata disertakan. Jika Anda menghapusnya, Anda dapat menghemat biaya penyimpanan.

Mengaktifkan 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 mengaktifkan logging untuk satu atau beberapa aturan firewall, centang kotak di samping setiap aturan yang ingin Anda perbarui.

  4. Di panel tindakan Aturan firewall VPC, klik Konfigurasikan log.

  5. Di dialog Configure logs, pilih On.

  6. Untuk menghapus kolom metadata, luaskan Tampilkan detail log, lalu hapus centang pada kotak Sertakan 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 dalam log aturan firewall. Anda hanya dapat mengonfigurasi kolom ini jika logging diaktifkan. Nilainya harus berupa exclude-all atau include-all. Secara default, kolom metadata disertakan.

Untuk mengetahui informasi selengkapnya, lihat 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 Logging Aturan Firewall 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 dalam log aturan firewall. Anda hanya dapat mengonfigurasi kolom ini jika logging diaktifkan. Nilainya harus berupa exclude-all atau include-all. Secara default, kolom metadata disertakan.

Untuk informasi selengkapnya, lihat metode firewalls.patch.

Menonaktifkan 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, centang kotak di samping setiap aturan yang ingin Anda perbarui.

  4. Di panel tindakan Aturan firewall VPC, klik Konfigurasikan log.

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

gcloud

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

Ganti RULE_NAME dengan nama aturan firewall.

API

Menonaktifkan Logging Aturan Firewall 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 instance tersebut menggunakan Jaringan VPC Bersama yang berada di project host. Log aturan firewall disimpan di project host tersebut.

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

Kueri berikut menunjukkan cara menelusuri peristiwa firewall tertentu.

Melihat 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 di daftar, pilih firewall.

  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 Kueri, klik tombol Show query.

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

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

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 subnet yang log-nya ingin Anda lihat, lalu klik Terapkan.

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

  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 Kueri, klik tombol Show query.

  4. Tempel perintah berikut ke dalam kolom editor kueri di panel Kueri. 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 Run query.

Melihat log di VM tertentu

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

    Buka Logs Explorer

  2. Klik Resource.

  3. Di daftar Select resource, klik VM instance.

  4. Pilih instance yang log-nya ingin Anda lihat, lalu klik Terapkan.

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

  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 Kueri, klik tombol Show query.

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

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

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 Kueri, klik tombol Show query.

  4. Tempel perintah berikut ke dalam kolom editor kueri di panel Kueri. 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 dibuat oleh kedua VM, bergantung pada aturan firewall masing-masing.
  • Koneksi yang dicatat ke dalam log mencakup paket yang mengalir dua arah jika paket awal diizinkan oleh firewall.
  • Untuk VM tertentu, koneksi masuk dicocokkan dengan aturan firewall yang dikonfigurasi di VM tersebut dan koneksi keluar dicocokkan dengan aturan firewall keluar yang dikonfigurasi di VM tersebut.
  • Koneksi yang diizinkan yang cocok dengan aturan firewall dengan "izinkan dan catat ke dalam log" hanya dicatat ke dalam log satu kali. Entri log tidak diulang setiap 5 detik meskipun koneksi tetap ada.
  • Koneksi yang ditolak yang cocok dengan aturan firewall dengan "ditolak dan logging" akan mengulangi entri log setiap 5 detik selama ada paket yang diamati dalam koneksi yang ditolak tersebut.

Tabel ini menunjukkan perilaku logging firewall dari perspektif VM tunggal.

Dalam skenario saat 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 Traffic Masuk 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 Keluar Izinkan Satu entri log:
disposition=allow, rule=R2
Tolak
Izinkan + Catat
Tolak + Catat
Izinkan Izinkan Keluar Izinkan Tanpa Logging
Tolak
Izinkan + Catat
Tolak + Catat
T/A Tolak + Catat Keluar Tolak Satu entri log setiap 5 detik:
disposition=deny, rule=R2
T/A Tolak Keluar Tolak Tanpa logging

Perhatikan bahwa traffic masuk dan keluar bersifat simetris.

Berikut adalah deskripsi mendetail tentang semantik log firewall:

  • Izinkan + Catat (pencatatan log hanya didukung untuk TCP dan UDP)

    • Koneksi yang dimulai dalam arah yang diterapkan aturan akan menyebabkan satu data log dibuat.
    • Traffic balasan diizinkan karena pelacakan koneksi. Traffic balasan tidak menyebabkan logging terjadi, terlepas dari aturan firewall di arah tersebut.
    • Jika koneksi berakhir dari firewall (tidak aktif selama 10 menit atau TCP RST diterima), paket lain dalam salah satu arah dapat memicu logging.
    • Logging didasarkan pada 5 tuple. Flag TCP tidak memengaruhi perilaku logging.
  • Menolak + Mencatat (pencatatan hanya didukung untuk TCP dan UDP)

    • Paket dihapus (tidak ada koneksi yang dimulai).
    • Setiap paket yang sesuai dengan 5-tuple unik akan dicatat ke dalam log sebagai upaya koneksi yang gagal.
    • 5-tuple yang sama dicatat 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 tersebut. Lihat izin untuk mengetahui informasi selengkapnya.
Kemungkinan penyebab: Jaringan lama tidak didukung
Anda tidak dapat menggunakan Firewall Rules Logging di jaringan lama. Hanya jaringan VPC yang didukung.
Kemungkinan penyebab: Pastikan Anda mencari di project yang benar
Karena log aturan firewall disimpan dengan project yang berisi jaringan, penting untuk memastikan Anda mencari log di project yang benar. Dengan VPC Bersama, instance VM dibuat di project layanan, tetapi menggunakan jaringan VPC Bersama yang berada di project host. Untuk skenario VPC Bersama, log aturan firewall disimpan di 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 untuknya 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 instance. Gunakan konsol Google Cloud untuk melihat detail untuk instance yang relevan, lalu klik tombol Lihat detail di bagian Network interface di halaman VM instance details. Periksa aturan firewall yang berlaku di bagian Firewall and routes details di halaman Network interface details VM.

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

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

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

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

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

Untuk memecahkan masalah, Anda dapat mengaktifkan logging untuk semua kemungkinan aturan firewall yang berlaku untuk VM. Gunakan konsol Google Cloud untuk melihat detail VM yang relevan, lalu klik tombol Lihat detail 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 VM, dan identifikasi aturan kustom 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 sebenarnya tidak memerlukannya.

Metadata tidak ada untuk beberapa entri log

Kemungkinan penyebab: Penundaan penerapan konfigurasi

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

Langkah selanjutnya