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 Aturan Firewall juga berguna jika Anda perlu menentukan berapa banyak koneksi yang terpengaruh oleh aturan firewall tertentu.

Aktifkan Firewall Rules Logging satu per satu untuk setiap aturan firewall yang koneksinya perlu Anda catat. Firewall Rules Logging adalah opsi untuk setiap aturan firewall, terlepas dari tindakan (allow atau deny) atau arah (masuk atau keluar) aturan tersebut.

Firewall Rules Logging mencatat traffic ke dan dari instance virtual machine (VM) Compute Engine. Hal ini mencakup produk Google Cloud yang di-build di VM Compute Engine, seperti instance cluster Google Kubernetes Engine (GKE) dan lingkungan fleksibel App Engine.

Saat Anda mengaktifkan logging untuk aturan firewall, Google Cloud akan membuat entri yang disebut data koneksi setiap kali aturan mengizinkan atau menolak traffic. Anda dapat melihat data ini di Cloud Logging, dan mengekspor log ke tujuan mana pun yang didukung ekspor Cloud Logging.

Setiap data koneksi berisi alamat IP sumber dan tujuan, protokol dan port, tanggal dan waktu, serta referensi ke aturan firewall yang diterapkan ke traffic.

Logging Aturan Firewall tersedia untuk aturan firewall VPC dan kebijakan firewall hierarkis.

Untuk informasi tentang cara melihat log, lihat Menggunakan Logging Aturan Firewall.

Spesifikasi

Firewall Rules Logging memiliki spesifikasi berikut:

Contoh logging

Entri log dibuat setiap kali aturan firewall dengan logging yang diaktifkan diterapkan ke traffic. Total aliran paket tertentu dapat menghasilkan lebih dari satu entri log. Namun, dari perspektif VM tertentu, maksimal hanya satu entri log yang dapat dibuat jika aturan firewall yang berlaku untuknya mengaktifkan logging.

Contoh berikut menunjukkan cara kerja log firewall.

Contoh penolakan traffic keluar

Dalam contoh ini:

  • Traffic antara instance VM di jaringan VPC example-net dalam project example-proj dipertimbangkan.
  • Kedua instance VM tersebut adalah:
    • VM1 di zona us-west1-a dengan alamat IP 10.10.0.99 di west-subnet (region us-west1).
    • VM2 di zona us-east1-b dengan alamat IP 10.20.0.99 di east-subnet (region us-east1).
  • Aturan A: Aturan firewall tolak keluar memiliki target semua instance di jaringan, tujuan 10.20.0.99 (VM2), dan berlaku untuk port TCP 80.
    • Logging diaktifkan untuk aturan ini.
  • Aturan B: Aturan firewall izin masuk memiliki target semua instance di jaringan, sumber 10.10.0.99 (VM1), dan berlaku untuk port TCP 80.
    • Logging juga diaktifkan untuk aturan ini.

Perintah gcloud berikut dapat digunakan untuk membuat aturan firewall:

  • Aturan A: aturan tolak keluar untuk TCP 80, berlaku untuk semua instance, tujuan 10.20.0.99:

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action deny \
        --direction egress \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Aturan B: aturan izin masuk untuk TCP 80, berlaku untuk semua instance, sumber 10.10.0.99:

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction ingress \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
Koneksi VM1 ke VM2.
Koneksi VM1 ke VM2 (klik untuk memperbesar).

Misalkan VM1 mencoba terhubung ke VM2 di port TCP 80. Aturan firewall berikut dicatat ke dalam log:

  • Entri log untuk aturan A dari perspektif VM1 dihasilkan saat VM1 mencoba terhubung ke 10.20.0.99 (VM2).
  • Karena aturan A benar-benar memblokir traffic, aturan B tidak pernah dipertimbangkan, sehingga tidak ada entri log untuk aturan B dari perspektif VM2.

Data log firewall dibuat dalam contoh berikut.

