AizuDemy

Tutorial Setup Zero Trust Mesh Network Pakai Nebula VPN di VPS Linux

Tutorial Setup Zero Trust Mesh Network Pakai Nebula VPN di VPS Linux
IKLAN
IDCloudHost
🎧
Dengarkan Artikel Ini
Suara AI Otomatis β€’ 4 mnt baca baca
⚑ TL;DR

Poin Kunci Artikel Ini:

  • Baru 5 menit VPS Linux aktif di cloud, log biasanya langsung dibombardir ribuan percobaan login SSH dari bot otomatis.
  • Whitelist IP di firewall cloud memang membantu, tapi langsung merepotkan saat IP VPS berubah atau butuh scaling cepat.1.
  • Mengapa Port VPS Terbuka Sangat Berbahaya?Setiap port terbuka adalah pintu masuk penyerang.
πŸ“‹ Daftar Isi Materi Tutup β–΄

Baru 5 menit VPS Linux aktif di cloud, log /var/log/auth.log biasanya langsung dibombardir ribuan percobaan login SSH dari bot otomatis. Ini realita mengelola server publik.

Kebiasaan membuka port internalβ€”seperti PostgreSQL (5432), Redis (6379), atau port microservicesβ€”ke IP publik agar antar-server bisa berkomunikasi sangat berisiko. Whitelist IP di firewall cloud memang membantu, tapi langsung merepotkan saat IP VPS berubah atau butuh scaling cepat.

1. Mengapa Port VPS Terbuka Sangat Berbahaya?

Setiap port terbuka adalah pintu masuk penyerang. Bot scanner seperti Shodan bekerja 24 jam memindai port rentan di seluruh rentang IP publik global.

VPN terpusat tradisional (Hub-and-Spoke) seperti OpenVPN sering membuat leher botol (bottleneck). Semua trafik antar-VPS harus memantul ke satu server VPN utama sebelum sampai ke tujuan. Latensi membengkak, bandwidth terpusat.

Di sinilah konsep Zero Trust Mesh Network bekerja. Jaringan publik tidak dipercayai sama sekali. Tim engineer Slack mengembangkan Nebula, tool VPN P2P (peer-to-peer) terenkripsi mutual TLS. Data antar-server terhubung langsung tanpa melewati server perantara.

2. Tiga Komponen Utama Nebula VPN

Pahami tiga elemen vital dalam arsitektur Nebula sebelum eksekusi perintah:

  • Certificate Authority (CA): Kunci master untuk menandatangani sertifikat setiap node. CA disimpan di komputer lokal yang aman, bukan di VPS publik.
  • Lighthouse: Server penunjuk jalan (IP directory). Lighthouse membantu node menemukan IP publik asli milik peer lain untuk menginisiasi koneksi P2P. Setelah terhubung, data payload tidak lewat Lighthouse.
  • Node / Client: Server aplikasi, database, atau laptop admin yang terhubung ke jaringan mesh Nebula.

3. Panduan Step-by-Step Setup Nebula Mesh

Langkah 1: Unduh Binary Nebula

Unduh paket release Nebula terbaru di mesin lokal dan semua VPS Linux Anda.

wget https://github.com/slackhq/nebula/releases/download/v1.9.0/nebula-linux-amd64.tar.gz
tar -xvf nebula-linux-amd64.tar.gz
sudo mv nebula nebula-cert /usr/local/bin/

Langkah 2: Buat Certificate Authority (CA) di Mesin Lokal

Jalankan perintah ini HANYA di komputer lokal yang aman untuk membuat sertifikat induk:

nebula-cert ca -name "MyCompany-Mesh"

Perintah ini menghasilkan dua file: ca.crt (sertifikat publik) dan ca.key (kunci rahasia master). Simpan ca.key dengan sangat hati-hati.

Langkah 3: Buat Sertifikat untuk Lighthouse dan Host Node

Generate sertifikat untuk server Lighthouse (IP Nebula: 192.168.100.1) dan App Server (IP Nebula: 192.168.100.2):

# Sertifikat Lighthouse
nebula-cert sign -name "lighthouse01" -ip "192.168.100.1/24"

# Sertifikat App Server (dengan grup app dan web)
nebula-cert sign -name "app01" -ip "192.168.100.2/24" -groups "app,web"

Langkah 4: Konfigurasi Server Lighthouse

Salin file ca.crt, lighthouse01.crt, dan lighthouse01.key ke VPS Lighthouse di folder /etc/nebula/. Buat file /etc/nebula/config.yml:

pki:
  ca: /etc/nebula/ca.crt
  cert: /etc/nebula/lighthouse01.crt
  key: /etc/nebula/lighthouse01.key

static_host_map:
  "192.168.100.1": ["IP_PUBLIK_LIGHTHOUSE:4242"]

lighthouse:
  am_lighthouse: true
  interval: 10

listen:
  host: 0.0.0.0
  port: 4242

firewall:
  outbound:
    - port: any
      proto: any
      host: any
  inbound:
    - port: any
      proto: any
      host: any

Langkah 5: Konfigurasi Node Client (App Server)

Salin file ca.crt, app01.crt, dan app01.key ke App Server di folder /etc/nebula/. Buat file /etc/nebula/config.yml:

pki:
  ca: /etc/nebula/ca.crt
  cert: /etc/nebula/app01.crt
  key: /etc/nebula/app01.key

static_host_map:
  "192.168.100.1": ["IP_PUBLIK_LIGHTHOUSE:4242"]

lighthouse:
  am_lighthouse: false
  interval: 10
  hosts:
    - "192.168.100.1"

listen:
  host: 0.0.0.0
  port: 4242

firewall:
  outbound:
    - port: any
      proto: any
      host: any
  inbound:
    - port: 22
      proto: tcp
      group: admin
    - port: 5432
      proto: tcp
      group: app

Langkah 6: Jalankan Service Nebula via Systemd

Buat file /etc/systemd/system/nebula.service agar Nebula berjalan otomatis saat reboot:

[Unit]
Description=Nebula overlay networking daemon
After=network.target

[Service]
ExecStart=/usr/local/bin/nebula -config /etc/nebula/config.yml
Restart=always

[Install]
WantedBy=multi-user.target

Aktifkan dan jalankan service:

sudo systemctl daemon-reload
sudo systemctl enable --now nebula

4. Best Practice Firewall & Troubleshooting Peer Connection

Keunggulan utama Nebula terletak pada fitur internal firewall berbasis grup (Group-Based Security Control).

Mengamankan Cloud Firewall (UFW / AWS Security Group)

Di dashboard provider VPS (AWS, DigitalOcean, Hetzner), buka hanya port 4242 UDP. Semua port layanan lain seperti SSH (22), PostgreSQL (5432), atau Redis (6379) ditutup total dari IP publik.

Troubleshooting Koneksi Peer

Jika node gagal terhubung atau ping ke IP Nebula (192.168.100.x) RTO (Request Timed Out), periksa hal berikut:

  • Cek Port UDP 4242: Pastikan firewall VPS tidak memblokir lalu lintas UDP port 4242.
  • Log Handshake: Jalankan sudo nebula -config /etc/nebula/config.yml -log-level debug untuk melihat proses handshake P2P.
  • Cek NAT Traversal: Nebula otomatis menggunakan Hole Punching untuk menembus NAT. Jika gagal, pastikan Lighthouse bisa dijangkau oleh kedua node via IP publik.

5. Kesimpulan & Langkah Aksi Praktis

Penerapan Slack Nebula VPN mengubah arsitektur jaringan VPS yang rentan di internet publik menjadi Zero Trust Mesh Network terenkripsi penuh.

Langkah Aksi Pertama: Segera isolasi port database Anda. Pasang Nebula di dua VPS uji coba, bind service database ke IP overlay Nebula (192.168.100.x), lalu tutup akses port database dari IP publik di cloud firewall Anda.

A
Aizu Dev

Tim penulis AizuDemy yang menyajikan tutorial teknologi, cloud, dan pengembangan perangkat lunak dalam Bahasa Indonesia.

πŸ’¬ Komentar (0)

Tulis Komentar

πŸ“– Artikel Terkait