Tutorial Setup Zero Trust Mesh Network Pakai Nebula VPN di VPS Linux
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.
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: anyLangkah 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: appLangkah 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.targetAktifkan dan jalankan service:
sudo systemctl daemon-reload
sudo systemctl enable --now nebula4. 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 debuguntuk 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.




π¬ Komentar (0)
Tulis Komentar