Kolom Nilai
koneksi src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposisi DITOLAK
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = DENY
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Tidak ada informasi. Kolom ini hanya digunakan jika tujuan berada di luar jaringan VPC Anda.

Contoh izinkan traffic keluar, izinkan traffic masuk

Dalam contoh ini:

  • Traffic antara instance VM di jaringan VPC example-net dalam project example-proj dipertimbangkan.
  • Kedua instance VM tersebut adalah:
    • VM1 di zona us-west1-a dengan alamat IP 10.10.0.99 di west-subnet (region us-west1).
    • VM2 di zona us-east1-b dengan alamat IP 10.20.0.99 di east-subnet (region us-east1).
  • Aturan A: Aturan firewall izinkan keluar memiliki target semua instance di jaringan, tujuan 10.20.0.99 (VM2), dan berlaku untuk TCP port 80.
    • Logging diaktifkan untuk aturan ini.
  • Aturan B: Aturan firewall izin masuk memiliki target semua instance di jaringan, sumber 10.10.0.99 (VM1), dan berlaku untuk port TCP 80.
    • Logging juga diaktifkan untuk aturan ini.

Perintah gcloud berikut dapat digunakan untuk membuat dua aturan firewall:

  • Aturan A: aturan izin keluar untuk TCP 80, berlaku untuk semua instance, tujuan 10.20.0.99 (VM2):

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action allow \
        --direction egress \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Aturan B: aturan izin masuk untuk TCP 80, berlaku untuk semua instance, sumber 10.10.0.99 (VM1):

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction ingress \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
Koneksi VM1 ke VM2.
Koneksi VM1 ke VM2 (klik untuk memperbesar).

Misalkan VM1 mencoba terhubung ke VM2 di port TCP 80. Aturan firewall berikut dicatat ke dalam log:

  • Entri log untuk aturan A dari perspektif VM1 dibuat saat VM1 terhubung ke 10.20.0.99 (VM2).
  • Entri log untuk aturan B dari perspektif VM2 dibuat karena VM2 mengizinkan koneksi masuk dari 10.10.0.99 (VM1).

Data log firewall yang dilaporkan oleh VM1 dibuat dalam contoh berikut.

Kolom Nilai
koneksi src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposisi DIIZINKAN
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = ALLOW
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Tidak ada informasi. Kolom ini hanya digunakan jika tujuan berada di luar jaringan VPC Anda.

Data log firewall yang dilaporkan oleh VM2 dibuat dalam contoh berikut.

Kolom Nilai
koneksi src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposisi DIIZINKAN
rule_details reference = "network:example-net/firewall:rule-b"
priority = 10
action = ALLOW
source_range = 10.10.0.99/32
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location Tidak ada informasi. Kolom ini hanya digunakan jika tujuan berada di luar jaringan VPC Anda.

Contoh traffic masuk internet

Dalam contoh ini:

  • Traffic dari sistem di luar jaringan VPC example-net ke instance VM di jaringan tersebut akan dipertimbangkan. Jaringan berada di project example-proj.
  • Sistem di internet memiliki alamat IP 203.0.113.114.
  • VM1 di zona us-west1-a memiliki alamat IP 10.10.0.99 di west-subnet (region us-west1).
  • Aturan C: Aturan firewall izin masuk memiliki target semua instance di jaringan, sumber alamat IP apa pun (0.0.0.0/0), dan berlaku untuk TCP port 80.
    • Logging diaktifkan untuk aturan ini.
  • Aturan D: Aturan firewall tolak keluar memiliki target semua instance di jaringan, tujuan alamat IP mana pun (0.0.0.0/0), dan berlaku untuk semua protokol.
    • Logging juga diaktifkan untuk aturan ini.

