arrow_back

Duplikasi Paket Google Cloud dengan OpenSource IDS

Login Gabung
Dapatkan akses ke 700+ lab dan kursus

Duplikasi Paket Google Cloud dengan OpenSource IDS

Lab 1 jam 30 menit universal_currency_alt 1 Kredit show_chart Pengantar
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Dapatkan akses ke 700+ lab dan kursus

GSP474

Logo lab mandiri Google Cloud

Ringkasan

Duplikasi Traffic adalah fitur utama dalam jaringan Google Cloud untuk keamanan dan analisis jaringan. Fungsinya mirip dengan fungsi network tap atau sesi span dalam jaringan tradisional. Singkatnya, Duplikasi Paket menangkap traffic jaringan (ingress dan egress) dari "sumber yang diduplikasi" tertentu, menyalin traffic, dan meneruskan salinan ke "collector".

Penting untuk diperhatikan bahwa Duplikasi Paket menangkap payload lengkap setiap paket dan dengan demikian menggunakan bandwidth tambahan. Karena tidak didasarkan pada periode pengambilan sampel, Duplikasi Paket dapat digunakan untuk pemecahan masalah dan solusi keamanan yang lebih baik, serta analisis berbasis aplikasi lapisan yang lebih tinggi.

Duplikasi Paket didasarkan pada "Kebijakan Duplikasi Paket", yang berisi atribut berikut:

  • Region
  • Jaringan VPC
  • Sumber yang Diduplikasi
  • Collector (tujuan)
  • Traffic yang diduplikasi (filter)

Berikut beberapa poin penting yang juga perlu dipertimbangkan:

  • Hanya traffic TCP, UDP, dan ICMP yang dapat diduplikasi. Namun, hal ini akan memenuhi sebagian besar kasus penggunaan.
  • "Sumber yang Diduplikasi" dan "Collector" harus berada di Region yang SAMA, tetapi dapat berada di zona yang berbeda dan bahkan VPC yang berbeda, selama VPC tersebut di-Peering dengan benar.
  • Biaya bandwidth tambahan berlaku, terutama antar-zona. Untuk membatasi traffic yang diduplikasi, filter dapat digunakan.

Salah satu kasus penggunaan utama "Duplikasi Paket" adalah menggunakannya dalam solusi Intrusion Detection System (IDS). Beberapa solusi IDS berbasis cloud memerlukan layanan khusus untuk dijalankan di setiap VM sumber, atau untuk menempatkan perangkat virtual IDS secara inline antara sumber dan tujuan jaringan. Kedua hal ini memiliki implikasi yang signifikan. Misalnya, solusi berbasis layanan, meskipun didistribusikan sepenuhnya, mengharuskan sistem operasi tamu mendukung software tersebut. Solusi "in-line" dapat menyebabkan bottleneck jaringan karena semua traffic harus disalurkan melalui perangkat IDS. Solusi in-line juga tidak akan dapat menangkap traffic "timur-barat" dalam VM di VPC yang sama.

Duplikasi Paket Google Cloud tidak memerlukan software tambahan apa pun di VM dan didistribusikan sepenuhnya di setiap virtual machine yang diduplikasi. IDS "Collector" ditempatkan di luar jalur menggunakan Internal Network Load Balancer (ILB) dan akan menerima traffic "utara-selatan" dan traffic "timur-barat".

Deskripsi lab Duplikasi Paket

Untuk menunjukkan cara Duplikasi Paket dapat digunakan dengan IDS, pertimbangkan contoh ini menggunakan OpenSource IDS Suricata.

  • Satu VPC dengan 2 subnet, satu untuk sumber yang diduplikasi dan satu untuk collector
  • 2 Server web yang dibuat dengan alamat IP publik
  • 1 Server collector (IDS) yang dibuat TANPA IP publik karena alasan keamanan
  • CloudNAT diaktifkan untuk akses Internet sesuai kebutuhan
  • Semua VM yang dibuat di region dan zona yang sama, untuk alasan kemudahan dan biaya

