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 jumlah koneksi yang terpengaruh oleh aturan firewall tertentu.

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

Logging Aturan Firewall 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 cluster Google Kubernetes Engine (GKE) dan instance lingkungan fleksibel App Engine.

Saat Anda mengaktifkan logging untuk aturan firewall, Google Cloud akan membuat entri yang disebut koneksi record setiap kali aturan tersebut mengizinkan atau menolak traffic. Anda dapat melihat data ini di Cloud Logging, dan dapat mengekspor log ke tujuan mana pun yang mendukung 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.

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

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

Spesifikasi

Logging Aturan Firewall memiliki spesifikasi berikut:

Contoh logging

Entri log dibuat setiap kali aturan firewall dengan logging diaktifkan diterapkan ke traffic. Alur paket tertentu dapat menghasilkan total lebih dari satu entri log. Namun, dari perspektif VM tertentu, maksimal hanya satu entri log yang dapat dibuat jika aturan firewall yang diterapkan pada VM tersebut telah 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 penolakan traffic keluar memiliki target untuk 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 izinkan masuk memiliki target dari 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 penolakan traffic 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 ingress allow 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 pada port TCP 80. Aturan firewall berikut dicatat ke dalam log:

  • Entri log untuk aturan A dari perspektif VM1 dibuat 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
antarmanusia 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"
prioritas = 10
tindakan = DENY
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = traffic keluar
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 traffic keluar diizinkan, traffic masuk diizinkan

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 traffic 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 izinkan masuk memiliki target dari 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 izinkan traffic 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 ingress allow 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 pada 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
antarmanusia 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"
prioritas = 10
tindakan = ALLOW
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = traffic keluar
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
antarmanusia 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"
prioritas = 10
tindakan = 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 ini ada dalam 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 izinkan masuk memiliki target semua instance di jaringan, sumber dari semua alamat IP (0.0.0.0/0), dan berlaku untuk port 80 TCP.
    • Logging diaktifkan untuk aturan ini.
  • Aturan D: Aturan firewall penolakan traffic keluar memiliki target dari semua instance di jaringan, tujuan semua alamat IP (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 masuk memungkinkan 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 traffic keluar untuk semua protokol, yang berlaku untuk semua instance, tujuan mana 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.
  • Terlepas dari 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 aturan D tidak berlaku, aturan ini tidak pernah dipertimbangkan, sehingga tidak ada entri log untuk aturan D.

Data log firewall dibuat dalam contoh berikut.

Kolom Nilai
antarmanusia src_ip=203.0.113.114
src_port=[EPHEMERAL_PORT]
dest_ip=10.10.0.99
dest_port=80
protokol=6
disposisi DIIZINKAN
rule_details reference = "network:my-vpc/firewall:rule-c"
prioritas = 10
tindakan = 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

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

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 atau tidak. Jika Anda tidak mencantumkannya, Anda dapat menghemat biaya penyimpanan.

Beberapa kolom log mendukung nilai yang juga berupa kolom. {i>Field<i} ini bisa memiliki lebih dari satu bagian data dalam {i>field<i} tertentu. Misalnya, kolom connection dalam 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
antarmanusia IpConnection
5-Tuple yang menjelaskan alamat IP sumber dan tujuan, port sumber dan tujuan, serta protokol IP koneksi ini.
Base
disposisi string
Menunjukkan apakah koneksinya ALLOWED atau DENIED.
Base
rule_details RuleDetails
Detail aturan yang diterapkan ke koneksi ini.
Kolom rule_details.reference Base
Kolom detail aturan lainnya Metadata
instance InstanceDetails
Detail instance VM. Dalam konfigurasi VPC Bersama, project_id sesuai dengan milik project layanan.
Metadata
vpc VpcDetails
Detail jaringan VPC. Dalam konfigurasi VPC Bersama, project_id sesuai 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 saat VM melihatnya di header paket, sama seperti jika Anda menjalankan dump TCP 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 Destination port
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.
rentang_tujuan[ ] string Daftar rentang tujuan tempat aturan firewall diterapkan.
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 tempat aturan firewall diterapkan.
target_tag[ ] string Daftar semua tag target tempat aturan firewall diterapkan.
source_service_account[ ] string Daftar semua akun layanan sumber tempat aturan firewall diterapkan.
target_service_account[ ] string Daftar semua akun layanan target tempat aturan firewall diterapkan.
kode_wilayah_sumber[ ] string Daftar semua kode negara sumber tempat aturan firewall diterapkan.
destination_region_code [kode_wilayah_tujuan][ ] string Daftar semua kode negara tujuan tempat aturan firewall diterapkan.
source_fqdn[ ] string Daftar semua nama domain sumber tempat aturan firewall diterapkan.
destination_fqdn[ ] string Daftar semua nama domain tujuan tempat aturan firewall diterapkan.
source_threat_intelligence[ ] string Daftar semua nama daftar Threat Intelligence sumber tempat aturan firewall diterapkan.
destination_threat_intelligence[ ] (Kecerdasan_ancaman)[ ] string Daftar semua nama daftar Threat Intelligence tujuan tempat aturan firewall diterapkan.
source_address_groups[ ] string Daftar semua grup alamat sumber tempat aturan firewall diterapkan.
destination_address_groups[ ] string Daftar semua grup alamat tujuan tempat aturan firewall diterapkan.

IpPortDetails

Kolom Jenis Deskripsi
ip_protocol string Protokol IP tempat aturan firewall diterapkan. "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
zone 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
kota string Kota untuk endpoint eksternal

Langkah selanjutnya