Perintah gcloud berikut dapat digunakan untuk membuat aturan firewall:

  • Aturan C: aturan izin masuk untuk TCP 80, berlaku untuk semua instance, sumber apa pun:

    gcloud compute firewall-rules create rule-c \
        --network example-net \
        --action allow \
        --direction ingress \
        --rules tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
  • Aturan D: aturan penolakan keluar untuk semua protokol, berlaku untuk semua instance, tujuan apa pun:

    gcloud compute firewall-rules create rule-d \
        --network example-net \
        --action deny \
        --direction egress \
        --rules all \
        --destination-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
Koneksi internet ke VM.
Koneksi internet ke VM (klik untuk memperbesar).

Misalkan sistem dengan alamat IP 203.0.113.114 mencoba terhubung ke VM1 di port TCP 80. Hal berikut akan terjadi:

  • Entri log untuk aturan C dari perspektif VM1 dibuat saat VM1 menerima traffic dari 203.0.113.114.
  • Meskipun ada aturan D, VM1 diizinkan untuk membalas permintaan masuk karena aturan firewall Google Cloud bersifat stateful. Jika permintaan masuk diizinkan, respons yang ditetapkan tidak dapat diblokir oleh jenis aturan keluar apa pun.
  • Karena tidak berlaku, aturan D tidak pernah dipertimbangkan, sehingga tidak ada entri log untuk aturan D.

Data log firewall dibuat dalam contoh berikut.

Kolom Nilai
koneksi src_ip=203.0.113.114
src_port=[EPHEMERAL_PORT]
dest_ip=10.10.0.99
dest_port=80
protocol=6
disposisi DIIZINKAN
rule_details reference = "network:my-vpc/firewall:rule-c"
priority = 10
action = ALLOW
source_range = 0.0.0.0/0
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location benua
negara
wilayah
kota

Format log firewall

Tergantung pada spesifikasi, entri log dibuat di Cloud Logging untuk setiap aturan firewall yang telah mengaktifkan logging jika aturan tersebut berlaku untuk traffic ke atau dari instance VM. Kumpulan data log disertakan dalam kolom payload JSON dari Logging LogEntry.

Data log berisi kolom dasar, yang merupakan kolom inti dari setiap data log, dan kolom metadata yang menambahkan informasi tambahan. Anda dapat mengontrol apakah kolom metadata disertakan. Jika Anda menghapusnya, Anda dapat menghemat biaya penyimpanan.

Beberapa kolom log mendukung nilai yang juga merupakan kolom. Kolom ini dapat memiliki lebih dari satu bagian data dalam kolom tertentu. Misalnya, kolom connection memiliki format IpConnection, yang berisi alamat IP dan port sumber dan tujuan, serta protokol, dalam satu kolom. Kolom ini dijelaskan dalam tabel berikut.

Kolom Deskripsi Jenis kolom: Metadata dasar atau opsional
koneksi IpConnection
5-Tuple yang menjelaskan alamat IP sumber dan tujuan, port sumber dan tujuan, serta protokol IP koneksi ini.
Dasar
disposisi string
Menunjukkan apakah koneksi adalah ALLOWED atau DENIED.
Dasar
rule_details RuleDetails
Detail aturan yang diterapkan ke koneksi ini.
Kolom rule_details.reference Dasar
Kolom detail aturan lainnya Metadata
instance InstanceDetails
Detail instance VM. Dalam konfigurasi VPC Bersama, project_id berkorespondensi dengan project layanan.
Metadata
vpc VpcDetails
Detail jaringan VPC. Dalam konfigurasi VPC Bersama, project_id berkorespondensi dengan project host.
Metadata
remote_instance InstanceDetails
Jika endpoint jarak jauh koneksi adalah VM yang terletak di Compute Engine, kolom ini akan diisi dengan detail instance VM.
Metadata
remote_vpc VpcDetails
Jika endpoint jarak jauh koneksi adalah VM yang terletak di jaringan VPC, kolom ini akan diisi dengan detail jaringan.
Metadata
remote_location GeographicDetails
Jika endpoint jarak jauh koneksi berada di luar jaringan VPC, kolom ini akan diisi dengan metadata lokasi yang tersedia.
Metadata