Di lab ini, Anda akan membuat lingkungan Google Cloud, mengonfigurasi ILB "Collector", mengonfigurasi Kebijakan Duplikasi Paket, serta menginstal dan mengonfigurasi [Suricata] (https://suricata-ids.org/) di instance virtual untuk bertindak sebagai IDS. Setelah selesai, pengujian jaringan akan dilakukan untuk memvalidasi konfigurasi dan penggunaan Duplikasi Paket dengan Open Source IDS. Set aturan dan konfigurasi Suricata yang sangat sederhana digunakan untuk menyederhanakan demonstrasi.

Diagram lingkungan Google Cloud

Tujuan:

  • Membangun lingkungan Jaringan Google Cloud seperti yang ditunjukkan pada diagram di atas
  • Membuat 2 virtual machine dengan perintah gcloud untuk bertindak sebagai SERVER WEB
  • Membuat satu virtual machine dengan perintah gcloud untuk bertindak sebagai IDS
  • Membuat Internal LoadBalancer (ILB) untuk bertindak sebagai "collector" untuk Duplikasi Paket
  • Menginstal dan mengonfigurasi Open Source IDS (Suricata) di VM IDS
  • Meninjau beberapa aturan pemberitahuan IDS dasar
  • Membuat Kebijakan Duplikasi Paket
  • Menguji Duplikasi Paket dengan membuat traffic jaringan ke subnet yang "diduplikasi"
  • Menguji Suricata IDS dengan membuat traffic jaringan untuk menyimulasikan peristiwa IDS dan meninjau logging IDS

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Membuat jejak jaringan

Di bagian ini, Anda akan membuat VPC dan membuat 2 subnet di dalam VPC tersebut. Semua ini akan dilakukan menggunakan perintah CLI gcloud di dalam Google Cloud Shell.

  1. Jalankan perintah berikut untuk membuat virtual private network:
gcloud compute networks create dm-stamford \ --subnet-mode=custom
  1. Tambahkan subnet ke VPC untuk traffic yang diduplikasi di :
gcloud compute networks subnets create dm-stamford-{{{project_0.default_region | REGION}}} \ --range=172.21.0.0/24 \ --network=dm-stamford \ --region={{{project_0.default_region | REGION}}}
  1. Tambahkan subnet ke VPC untuk collector di :
gcloud compute networks subnets create dm-stamford-{{{project_0.default_region | REGION}}}-ids \ --range=172.21.1.0/24 \ --network=dm-stamford \ --region={{{project_0.default_region | REGION}}}

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat jejak jaringan

Tugas 2. Membuat aturan firewall dan Cloud NAT

Sebanyak tiga aturan firewall akan diperlukan untuk menyelesaikan lab ini.

  • Aturan 1 mengizinkan port http standar (TCP 80) dan protokol ICMP ke semua VM dari semua sumber.
  • Aturan 2 memungkinkan IDS menerima SEMUA traffic dari SEMUA sumber. Berhati-hatilah agar TIDAK memberikan IP publik ke VM IDS di bagian selanjutnya.
  • Aturan 3 mengizinkan port TCP 22 rentang IP "Proxy Google Cloud IAP" ke SEMUA VM, sehingga Anda dapat menghubungkan ssh ke VM melalui Konsol Cloud

Jalankan perintah berikut untuk membuat aturan firewall:

gcloud compute firewall-rules create fw-dm-stamford-allow-any-web \ --direction=INGRESS \ --priority=1000 \ --network=dm-stamford \ --action=ALLOW \ --rules=tcp:80,icmp \ --source-ranges=0.0.0.0/0 gcloud compute firewall-rules create fw-dm-stamford-ids-any-any \ --direction=INGRESS \ --priority=1000 \ --network=dm-stamford \ --action=ALLOW \ --rules=all \ --source-ranges=0.0.0.0/0 \ --target-tags=ids gcloud compute firewall-rules create fw-dm-stamford-iapproxy \ --direction=INGRESS \ --priority=1000 \ --network=dm-stamford \ --action=ALLOW \ --rules=tcp:22,icmp \ --source-ranges=35.235.240.0/20

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Aturan Firewall Cloud dan CloudNAT

Membuat Cloud Router

  • Sebagai prasyarat untuk Cloud NAT, Cloud Router harus dikonfigurasi terlebih dahulu di region masing-masing:
gcloud compute routers create router-stamford-nat-{{{project_0.default_region | REGION}}} \ --region={{{project_0.default_region | REGION}}} \ --network=dm-stamford

Mengonfigurasi Cloud NAT

  • Untuk menyediakan akses Internet ke VM tanpa IP publik, Cloud NAT harus dibuat di region masing-masing:
gcloud compute routers nats create nat-gw-dm-stamford-{{{project_0.default_region | REGION}}} \ --router=router-stamford-nat-{{{project_0.default_region | REGION}}} \ --router-region={{{project_0.default_region | REGION}}} \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges

VM IDS akan dibuat tanpa IP publik untuk memastikan bahwa VM tidak dapat diakses dari Internet. Namun, perangkat ini memerlukan akses internet untuk mendownload update dan menginstal paket Suricata.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat CloudRouter dan Mengonfigurasi CloudNAT

Tugas 3. Membuat virtual machine

Membuat template instance untuk server web

  • Template ini menyiapkan server Ubuntu di dan menginstal layanan web sederhana:
gcloud compute instance-templates create template-dm-stamford-web-{{{project_0.default_region | REGION}}} \ --region={{{project_0.default_region | REGION}}} \ --network=dm-stamford \ --subnet=dm-stamford-{{{project_0.default_region | REGION}}} \ --machine-type=e2-small \ --image=ubuntu-1604-xenial-v20200807 \ --image-project=ubuntu-os-cloud \ --tags=webserver \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

Membuat grup instance terkelola untuk server web

  • Perintah ini menggunakan Template Instance pada langkah sebelumnya untuk membuat 2 server web:
gcloud compute instance-groups managed create mig-dm-stamford-web-{{{project_0.default_region | REGION}}} \ --template=template-dm-stamford-web-{{{project_0.default_region | REGION}}} \ --size=2 \ --zone={{{project_0.default_zone | "ZONE"}}}

Membuat Template Instance untuk VM IDS

  • Template ini menyiapkan server Ubuntu di dan tanpa IP publik:
gcloud compute instance-templates create template-dm-stamford-ids-{{{project_0.default_region | REGION}}} \ --region={{{project_0.default_region | REGION}}} \ --network=dm-stamford \ --no-address \ --subnet=dm-stamford-{{{project_0.default_region | REGION}}}-ids \ --image=ubuntu-1604-xenial-v20200807 \ --image-project=ubuntu-os-cloud \ --tags=ids,webserver \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

Membuat grup instance terkelola untuk VM IDS

  • Perintah ini menggunakan Template Instance pada langkah sebelumnya untuk membuat 1 VM yang akan dikonfigurasi sebagai IDS Anda. Penginstalan Suricata akan dibahas di bagian selanjutnya.
gcloud compute instance-groups managed create mig-dm-stamford-ids-{{{project_0.default_region | REGION}}} \ --template=template-dm-stamford-ids-{{{project_0.default_region | REGION}}} \ --size=1 \ --zone={{{project_0.default_zone | "ZONE"}}}

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Virtual Machine

Tugas 4. Membuat internal load balancer

Duplikasi Paket menggunakan internal load balancer (ILB) untuk meneruskan traffic yang diduplikasi ke grup collector. Dalam hal ini, grup collector berisi satu VM.

  1. Buat health check dasar untuk layanan backend:
gcloud compute health-checks create tcp hc-tcp-80 --port 80
  1. Buat grup layanan backend yang akan digunakan untuk ILB:
gcloud compute backend-services create be-dm-stamford-suricata-{{{project_0.default_region | REGION}}} \ --load-balancing-scheme=INTERNAL \ --health-checks=hc-tcp-80 \ --network=dm-stamford \ --protocol=TCP \ --region={{{project_0.default_region | REGION}}}
  1. Tambahkan grup instance terkelola IDS yang dibuat ke dalam grup layanan backend yang dibuat pada langkah sebelumnya:
gcloud compute backend-services add-backend be-dm-stamford-suricata-{{{project_0.default_region | REGION}}} \ --instance-group=mig-dm-stamford-ids-{{{project_0.default_region | REGION}}} \ --instance-group-zone={{{project_0.default_zone | "ZONE"}}} \ --region={{{project_0.default_region | REGION}}}
  1. Buat aturan penerusan frontend untuk bertindak sebagai endpoint pengumpulan:
gcloud compute forwarding-rules create ilb-dm-stamford-suricata-ilb-{{{project_0.default_region | REGION}}} \ --load-balancing-scheme=INTERNAL \ --backend-service be-dm-stamford-suricata-{{{project_0.default_region | REGION}}} \ --is-mirroring-collector \ --network=dm-stamford \ --region={{{project_0.default_region | REGION}}} \ --subnet=dm-stamford-{{{project_0.default_region | REGION}}}-ids \ --ip-protocol=TCP \ --ports=all Catatan: Meskipun TCP tercantum sebagai protokol, jenis traffic yang diduplikasi sebenarnya akan dikonfigurasi dalam Kebijakan Duplikasi Paket di bagian berikutnya. Selain itu, perhatikan bahwa flag --is-mirroring-collector, telah ditetapkan.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Internal LoadBalancer

Tugas 5. Menginstal open source IDS - Suricata

Catatan: Untuk 2 bagian berikutnya, Anda akan menghubungkan SSH ke VM IDS dan menjalankan perintah di shell-nya. Berhati-hatilah agar tidak menjalankan perintah di Cloud Shell.

Menghubungkan SSH ke VM IDS

  1. Dengan menggunakan Konsol Cloud, dari Navigation menu, buka Compute Engine > VM Instances.

  2. Klik tombol SSH di VM IDS Anda.

Tombol SSH VM IDS

Tindakan ini akan membuka jendela baru yang memungkinkan Anda menjalankan perintah di dalam VM IDS.

  1. Perbarui VM IDS:
sudo apt-get update -y
  1. Instal dependensi Suricata:
sudo apt-get install libpcre3-dbg libpcre3-dev autoconf automake libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libmagic-dev libjansson-dev libjansson4 -y sudo apt-get install libnspr4-dev -y sudo apt-get install libnss3-dev -y sudo apt-get install liblz4-dev -y sudo apt install rustc cargo -y
  1. Instal Suricata:
sudo add-apt-repository ppa:oisf/suricata-stable -y sudo apt-get update -y sudo apt-get install suricata -y Catatan: Jika Anda menerima error selama penginstalan, lanjutkan dengan langkah verifikasi berikut.

Memverifikasi penginstalan

  • Gunakan perintah berikut untuk memverifikasi penginstalan dan memeriksa versi Suricata yang diinstal:
suricata -V

Output-nya akan terlihat seperti ini:

This is Suricata version 5.0.3 RELEASE

Tugas 6. Mengonfigurasi dan meninjau Suricata

Perintah dan langkah-langkah untuk bagian berikut juga harus dilakukan di dalam SSH VM IDS/Suricata.

  • Hentikan layanan Suricata dan cadangkan file konfigurasi default:
sudo systemctl stop suricata sudo cp /etc/suricata/suricata.yaml /etc/suricata/suricata.backup

Mendownload dan mengganti file konfigurasi Suricata baru dan file aturan ringkas

File konfigurasi baru akan memperbarui antarmuka collector serta hanya memberikan pemberitahuan pada kumpulan traffic yang sangat kecil seperti yang dikonfigurasi dalam file my.rules dan file suricata.yaml. Setelan default untuk pemberitahuan dan set aturan Suricata cukup luas dan tidak diperlukan untuk lab ini.

  • Jalankan perintah berikut untuk menyalin file.
wget https://storage.googleapis.com/tech-academy-enablement/GCP-Packet-Mirroring-with-OpenSource-IDS/suricata.yaml wget https://storage.googleapis.com/tech-academy-enablement/GCP-Packet-Mirroring-with-OpenSource-IDS/my.rules sudo mkdir /etc/suricata/poc-rules sudo cp my.rules /etc/suricata/poc-rules/my.rules sudo cp suricata.yaml /etc/suricata/suricata.yaml

Memulai layanan Suricata

Terkadang, layanan perlu dimulai ulang. Perintah restart disertakan dalam langkah ini untuk memperhitungkan kemungkinan tersebut:

sudo systemctl start suricata sudo systemctl restart suricata

Meninjau aturan Suricata sederhana untuk pengujian

Untuk lab ini, set aturan untuk Suricata telah dipangkas menjadi 4. Namun, penginstalan Suricata default memiliki set aturan yang luas dan lengkap.

  • Memadatkan pemberitahuan menjadi daftar yang ringkas dan sederhana lebih baik untuk latihan lab ini sehingga setiap pemberitahuan dapat diuji dengan mudah.
cat /etc/suricata/poc-rules/my.rules

Output akan menampilkan total 4 aturan dan deskripsi setiap aturan.

####RULES##### #UDP ALERTS alert udp $HOME_NET any -> 8.8.8.8 53 (msg:"BAD UDP DNS REQUEST"; sid:99996; rev:1;) #HTTP ALERTS alert http any any -> $HOME_NET 80 (msg:"BAD HTTP PHP REQUEST"; http.uri; content:"index.php"; sid:99997; rev:1;) #ICMP ALERTS alert icmp any any -> $HOME_NET any (msg:"BAD ICMP"; sid:99998; rev:1;) #TCP ALERTS alert tcp $HOME_NET any -> any 6667 (msg:"BAD TCP 6667 REQUEST"; sid:99999; rev:1;) Catatan: File aturan standar biasanya dapat ditemukan di /etc/suricata/rules/ atau /var/lib/suricata/rules. Ini telah dikonfigurasi ulang untuk lokasi yang berbeda untuk lab ini di Langkah 2.

Tugas 7. Mengonfigurasi kebijakan Duplikasi Paket

Untuk bagian lab ini, kembali ke Cloud Shell

Penyiapan kebijakan Duplikasi Paket dapat diselesaikan dalam satu perintah sederhana (atau dengan membuka "wizard" di GUI). Dalam perintah ini, Anda menentukan ke-5 atribut yang disebutkan di bagian Deskripsi Duplikasi Paket.

  • Region
  • Jaringan VPC
  • Sumber yang Diduplikasi
  • Collector (tujuan)
  • Traffic yang diduplikasi (filter)

Anda mungkin melihat bahwa tidak ada penyebutan "traffic yang diduplikasi". Hal ini karena kebijakan akan dikonfigurasi untuk mencerminkan "SEMUA" traffic dan tidak memerlukan filter. Kebijakan ini akan menduplikasi traffic ingress dan egress, lalu meneruskannya ke perangkat Suricata IDS, yang merupakan bagian dari ILB collector.

  • Konfigurasi Kebijakan Duplikasi Paket dengan menjalankan perintah berikut di Cloud Shell:
gcloud compute packet-mirrorings create mirror-dm-stamford-web \ --collector-ilb=ilb-dm-stamford-suricata-ilb-{{{project_0.default_region | REGION}}} \ --network=dm-stamford \ --mirrored-subnets=dm-stamford-{{{project_0.default_region | REGION}}} \ --region={{{project_0.default_region | REGION}}}

Pada tahap ini, konfigurasi Duplikasi Paket dan Suricata akan selesai. Bagian berikut akan menguji keduanya.

Klik Periksa progres saya untuk memverifikasi tujuan.

Mengonfigurasi Kebijakan Duplikasi Paket

Tugas 8. Menguji Duplikasi Paket

Di bagian ini, Anda harus mengakses shell VM IDS. Jika jendela shell masih terbuka, gunakan jendela tersebut. Jika jendela shell telah ditutup, hubungkan kembali.

Anda juga akan menggunakan Cloud Shell untuk bertindak sebagai "Klien Internet".

Luangkan beberapa menit untuk menemukan IP Eksternal untuk kedua VM WEB.

Di Konsol Cloud, dari Navigation menu, klik Compute Engine > VM Instances dan catat External IPs dari kedua VM WEB. Keduanya masing-masing disebut sebagai [PUBLIC_IP_WEB1] dan [PUBLIC_IP_WEB2].

Anda juga dapat mengumpulkan informasi yang sama melalui perintah gcloud dari Cloud Shell:

gcloud compute instances list

Kembali ke shell VM IDS

Menguji Duplikasi Paket

  • Jalankan penangkapan paket (tcpdump) di VM IDS/Suricata dengan filter berikut:
sudo tcpdump -i ens4 -nn -n "(icmp or port 80) and net 172.21.0.0/24" Catatan: Jaringan 172.21.0.0/24 adalah subnet yang DIDUPLIKASI; dan VM IDS bukan bagian dari subnet tersebut. Jika Duplikasi Paket dikonfigurasi dengan benar, VM IDS akan menerima traffic yang diduplikasi untuk subnet tersebut.

Membuat traffic ke subnet yang "diduplikasi"

  1. Menggunakan terminal Cloud Shell, lakukan ping ke alamat publik yang ditetapkan ke WEB1, dengan mengganti [PUBLIC_IP_WEB1] dengan alamat IP publik "WEB1" yang dapat dilihat di Konsol Cloud:
sudo apt install iputils-ping ping -c 4 [PUBLIC_IP_WEB1]

Duplikasi Paket akan menduplikasi dan meneruskan traffic tersebut ke VM IDS dan Anda akan dapat melihatnya dalam penangkapan paket pada Langkah 1. Output di VM IDS akan mirip dengan ini, dengan X.X.X.X adalah alamat IP sumber permintaan ICMP. Di output tcpdump, Anda akan melihat IP pribadi WEBSERVER. Google Cloud melakukan penafsiran jaringan di edge.

00:55:32.980666 IP X.X.X.X > 172.21.0.2: ICMP echo request, id 3399, seq 0, length 64 00:55:32.980801 IP 172.21.0.2 > X.X.X.X: ICMP echo reply, id 3399, seq 0, length 64 00:55:33.968920 IP X.X.X.X > 172.21.0.2: ICMP echo request, id 3399, seq 1, length 64 00:55:33.968965 IP 172.21.0.2 > X.X.X.X: ICMP echo reply, id 3399, seq 1, length 64 00:55:34.980472 IP X.X.X.X > 172.21.0.2: ICMP echo request, id 3399, seq 2, length 64 00:55:34.980521 IP 172.21.0.2 > X.X.X.X: ICMP echo reply, id 3399, seq 2, length 64 00:55:35.986354 IP X.X.X.X > 172.21.0.2: ICMP echo request, id 3399, seq 3, length 64 00:55:35.986445 IP 172.21.0.2 > X.X.X.X: ICMP echo reply, id 3399, seq 3, length 64

Hal yang sama berlaku jika Anda melakukan ping ke alamat publik WEB2.

  1. Lakukan ping ke alamat publik yang ditetapkan ke WEB2, dengan mengganti [PUBLIC_IP_WEB2] dengan alamat IP publik "WEB2".
ping -c 4 [PUBLIC_IP_WEB2]

Duplikasi Paket akan meneruskan traffic tersebut ke VM IDS dan Anda akan dapat melihatnya dalam penangkapan paket pada Langkah 1. Output di VM IDS akan terlihat seperti ini. Perhatikan bahwa dalam output tcpdump, Anda akan melihat IP pribadi WEBSERVER. Google Cloud melakukan penafsiran jaringan di edge.

00:00:45.309407 IP X.X.X.X > 172.21.0.3: ICMP echo request, id 25159, seq 0, length 64 00:00:45.309736 IP 172.21.0.3 > X.X.X.X: ICMP echo reply, id 25159, seq 0, length 64 00:00:46.309406 IP X.X.X.X > 172.21.0.3: ICMP echo request, id 25159, seq 1, length 64 00:00:46.309602 IP 172.21.0.3 > X.X.X.X: ICMP echo reply, id 25159, seq 1, length 64 00:00:47.306278 IP X.X.X.X > 172.21.0.3: ICMP echo request, id 25159, seq 2, length 64 00:00:47.306406 IP 172.21.0.3 > X.X.X.X: ICMP echo reply, id 25159, seq 2, length 64 00:00:48.314506 IP X.X.X.X > 172.21.0.3: ICMP echo request, id 25159, seq 3, length 64 00:00:48.314698 IP 172.21.0.3 > X.X.X.X: ICMP echo reply, id 25159, seq 3, length 64

Untuk menunjukkan dengan lebih baik bahwa Duplikasi Paket menampilkan lebih dari sekadar header Layer 3, pengujian berikut akan menampilkan HTTP GET standar ke salah satu server WEB, termasuk handshake 3 arah TCP awal.

  1. Buka tab baru di browser Anda dan buka alamat publik yang ditetapkan ke WEB1 dengan protokol http. Utilitas "curl" dari Konsol Cloud juga dapat digunakan, jika diinginkan.

  2. Ganti [PUBLIC_IP_WEB1] dengan alamat IP publik "WEB1"

http://[PUBLIC_IP_WEB1]/

Duplikasi Paket akan meneruskan traffic tersebut ke VM IDS dan Anda akan dapat melihatnya dalam penangkapan paket pada Langkah 1.

Output di VM IDS akan terlihat seperti ini:

00:00:46.761748 IP X.X.X.60835 > 172.21.0.2.80: Flags [S]... 00:00:46.763037 IP 172.21.0.2.80 > X.X.X.60835: Flags [S.], ... ack ... 00:00:46.816407 IP X.X.X.60835 > 172.21.0.2.80: Flags [.], ack ... 00:00:46.823624 IP X.X.X.60835 > 172.21.0.2.80: Flags [P.], ... HTTP: GET / HTTP/1.1 00:00:46.823832 IP 172.21.0.2.80 > X.X.X.60835: Flags [.], ack ... 00:00:46.824549 IP 172.21.0.2.80 > X.X.X.60835: Flags [P.], ... HTTP: HTTP/1.1 200 OK 00:00:46.879214 IP X.X.X.60835 > 172.21.0.2.80: Flags [.], ack ... 00:00:46.888477 IP X.X.X.60835 > 172.21.0.2.80: Flags [F.], ... 00:00:46.888662 IP 172.21.0.2.80 > X.X.X.60835: Flags [F.], ... ack... 00:00:46.943915 IP X.X.X.60835 > 172.21.0.2.80: Flags [.], ack ...
  1. Hal yang sama akan berlaku jika Anda menjelajahi alamat publik WEB2. Ganti [PUBLIC_IP_WEB2] dengan alamat IP publik "WEB2"
http://[PUBLIC_IP_WEB2]/

Duplikasi Paket akan meneruskan traffic tersebut ke VM IDS dan Anda akan dapat melihatnya dalam penangkapan paket pada Langkah 1.

Output di VM IDS akan terlihat seperti ini.

00:00:58.819740 IP X.X.X.X.62335 > 172.21.0.3.80: Flags [S]... 00:00:58.820027 IP 172.21.0.3.80 > X.X.X.X.62335: Flags [S.], ... ack ... 00:00:58.875301 IP X.X.X.X.62335 > 172.21.0.3.80: Flags [.], ack ... 00:00:58.875329 IP X.X.X.X.62335 > 172.21.0.3.80: Flags [P.], ... HTTP: GET / HTTP/1.1 00:00:58.875448 IP 172.21.0.3.80 > X.X.X.X.62335: Flags [.], ack ... 00:00:58.876204 IP 172.21.0.3.80 > X.X.X.X.62335: Flags [P.], ... HTTP: HTTP/1.1 200 OK 00:00:58.929015 IP X.X.X.X.62335 > 172.21.0.3.80: Flags [.], ack ... 00:00:58.929047 IP X.X.X.X.62335 > 172.21.0.3.80: Flags [F.], ... 00:00:58.929244 IP 172.21.0.3.80 > X.X.X.X.62335: Flags [F.], ... ack... 00:00:58.993844 IP X.X.X.X.62335 > 172.21.0.3.80: Flags [.], ack ...

Ketik ctrl+c di dalam VM IDS untuk keluar dari tcpdump.

Tugas 9. Menguji pemeriksaan dan pemberitahuan Suricata IDS

Bagian terakhir dari lab ini adalah menguji integrasi Duplikasi Paket dengan Open Source IDS Suricata. Luangkan waktu untuk meninjau ke-4 aturan Suricata yang ditetapkan untuk pemberitahuan dari Langkah 4 di bagian "Mengonfigurasi dan Meninjau Suricata":

####RULES##### #UDP ALERTS alert udp $HOME_NET any -> 8.8.8.8 53 (msg:"BAD UDP DNS REQUEST"; sid:99996; rev:1;) #HTTP ALERTS alert http any any -> $HOME_NET 80 (msg:"BAD HTTP PHP REQUEST"; http.uri; content:"index.php"; sid:99997; rev:1;) #ICMP ALERTS alert icmp any any -> $HOME_NET any (msg:"BAD ICMP"; sid:99998; rev:1;) #TCP ALERTS alert tcp $HOME_NET any -> any 6667 (msg:"BAD TCP 6667 REQUEST"; sid:99999; rev:1;)

4 langkah berikut akan memandu Anda menghasilkan traffic jaringan yang memicu setiap aturan ini. Pemberitahuan untuk setiap aturan tersebut akan terlihat di file log peristiwa Suricata.

Catatan: Pastikan Anda telah membuka jendela ssh untuk VM IDS dan VM server WEB. Anda harus melihat KEDUANYA secara bersamaan untuk menyelesaikan bagian ini.

TEST1 dan TEST2 akan dimulai dari WEBSERVER dan menguji traffic egress.

TEST3 dan TEST4 akan dimulai di Cloud Shell dan menguji traffic ingress.

TEST 1: Menguji aturan/pemberitahuan UDP egress.

  1. Jalankan perintah berikut dari salah satu server WEB untuk menghasilkan traffic DNS egress:
dig @8.8.8.8 example.com
  1. Sekarang, lihat pemberitahuan di file log peristiwa Suricata pada VM IDS.

Beralih ke jendela ssh untuk VM IDS

  1. Jalankan perintah berikut di jendela SSH untuk VM IDS:
egrep "BAD UDP DNS" /var/log/suricata/eve.json

Entri log akan terlihat seperti ini:

@GCP: {"timestamp":"2020-08-14T01:23:14.903210+0000","flow_id":412864167987242,"in_iface":"ens4","event_type":"alert","src_ip":"172.21.0.2","src_port":47020,"dest_ip":"8.8.8.8","dest_port":53,"proto":"UDP","alert":{"action":"allowed","gid":1,"signature_id":99996,"rev":1,"signature":"BAD UDP DNS REQUEST","category":"","severity":3},"dns":{"query":[{"type":"query","id":17268,"rrname":"EXAMPLE.COM","rrtype":"A","tx_id":0}]},"app_proto":"dns","flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":82,"bytes_toclient":0,"start":"2020-08-19T18:23:14.903210+0000"}}

