Onlinekan Proxmox dengan ZeroTrust CloudFlare - Rumah IT

Baru

recent

Onlinekan Proxmox dengan ZeroTrust CloudFlare

Onlinekan Proxmox dengan ZeroTrust CloudFlare

Saya adalah penguna setia Proxmox dalam soal virtualisasi server. Saya menggunakannya sebagai hypervisor Tipe-1 yang diinstal di server lokal dan berada di jaringan lokal. Saya selalu mengakses proxmox hanya ketika di kantor saja menggunakan jaringan perusahaan. Saya merencanakan agar server proxmox ini bisa diakses secara online agar ketika saya diluar kantor atau sedang berada dirumah masih tetap bisa terkoneksi dengan server untuk konfigurasi server.


Saya awalnya menjalankan NGINX reserve proxy untuk mengakses Proxmox saya dari jarak jauh. Namun, ketika saya beralih ke pfSense Saya mulai menggunakan haProxy. Saya mengalami beberapa masalah besar dengan haProxy dan Proxmox. Saya dapat terhubung ke antarmuka admin dan mengakses VM melalui noVNC tetapi VM akan terputus terus-menerus. Saya memerlukan solusi yang berbeda, jadi saya mulai mencari tau Cloudflare Tunnel, yang awalnya disebut  Argo Tunnel.

Sebenarnya ada yang lebih mudah cara untuk mengakses Proxmox secara online yaitu dengan memanfaatkan fitur NAT forwarding pada MikroTik. Namun untuk menggunakan fitur tersebut kita memerlukan IP public agar bisa diakses secara online via internet. Penggunaan mikrotik dan IP public memang lebih mudah tetapi tidak semua orang memilikinya. Disamping itu faktor resource dan keamanan dari sisi jaringan juga harus diperhatikan jika kita ingin menggunakan forwarding ke IP public via mikrotik.

Untuk solusi terakhir ini jauh lebih mudah dan lebih baik dari sisi resource maupun keamanan. Kita akan memanfaatkan fitur Zero Trust pada layanan cloudflare. Ini bisa kita gunakan secara gratis tanpa harus membayar biaya langganan.

Cara kerjanya adalah dengan memanfaatkan tunneling. Server proxmox yang berada di lokal diteruskan ke argo tunnel milik cloudflare dan bisa kita akses melalui domain. Jadi syarat menggunakan layanan tunnel di zero trust cloudflare adalah kita harus memiliki satu domain aktif yang sudah terhubung ke nameserver cloudflare. Pada artikel sebelumnya saya sudah membahas Cara Menghubungkan Domain ke Cloudflare.

Sebelum melanjutkan ke langkah dibawah, pastikan kamu sudah mempunyai akun cloudflare dan sudah mempunyai domain aktif yang sudah terhubung ke nameserver cloudflare. Jika kamu baru menghubungkan domain ke nameserver Cloudflare, silahkan tunggu sekitar 1x24 jam untuk proses propagasi DNS.

Langkah 1 : Instal Cloudflared

Login ke proxmox menggunakan ssh client untuk mengunduh dan mengkonfigurasi paket yang diperlukan.

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && dpkg -i cloudflared-linux-amd64.deb

Setelah itu login ke akun cloudflare.

cloudflared tunnel login

Perintah ini akan menghasilkan sebuah link untuk login ke akun cloudflare. Silahkan copy ke browser dan login menggunakan akun cloudflare.

Langkah 2 : Membuat Tunnel Baru

Buat sebuah tunnel baru dengan nama bebas.

cloudflared tunnel create nama_tunnel

Ketika perintah dijalankan maka akan menghasilkan ID tunnel. Salin ID tunnel ini dan simpan untuk nanti ketika kita membutuhkannya. Setelah membuat tunnel baru, lanjut membuat file config.yml.

nano ~/.cloudflared/config.yml

File ini kemungkinan besar kosong sehingga kita harus mengonfigurasinya secara manual. Sesuaikan dengan ID tunnel dan domain masing-masing.

tunnel: ID_tunnel
credentials-file: /root/.cloudflared/ID_tunnel.json

ingress:
  - hostname: domain-kamu.com
    service: https://localhost:8006
    originRequest:
       disableChunkedEncoding: true
       noTLSVerify: true
  - service: http_status:404

Keterangan :

nonaktifkanChunkedEncoding

Saya tidak 100% yakin mengapa Proxmox menggunakan Chunked Encoding tetapi saya dapat mengonfirmasi melalui pengujian saya bahwa menghilangkan perintah ini akan mencegah Anda memulai/menghentikan VM melalui tunnel. Tunnel Cloudflare tidak mendukung HTTP Chunked Encoding.

noTLSVerifikasi

Karena Proxmox memiliki sertifikat SSL yang ditandatangani sendiri, Kita perlu memberi tahu Cloudflare untuk mengabaikan sertifikat tersebut dan tidak ada upaya untuk memverifikasi keasliannya terhadap CA.

Langkah 3 : Buat permintaan CNAME di DNS Domain

Kita perlu membuat permintaan CNAME untuk tunnel agar tunnel bisa diakses menggunakan domain yang sudah terhubung ke cloudflare.

cloudflared tunnel route dns ID_tunnel domain-anda.com

Untuk memastikan bahwa CNAME sudah terdaftar di record DNS domain, silahkan akses dashboard cloudflare di https://dash.cloudflare.com/ pada menu Websites pilih salah satu domain yang aktif. Kemudian pilih pada menu DNS --> Record. Pastikan muncul CNAME baru seperti gambar dibawah ini.

Onlinekan Proxmox dengan ZeroTrust CloudFlare

Langkah 4 : Jalankan Tunnel

Agar server proxmox kita terhubung ke tunnel cloudflare yang baru kita buat, silahkan jalankan tunnel dengan perintah berikut. 

cloudflared tunnel run ID_tunnel

Pastikan yang kita masukkan adalah ID Tunnel bukan nama tunnel.

Onlinekan Proxmox dengan ZeroTrust CloudFlare

Langkah 5 : Akses Dashboard Zero Trust Cloudflare

Untuk memonitoring tunnel kita silahkan akses halaman dashboard zero trust di https://one.dash.cloudflare.com lalu ke menu Access --> Tunnels .

Onlinekan Proxmox dengan ZeroTrust CloudFlare

Kita bisa melihat beberapa informasi tunnel seperti nama tunnel, ID tunnel, status, domain dan uptime. Kita bisa menambahkan beberapa tunnel disini untuk server proxmox yang lain. Jika domain utama sudah digunakan oleh tunnel lain kita bisa menggunakan subdomain. Contoh domain imamsyafii.my.id sudah saya gunakan untuk route tunnel Lab-Imam. Maka jika akan membuat tunnel baru lagi bisa menggunakan subdomain server2.imamsyafii.my.id dan seterusnya.
All Rights Reserved by Rumah IT - Rumah Teknologi Informasi © 2013 - 2022
Powered By Blogger

Contact Form

Name

Email *

Message *

Powered by Blogger.