IpConnection

Kolom Jenis Deskripsi
src_ip string Alamat IP sumber. Jika sumbernya adalah VM Compute Engine, src_ip adalah alamat IP internal utama atau alamat dalam rentang IP alias antarmuka jaringan VM. Alamat IP eksternal tidak ditampilkan. Logging menampilkan alamat IP VM seperti yang dilihat VM pada header paket, sama seperti saat Anda menjalankan TCP dump di VM.
src_port bilangan bulat Port sumber
dest_ip string Alamat IP tujuan. Jika tujuannya adalah VM Google Cloud, dest_ip adalah alamat IP internal utama atau alamat dalam rentang IP alias antarmuka jaringan VM. Alamat IP eksternal tidak ditampilkan meskipun digunakan untuk membuat koneksi.
dest_port bilangan bulat Port tujuan
protokol bilangan bulat Protokol IP koneksi

RuleDetails

Kolom Jenis Deskripsi
referensi string Referensi ke aturan firewall; format:
"network:{network name}/firewall:{firewall_name}"
priority bilangan bulat Prioritas untuk aturan firewall.
action string IZINKAN atau TOLAK
source_range[ ] string Daftar rentang sumber tempat aturan firewall diterapkan.
destination_range[ ] string Daftar rentang tujuan yang menerapkan aturan firewall.
ip_port_info[ ] IpPortDetails Daftar protokol IP dan rentang port yang berlaku untuk aturan.
direction string Arah penerapan aturan firewall (masuk atau keluar).
source_tag[ ] string Daftar semua tag sumber yang menjadi sasaran aturan firewall.
target_tag[ ] string Daftar semua tag target yang diterapkan aturan firewall.
source_service_account[ ] string Daftar semua akun layanan sumber yang menjadi sasaran aturan firewall.
target_service_account[ ] string Daftar semua akun layanan target yang menjadi sasaran aturan firewall.
source_region_code[ ] string Daftar semua kode negara sumber yang menerapkan aturan firewall.
destination_region_code[ ] string Daftar semua kode negara tujuan yang diterapkan aturan firewall.
source_fqdn[ ] string Daftar semua nama domain sumber yang menjadi sasaran aturan firewall.
destination_fqdn[ ] string Daftar semua nama domain tujuan yang menjadi sasaran aturan firewall.
source_threat_intelligence[ ] string Daftar semua nama daftar Google Threat Intelligence sumber yang menjadi tempat aturan firewall diterapkan.
destination_threat_intelligence[ ] string Daftar semua nama daftar Kecerdasan Ancaman Google tujuan tempat aturan firewall diterapkan.
source_address_groups[ ] string Daftar semua grup alamat sumber yang menjadi sasaran aturan firewall.
destination_address_groups[ ] string Daftar semua grup alamat tujuan yang menjadi sasaran aturan firewall.

IpPortDetails

Kolom Jenis Deskripsi
ip_protocol string Protokol IP yang menjadi target aturan firewall. "ALL" jika berlaku untuk semua protokol.
port_range[ ] string Daftar rentang port yang berlaku untuk aturan; misalnya, 8080-9090.

InstanceDetails

Kolom Jenis Deskripsi
project_id string ID project yang berisi VM
vm_name string Nama instance VM
region string Region VM
zona string Zona VM

VpcDetails

Kolom Jenis Deskripsi
project_id string ID project yang berisi jaringan
vpc_name string Jaringan tempat VM beroperasi
subnetwork_name string Subnet tempat VM beroperasi

GeographicDetails

Kolom Jenis Deskripsi
benua string Benua untuk endpoint eksternal
country string Negara untuk endpoint eksternal
region string Region untuk endpoint eksternal
city string Kota untuk endpoint eksternal

Langkah selanjutnya