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:
- Anda hanya dapat mengaktifkan Firewall Rules Logging untuk aturan di jaringan Virtual Private Cloud (VPC). Jaringan lama tidak didukung.
- Logging Aturan Firewall hanya mencatat koneksi TCP dan UDP. Meskipun dapat membuat aturan firewall yang berlaku untuk protokol lain, Anda tidak dapat mencatat koneksinya ke dalam log. Jika Anda juga ingin mencatat protokol lain, pertimbangkan untuk menggunakan Duplikasi Paket.
- Anda tidak dapat mengaktifkan Firewall Rules Logging untuk aturan penolakan traffic masuk tersirat dan izinkan traffic keluar tersirat.
- Entri log ditulis dari perspektif VM. Entri log hanya dibuat jika aturan firewall mengaktifkan logging, dan jika aturan berlaku untuk traffic yang dikirim ke atau dari VM. Entri dibuat sesuai dengan batas logging koneksi berdasarkan upaya terbaik.
- Jumlah koneksi yang dapat di-log dalam interval tertentu didasarkan pada jenis mesin.
- Perubahan pada aturan firewall dapat dilihat di log audit VPC.
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 projectexample-proj
dipertimbangkan. - Kedua instance VM tersebut adalah:
- VM1 di zona
us-west1-a
dengan alamat IP10.10.0.99
diwest-subnet
(regionus-west1
). - VM2 di zona
us-east1-b
dengan alamat IP10.20.0.99
dieast-subnet
(regionus-east1
).
- VM1 di zona
- 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
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 projectexample-proj
dipertimbangkan. - Kedua instance VM tersebut adalah:
- VM1 di zona
us-west1-a
dengan alamat IP10.10.0.99
diwest-subnet
(regionus-west1
). - VM2 di zona
us-east1-b
dengan alamat IP10.20.0.99
dieast-subnet
(regionus-east1
).
- VM1 di zona
- 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
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 projectexample-proj
. - Sistem di internet memiliki alamat IP
203.0.113.114
. - VM1 di zona
us-west1-a
memiliki alamat IP10.10.0.99
diwest-subnet
(regionus-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
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
- Untuk menyiapkan logging dan melihat log, lihat Menggunakan Firewall Rules Logging.
- Untuk mendapatkan insight tentang cara aturan firewall Anda digunakan, lihat Analisis Firewall.
- Untuk menyimpan, menelusuri, menganalisis, memantau, serta membuat pemberitahuan terkait data log dan peristiwa, lihat Cloud Logging.
- Untuk merutekan entri log, lihat Mengonfigurasi dan mengelola sink.