Seiring meningkatnya penggunaan VPS untuk hosting website, aplikasi, dashboard monitoring, hingga layanan self-hosted seperti Proxmox, Grafana, dan Nextcloud, keamanan menjadi salah satu aspek yang tidak boleh diabaikan.
Banyak administrator masih mengakses layanan mereka dengan membuka port publik seperti 80, 443, 8080, atau bahkan 8006 untuk Proxmox. Cara ini memang mudah, tetapi juga meningkatkan risiko serangan seperti brute force, port scanning, exploit terhadap aplikasi, dan kebocoran alamat IP server.
Salah satu solusi modern yang banyak digunakan adalah Cloudflare Zero Trust yang dikombinasikan dengan Cloudflare Tunnel. Teknologi ini memungkinkan layanan di VPS tetap dapat diakses dari internet tanpa harus membuka port aplikasi ke publik.
Dengan Cloudflare Zero Trust, administrator dapat:
- Menyembunyikan IP asli VPS.
- Mengurangi risiko serangan langsung ke server.
- Menambahkan autentikasi tambahan sebelum pengguna mengakses aplikasi.
- Mengelola akses berdasarkan email, grup pengguna, atau identitas tertentu.
- Mengakses layanan internal secara aman dari mana saja.
Artikel ini membahas langkah-langkah implementasi Cloudflare Zero Trust pada VPS berbasis Linux secara lengkap, mulai dari instalasi hingga troubleshooting.

