Senin, 13 Januari 2025

Implementasi Zero Trust dengan Cloudflared Tunnel

 Halo guys,
Ridwan heres.. come again with new notes update!

Pernah ndak kalian memiliki pengalaman harus pindah2 jaringan VPN milik client, Di mana masing-masing client mempunyai cara sendiri untuk dapat diakses. Seperti menggunakan VPN gateway tertentu "Fortigate/GlobalProtect/BIG-IP/lainnya.

Di saat  kita sudah connect ke client A, kemudiaan perlu connect ke Client B, mau tidak mau harus re-connect dari VPN Gateway tersebut.

Hal ini menjadi keresahaan.. aku berpikir untuk seamlessly. Bagaimana connect ke client dari laptop langsung tampa perlu2 VPN Gateway.

As Cloud Consulant, diriku harus menguasai hal-hal terkait "Cloud Technology" salah satunya "Cloud Security" dan yang akan kita bahas ini "Zero Trust" dari Cloudflare. Dengan menggunakan ini kita dapat connect ke server dengan mudah & tetap aman!!

Ok.. Kita bahas dahulu, apa itu Cloudflare Tunnel ini.

About :
Cloudflare Tunnel provides you with a secure way to connect your resources to Cloudflare without a publicly routable IP address. 
https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/

Use cases:
This tunnel can connect HTTP web servers, SSH servers, remote desktops, and other protocols safely to Cloudflare. Your origins can serve traffic through Cloudflare without being vulnerable to attacks that bypass Cloudflare.
- https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/

Topology :

Bisa dilihat, services tersebut melewati aplikasi/services "cloudlflared". Jadi baik di sisi server atau client harus saling menggunakan services cloudlflared agar bisa saling terhubung.

Pre-requisite :
- Account cloudflare (free)
- Registered Domain ( saya menggunakan domain "ridwan.pro" )


Ok, langsung aja kita coba!


### Pada Sisi Server

Dsini saya menggunakan VM dengan OS Centos/RHEL, 
Langsung saja kita login ke cloudflare dashboard ke
- https://dash.cloudflare.com/

kemudian pilih menu "Zero Trust", di menu sebelah kiri

Setelah tampil dashboard "Zero Trust" pilih menu "Network" > "Tunnel" > "Create Tunnel" kemudian select type "CloudFlared"

sekarang lakukan install dan configure connector "cloudflared" pada server yang akan kita forward.

1. Choose your environment
pilih operating system & architecture sesuai kebutuhan server kalian

2. Install and run a connector
lanjut ke proses instalasi dari services "cloudflared" ikut langkah-langkah sesuai yang tampil pada dashboard tersebut dan eksekusi langkah pada server yang akan di tunnel tersebut.

3. Connector Status
Kembali ke dashboard, tunggu hingga instalasi selesai tampil status "Connected"

Kemudian Klik Next,

4. Setup End-point Tunnel
akan tampil seperti berikut :

Pada gambar di atas, kenapa url nya 127.0.01 ?
Penjelasannya karena aplikasi "cloudflared" ini akan melakukan connect ssh ke localhost/dirinya sendiri..
Jadi jika kalian ingin melakukan remote pada server lain yg masih satu jaringan dengan server yg sudah terinstall "Cloudflared" tunnel ini..
Kalian ta pelu install lagi pada server selanjutnya, Cukup memasukan IP server tersebut pada colums url tersebut agar aplikasi nya yang akan membuka koneksi ke server selanjutnya.



### Pada Sisi Client

Disini sebagai ssh-client saya menggunakan "Windows 11" 
Kita akan mencoba menggunakan aplikasi Putty/MobaExterm dan ssh cmd, kebetulan di windows versi ini sudah ada binary ssh client.

Download & install aplikasi "Cloudflared", pada official web nya.
- https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/

Seperti gambar topology di atas.. antara Server & Client harus saling terhubung ke aplikasi "Cloudflared".

ssh-client harus di arahkan ke end-point yang tadi kita setup, dan mengarahkan ke local proxy dari "Cloudflared" sesuai dokumentasi ini - https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-cloudflared-authentication/#1-connect-the-server-to-cloudflare

Berikut untuk caranya :

PuTTY Client : 


Pada bagian host pada putty masukan end-point sesuai yang kita buat.

 
Kemudian masuk ke menu Pory, isikan seperti berikut
 
Command :
cloudflared.exe access ssh --hostname %host

jika sudah semua, langsung test conneted

Seperti yang terlihat, pada gambar terminal di atas.. login ssh kita mengarah ke "test.ridwan.pro" dan terdapat last login dari sebelumnya melalui 127.0.0.1 sesuai keterangan diatas.


MobaXterm :

Masuk ke menu Session > SSH > Network Settings. lakukan config local proxy seperti putty.


SSH Binary :






Kita perlu menambahkan file "config" yang berada pada directory ".ssh" , isikan seperti berikut :

Linux

Host ssh.example.com
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h

Windows

Host ssh.example.com
ProxyCommand C:\Program Files (x86)\cloudflared\cloudflared.exe access ssh --hostname %h

 Tujuan nya agar aplikasi "cloudflared" ini menerjemahkan domain end-point ke jaringan cloudflare.

https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/use-cases/ssh/ssh-cloudflared-authentication/

Dengan begini, kalian tidak perlu lagi connect ke client menggunakan VPN Gateway yang rempong itu, cukup sekali setup dan buat Bookmart pada MobaExterm atau buat Saved Session Putty. 

Oiya.. cloudflared ini info nya tidak hanya dapat men-tunnel port 22/ssh, tapi juga services port lainnya,
Silakan dicoba!.

Share: