Akses SSH via Browser Tembus Firewall Kantor dengan Cloudflare Tunnel


Pernah merasa frustrasi karena butuh akses cepat ke terminal Linux di rumah, tapi terhalang firewall kantor yang super ketat? Apalagi jika kamu bekerja di instansi yang melakukan hardening baik pada jaringan hingga PC/Laptop User.

Solusinya bukan lagi port forwarding (yang berbahaya karena membuka celah IP publik rumah). Kita akan menggunakan Cloudflare Tunnel (Argo Tunnel) dan Zero Trust.

Mengapa Harus Cloudflare Tunnel?

Berbeda dengan metode tradisional, Cloudflare Tunnel bekerja dengan logika Outbound Connection:

  • Server di rumah kamu yang "menelepon" ke Cloudflare.
  • Tidak perlu buka port di router.
  • IP publik rumahmu tetap tersembunyi (masked).
  • Semua trafik dibungkus di port 443 (HTTPS), sehingga terlihat seperti browsing biasa di mata firewall kantor.

Logic Flow: Bagaimana Cara Kerjanya?

Berikut adalah gambaran sederhana alur datanya:

Langkah-langkah

Hal yang harus dan wajib adalah memiliki domain. Kita bebas sewa domain dari provider manapun. Kedua adalah mendaftarkan dan menkonfigurasi SSL/TLS domain ke Cloudflare. Ada banyak tutorial bertebaran di internet mengenai itu. Setelah semua OK, kita masuk ke langkah-langkah inti.

Langkah 1
Yaitu membuat profil tunnel dari dashboard Cloudflare. Pilih Networking > Tunnels > Create Tunnel. Buat nama profil tunnel > Create Tunnel.
Kita akan bertemu dengan halaman Setup Environment. Karena kita akan menggunakan Linux, pilih Debian. Pilihan distro Linux yang tersedia tidak terbatas untuk distro Linux yang lain. Kita tetap bisa menerapkannya ke distro Linux lain dengan memilih Debian meski kita bukan pengguna Debian (mungkin dengan sedikit sekali penyesuaian).
Ikuti saja instruksi di bagian Install and Run. Atau kalau mau dijabarkan, kita akan menjalankan perintah berikut:
sudo apt update
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update && sudo apt-get install cloudflared
sudo cloudflared service install [token_key_kamu]
sudo systemctl status cloudflared
Setelah semua perintah tersebut dijalankan, pastikan tampilan dashboard koneksi sukses. Kemudian Continue. Dan pastikan profil tunnel yang kamu buat tadi Heathy, kemudian Continue.
Klik tanda titik tiga > Configure. Akan muncul halaman baru, pilih Add route > Published Application. Kamu akan dihadapkan dengan tampilan seperti ini. Isi semua sesuai kebutuhanmu dan klik Add Route > Close.
Kalau ingin dijabarkan apa yang penting seperti ini:
Subdomain : subdomain bebas, sesuaikan kebutuhan dan keinginan kamu
Service URL : service/aplikasi yang ingin kamu remote. Karena kita ingin meremote SSH, maka isikan kurang lebih seperti di gambar.
Sekarang kembali ke halaman depan dashboard. Pilih Zero Trust > Access Controls > Applications. Sebelum kamu isi semua bagian dari menu Add an Application, perlu dahulukan membuat konfigurasi Policy. Scroll ke bawah, cari bagian Access Policies > Create New Policy. Akan terbuka tab baru di browser. 
Policy Name isi dengan nama bebas, disini saya isikan ‘aksesubuntu’. Add Rules adalah cara bagaimana nanti SSH dapat diakses dari browser, disini saya menggunakan email dummy. Connection Context disini digunakan untuk memberikan peraturan apa saja yang bisa dilakukan User ke VM dan sebaliknya dalam hal Copy-Paste. Disini saya pakai dua arah (dari terminal bisa dicopas ke user, dari user bisa copas ke terminal). Lainnya abaikan saja dan Save.
Kembali ke dashboard Add an Application > Access Policies > Select existing policies > pilih aksesubuntu yang kita buat tadi > Confirm.
Kembali ke halaman dashboard. Perhatikan bagian Login Methods, Pastikan One-time PIN sudah tercentang. Ini yang akan mengirim kode angka ke emailmu saat kamu mencoba akses nanti. Isikan juga semua bagian yang masih kosong tadi. Kurang lebih nantinya seperti ini dan Next > Next > Save:

Wokay! Sekarang tinggal kita tes akses subdomain yang kita buat (ex. ssh.majesty.my.id). Masukkan email yang kita gunakan untuk verifikasi, masukkan PIN atau OTP yang dikirim ke alamat email kita, masukkan username Linux, password Linux, dan woylah! Harusnya kita mendapatkan tampilan seperti ini:



Posting Komentar

0 Komentar