Persiapan Sebelum Instalasi
Sebelum memulai konfigurasi, pastikan tersedia:
Kebutuhan Sistem
- VPS Ubuntu 22.04 atau Debian 12
- Domain aktif yang sudah menggunakan Cloudflare DNS
- Akun Cloudflare
- Hak akses root atau sudo
- Koneksi internet yang stabil
Tutorial Konfigurasi Cloudflare Zero Trust
1. Mengaktifkan Cloudflare Zero Trust
Login ke dashboard Cloudflare.
Pilih menu:
Zero Trust
Jika baru pertama kali menggunakan layanan ini, Cloudflare akan meminta pembuatan organisasi.
Contoh:
Nama Organisasi: homelab
Pilih paket Free karena sudah cukup untuk sebagian besar kebutuhan VPS pribadi.
2. Menginstal Cloudflared di VPS
Perbarui repository sistem:
sudo apt update
sudo apt upgrade -y
Unduh paket cloudflared:
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
Install paket:
sudo dpkg -i cloudflared-linux-amd64.deb
Verifikasi instalasi:
cloudflared --version
Jika berhasil akan muncul informasi versi cloudflared.
3. Menghubungkan VPS ke Akun Cloudflare
Jalankan perintah:
cloudflared tunnel login
Sistem akan menghasilkan URL autentikasi.
Contoh:
https://dash.cloudflare.com/argotunnel?token=xxxx
Pilih domain yang akan digunakan untuk tunnel. Setelah proses selesai, file sertifikat akan tersimpan secara otomatis pada VPS.
4. Membuat Tunnel Baru
Buat tunnel dengan nama yang mudah dikenali:
cloudflared tunnel create vps-tunnel
Contoh hasil:
Created tunnel vps-tunnel
Tunnel ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Catat Tunnel ID tersebut karena akan digunakan pada konfigurasi berikutnya.
5. Membuat DNS Record Otomatis
Misalnya ingin membuat subdomain:
grafana.domainanda.com
Jalankan:
cloudflared tunnel route dns vps-tunnel grafana.domainanda.com
Cloudflare akan membuat DNS record secara otomatis.
6. Membuat File Konfigurasi Tunnel
Buat direktori konfigurasi:
sudo mkdir -p /etc/cloudflared
Buat file konfigurasi:
sudo nano /etc/cloudflared/config.yml
Isi file:
tunnel: TUNNEL-ID
credentials-file: /root/.cloudflared/TUNNEL-ID.json
ingress:
- hostname: grafana.domainanda.com
service: http://localhost:3000
- service: http_status:404
Ganti:
- TUNNEL-ID dengan ID tunnel milik Anda.
- grafana.domainanda.com dengan domain yang digunakan.
Simpan konfigurasi.
7. Menjalankan Tunnel Sebagai Service
Install service:
sudo cloudflared service install
Aktifkan service:
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
Periksa status:
sudo systemctl status cloudflared
Jika muncul:
active (running)
berarti tunnel sudah berjalan normal.
8. Menambahkan Proteksi Login dengan Zero Trust Access
Masuk ke dashboard Zero Trust.
Pilih:
Access
→ Applications
→ Add Application
Pilih:
Self-hosted
Masukkan hostname:
grafana.domainanda.com
Klik Next.
9. Membuat Access Policy
Contoh hanya memperbolehkan email tertentu:
Action : Allow
Include :
Email
[email protected]
Atau seluruh domain perusahaan:
Action : Allow
Include :
Email Domain
perusahaan.com
Simpan konfigurasi.
Sekarang setiap pengguna harus melakukan autentikasi sebelum mengakses aplikasi.
10. Konfigurasi untuk Proxmox
Jika ingin mengamankan panel Proxmox:
- hostname: proxmox.domainanda.com
service: https://192.168.1.10:8006
originRequest:
noTLSVerify: true
Kemudian tambahkan aplikasi baru pada Cloudflare Access menggunakan hostname tersebut.
Dengan konfigurasi ini, panel Proxmox tidak lagi diekspos langsung ke internet.
Problem dan Solusi
Problem 1: Tunnel Tidak Mau Berjalan
Gejala
systemctl status cloudflared
failed
Penyebab
- File konfigurasi salah.
- Tunnel ID tidak sesuai.
- File credential hilang.
Solusi
Validasi konfigurasi:
cloudflared tunnel ingress validate
Pastikan lokasi file credential benar.
Problem 2: Domain Tidak Bisa Diakses
Gejala
Browser menampilkan:
Host Not Found
Penyebab
DNS record belum dibuat.
Solusi
Periksa DNS:
cloudflared tunnel route dns vps-tunnel subdomain.domain.com
Pastikan record muncul pada dashboard DNS Cloudflare.
Problem 3: Error 502 Bad Gateway
Gejala
Cloudflare menampilkan:
502 Bad Gateway
Penyebab
Aplikasi tujuan tidak berjalan.
Solusi
Pastikan service aktif:
sudo systemctl status grafana-server
atau
docker ps
Pastikan port yang dituju sesuai dengan konfigurasi ingress.
Problem 4: Login Cloudflare Berulang-Ulang
Penyebab
Cookie browser diblokir.
Solusi
- Izinkan third-party cookie.
- Gunakan browser terbaru.
- Bersihkan cache browser.
Problem 5: Proxmox Tidak Bisa Login
Penyebab
Proxmox menggunakan sertifikat self-signed.
Solusi
Tambahkan parameter:
originRequest:
noTLSVerify: true
Kemudian restart cloudflared:
sudo systemctl restart cloudflared
Best Practice Keamanan
Untuk meningkatkan keamanan VPS, beberapa rekomendasi berikut dapat diterapkan:
- Gunakan autentikasi dua faktor (2FA) pada akun Cloudflare.
- Batasi akses hanya untuk email tertentu.
- Nonaktifkan password login SSH dan gunakan SSH Key.
- Rutin memperbarui sistem operasi VPS.
- Gunakan firewall seperti UFW.
- Jangan membuka port aplikasi ke internet jika sudah menggunakan Cloudflare Tunnel.
- Monitoring log akses secara berkala.
Kesimpulan
Cloudflare Zero Trust merupakan solusi modern untuk mengamankan layanan yang berjalan pada VPS tanpa harus membuka port publik. Dengan memanfaatkan Cloudflare Tunnel, administrator dapat menyembunyikan alamat IP server sekaligus memberikan lapisan autentikasi tambahan sebelum pengguna mengakses aplikasi.
Implementasi ini sangat cocok digunakan untuk berbagai layanan seperti Proxmox, Grafana, Portainer, Nextcloud, Home Assistant, maupun aplikasi internal perusahaan. Selain meningkatkan keamanan, konfigurasi ini juga mempermudah pengelolaan akses karena seluruh autentikasi dapat dikontrol langsung melalui dashboard Cloudflare Zero Trust.
Bagi pengguna VPS pribadi maupun administrator infrastruktur skala kecil hingga menengah, Cloudflare Zero Trust menjadi salah satu solusi yang efektif, gratis untuk kebutuhan dasar, dan relatif mudah diimplementasikan.