Episode 0: Membangun Lab SOC di Cloud
Pendahuluan
Sebagai mahasiswa tingkat akhir, saya menyadari jika memiliki pemahaman terhadap teori saja tidak cukup untuk menjadi seorang SOC Analyst. Oleh karena itu saya memutuskan untuk menantang diri saya dengan mengikuti 30 Days SOC Challenge dari channel YouTube MyDFIR.
Tulisan ini adalah bagian pertama dari seri dokumentasi saya dalam membangun infrastruktur keamanan berbasis cloud untuk mendeteksi serangan secara real-time.
Mengapa Cloud (Vultr)?
Awalnya saya terbiasa menggunakan lab lokal (Proxmox/VMware), namun untuk project ini saya memilih Vult sebagai penyedia cloud karena:
- Aksesibilitas (Bisa diakses dari mana saja)
- Simulasi yang lebih nyata (IP Public)
- Efisiensi manajemen resources untuk Elastic Stack yang cukup berat
- Ada credit $300 untuk pengguna baru yang sangat cukup untuk latihan
Arsitektur Lab

+---------------------------------------------------------------------------------------------------+
| Nama VM | OS | Fungsi |
+---------------------+---------+-------------------------------------------------------------------+
| MYDFIR-ELK | Ubuntu | Pusat manajemen log (SIEM), tempat pencarian dan visualisasi data |
| MYDFIR-FLEET-Server | Ubuntu | Jembatan antara endpoint dan ELK Stack |
| MYDFIR-MYTHIC | Ubuntu | Server C2 (Command & Control) untuk simulasi serangan |
| MYDFIR-osTicket | Windows | Platform manajemen tiket insiden untuk operasional SOC |
| MYDFIR-Linux | Ubuntu | Endpoint target yang akan dimonitor |
| MYDFIR WIN | Windows | Endpoint target yang akan dimonitor |
+---------------------------------------------------------------------------------------------------+ |Apa itu ELK Stack?
Sebelum masuk ke instalasi, penting untuk mengetahui apa itu ELK Stack. ELK sendiri terdiri dari tiga komponen utama:
- Elasticsearch: Mesin pencari dan analisis data. Di sinilah semua log disimpan dan diindeks agar bisa dicari dengan cepat
- Logstash: Berfungsi untuk memproses data sebelum masuk ke elasticsearch
- Kibana: Antarmuka visual / dashboard untuk melohat grafik, peta serangan, dan melakukan investigasi
Tahap 1: Persiapan Infrastruktur & Network
Langkah pertama adalah menyiapkan "rumah" bagi server-server kita:
- Membuat VPC: Masuk ke menu
Product > Networkdan buat VPC agar semua VM berada dalam satu jaringan private. - Provisioning VM: Saya menggunakan Dedicated CPU (Ubuntu 22.04) dengan spesifikasi 4 vCPUs & 16GB RAM untuk server ELK agar performanya stabil saat memproses log yang besar.
- Firewall: Saya mengatur Security Groups di Vultr agar port SSH (22) hanya bisa diakses dari IP rumah saya saja demi keamanan.
Tahap 2: Instalasi Elasticsearch
1. Download & Install
# Download Package
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.3.1-amd64.deb
# Install Package
sudo dpkg -i elasticsearch-9.3.1-amd64.debCatatan Penting: Setelah instalasi, sistem akan men-generate password otomatis untuk user elastic. Simpan password ini dengan baik! > Contoh: The generated password for the elastic built-in superuser is : 5xxxxxxxxxxxxx
Konfigurasi Network
Edit file konfigurasi di /etc/elasticsearch/elasticsearch.yml:
- Ubah
network.hostmenjadi IP Public/Private server - Uncomment pada bagian
http.port: 9200
Jalankan Service
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.serviceUntuk memastikan sudah berjalan, cek statusnya:
sudo systemctl status elasticsearch.servicePastikan status menunjukkan active (running)
Tahap 3: Instalasi Kibana
Kibana akan menjadi "mata" kita untuk melihat log. Proses instalasinya mirip dengan Elasticsearch:
# Download Package
wget https://artifacts.elastic.co/downloads/kibana/kibana-9.3.1-amd64.deb
# Install Package
sudo dpkg -i kibana-9.3.1-amd64.debKonfigurasi Awal
Edit file kibana.yml untuk membuka akses dashboard.
sudo nano /etc/kibana/kibana.yml- Uncomment
server.port: 5601 - Ubah
server.host: "localhost"menjadiserver.host: "0.0.0.0"(atau IP Public VM kamu)
Jalankan Service
sudo systemctl daemon-reload
sudo systemctl enable kibana.service
sudo systemctl start kibana.serviceTahap 4: Menghubungkan Kibana ke Elasticsearch
Agar Kibana bisa membaca data, kita perlu membuat jalur komunikasi yang aman menggunakan Enrollment Token.
1. Generate Enrollment Token
Jalankan perintah ini di dalam server ELK:
cd /usr/share/elasticsearch/bin
./elasticsearch-create-enrollment-token --scope kibanaSistem akan mengeluarkan deretan kode token. Simpan token ini untuk dimasukkan ke Web GUI nanti.
2. Konfigurasi Firewall
Agar dashboard bisa diakses dari browser luar, pastikan port 5601 terbuka di OS Ubuntu:
sudo ufw allow 5601Pastikan juga di dashboard Vultr kamu sudah mengizinkan trafik TCP pada port ini.
3. Verifikasi Keamanan
Akses di browser: http://<IP_Public_VM>:5601. Masukkan token yang didapat sebelumnya. Untuk mendapatkan kode verifikasi yang diminta di browser, jalankan:
cd /usr/share/kibana/bin/
./kibana-verification-codeGunakan kode yang muncul (contoh: 208 081) untuk melanjutkan setup di browser.
Tahap 5: Setup Encryption Keys (Keamanan Lanjutan)
Saat masuk ke menu Security > Alerts, Kibana akan meminta kunci enkripsi untuk mengamankan data sesi dan laporan.
1. Generate Encryption Keys
cd /usr/share/kibana/bin/
./kibana-encryption-keys generateSistem akan menghasilkan tiga kunci unik (Save Objects, Reporting, dan Security). Catatan: Jangan sebarkan kunci ini.
2. Menyimpan Kunci ke Keystore
Alih-alih menuliskannya secara terbuka di file konfigurasi, kita akan menyimpannya dengan aman di dalam Kibana Keystore:
# Masukkan nilai kunci satu per satu saat diminta
./kibana-keystore add xpack.encryptedSavedObjects.encryptionKey
./kibana-keystore add xpack.reporting.encryptionKey
./kibana-keystore add xpack.security.encryptionKey3. Restart Final
Terapkan semua perubahan dengan me-restart service:
sudo systemctl restart kibana.servicePenutup
Selamat! Sampai tahap ini, infrastruktur SIEM (ELK Stack) sudah menyala dan siap digunakan. Dashboard Kibana sudah bisa diakses dengan aman melalui autentikasi user elastic.
Tulisan ini adalah catatan perjalanan belajar saya. Karena saya masih dalam tahap mendalami dunia Cybersecurity dan Blue Teaming, tentu masih banyak ruang untuk berkembang.
Saya sangat terbuka terhadap saran, masukan, maupun koreksi jika ada langkah atau pemahaman saya yang kurang tepat. Mari berdiskusi di kolom komentar agar kita bisa belajar bersama!