TEST 2: Menguji aturan/pemberitahuan "TCP" egress

  1. Jalankan perintah berikut dari salah satu server WEB untuk menghasilkan traffic TCP Egress, dengan mengganti [PUBLIC_IP_WEB2] dengan alamat IP publik "WEB2":
telnet [PUBLIC_IP_WEB2] 6667
  1. ketik ctrl+c untuk keluar.

  2. Sekarang, lihat pemberitahuan di file log peristiwa Suricata pada VM IDS.

Beralih ke jendela ssh untuk VM IDS

  1. Jalankan perintah berikut dari jendela SSH VM IDS:
egrep "BAD TCP" /var/log/suricata/eve.json

Entri log akan terlihat seperti ini:

@GCP: {"timestamp":"2020-08-14T01:27:45.058526+0000","flow_id":479376049300638,"in_iface":"ens4","event_type":"alert","src_ip":"172.21.0.2","src_port":36168,"dest_ip":"100.64.1.1","dest_port":6667,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":99999,"rev":1,"signature":"BAD TCP 6667 REQUEST","category":"","severity":3},"flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":74,"bytes_toclient":0,"start":"2020-08-19T18:27:45.058526+0000"}}

TEST 3: Menguji aturan/pemberitahuan "ICMP" ingress

  1. Jalankan perintah berikut dari Cloud Shell untuk menghasilkan traffic ICMP INGRESS.

  2. Ganti [PUBLIC_IP_WEB1] dengan alamat IP publik "WEB1".

ping -c 3 [PUBLIC_IP_WEB1]
  1. Sekarang, lihat pemberitahuan di file log peristiwa Suricata di VM IDS:
egrep "BAD ICMP" /var/log/suricata/eve.json

Entri log akan terlihat seperti ini:

@GCP: {"timestamp":"2020-08-14T01:24:46.065250+0000","flow_id":1114966772874978,"in_iface":"ens4","event_type":"alert","src_ip":"X.X.X.X","dest_ip":"172.21.0.2","proto":"ICMP","icmp_type":8,"icmp_code":0,"alert":{"action":"allowed","gid":1,"signature_id":99998,"rev":1,"signature":"BAD ICMP","category":"","severity":3},"flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":98,"bytes_toclient":0,"start":"2020-08-19T18:24:46.065250+0000"}}

TEST 4: Menguji aturan/pemberitahuan "HTTP" ingress.

Dengan menggunakan browser web di workstation lokal atau curl di Cloud Shell, jelajahi alamat publik yang ditetapkan ke WEB1 untuk halaman index.php, menggunakan protokol http.

  1. Ganti [PUBLIC_IP_WEB1] dengan alamat IP publik "WEB1".
http://[PUBLIC_IP_WEB1]/index.php
  1. Sekarang, lihat pemberitahuan di file log peristiwa Suricata di VM IDS:
egrep "BAD HTTP" /var/log/suricata/eve.json

Entri log akan terlihat seperti ini:

@GCP: {"timestamp":"2020-08-14T01:26:36.794124+0000","flow_id":1901424684045611,"in_iface":"ens4","event_type":"alert","src_ip":"X.X.X.X","src_port":61132,"dest_ip":"172.21.0.3","dest_port":80,"proto":"TCP","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":99997,"rev":1,"signature":"BAD HTTP PHP REQUEST","category":"","severity":3},"http":{"hostname":"PUBLIC_IP_WEB1","url":"\/index.php","http_user_agent":"curl\/7.64.1","http_content_type":"text\/html","http_method":"GET","protocol":"HTTP\/1.1","status":404,"length":275},"app_proto":"http","flow":{"pkts_toserver":7,"pkts_toclient":6,"bytes_toserver":658,"bytes_toclient":1284,"start":"2020-08-19T18:26:36.660779+0000"}}

Selamat!

Dengan demikian, lab untuk penggunaan Duplikasi Paket Google Cloud dengan Open Source IDS Suricata telah selesai.

Langkah Berikutnya/Pelajari Lebih Lanjut

Untuk mengetahui informasi tambahan terkait Duplikasi Paket, lihat:

Untuk mengetahui informasi selengkapnya tentang Suricata, lihat https://suricata-ids.org/

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 18 November 2024

Lab Terakhir Diuji pada 6 September 2023

Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.