Beranda
Mengakses Server SSH Melalui Cloudflare Tunnel dengan Port Forwarding PostgreSQL
Mengakses Server SSH Melalui Cloudflare Tunnel dengan Port Forwarding PostgreSQL

Mengakses Server SSH Melalui Cloudflare Tunnel dengan Port Forwarding PostgreSQL

Khaidir Fahram 09 Mar 2026 Note 90 Views

Dalam banyak arsitektur infrastruktur modern, administrator tidak lagi membuka port SSH langsung ke internet. Salah satu pendekatan yang semakin populer adalah menggunakan Cloudflare Tunnel (cloudflared) untuk mengakses server secara aman tanpa membuka port publik.

Konfigurasi SSH

Berikut contoh konfigurasi yang dapat ditambahkan pada file:

~/.ssh/config
Host my-db
  HostName db.example.com
  User ubuntu
  ProxyCommand cloudflared access ssh --hostname %h
  LocalForward 5432 127.0.0.1:5432

Konfigurasi ini memungkinkan kita mengakses server melalui Cloudflare Tunnel dan secara bersamaan membuat tunnel lokal ke PostgreSQL yang berjalan di server.

Penjelasan Setiap Parameter

Host

Host my-db

Ini adalah alias koneksi SSH. Setelah konfigurasi dibuat, kita tidak perlu lagi menuliskan hostname panjang. Cukup menjalankan:

ssh my-db

SSH akan otomatis menggunakan konfigurasi yang telah didefinisikan.

HostName

HostName db.example.com

Merupakan hostname server tujuan yang terhubung dengan Cloudflare Tunnel.

Hostname ini biasanya sudah dikonfigurasi di Cloudflare Zero Trust untuk akses SSH.

User

User ubuntu

User Linux yang digunakan untuk login ke server.
Contoh umum:

  • ubuntu

  • ec2-user

  • root

  • deploy

ProxyCommand

ProxyCommand cloudflared access ssh --hostname %h

Parameter ini mengganti metode koneksi SSH standar dengan Cloudflare Access SSH.

Penjelasannya:

  • cloudflared access ssh menjalankan koneksi SSH melalui Cloudflare Tunnel

  • %h akan diganti otomatis dengan nilai dari HostName

Ketika kita menjalankan:

ssh my-db

SSH sebenarnya menjalankan perintah internal seperti berikut:

cloudflared access ssh --hostname db.example.com

Dengan cara ini:

  • server tidak perlu membuka port 22

  • koneksi SSH melewati jaringan Cloudflare Zero Trust

  • keamanan meningkat karena dilindungi Access policy

LocalForward

LocalForward 5432 127.0.0.1:5432

Parameter ini membuat SSH Local Port Forwarding.

Artinya:

Local Machine:5432  →  Remote Server:127.0.0.1:5432

Jika server menjalankan PostgreSQL pada:

127.0.0.1:5432

Maka setelah SSH aktif, database dapat diakses dari komputer lokal melalui:

localhost:5432

Contoh koneksi menggunakan PostgreSQL client:

psql -h localhost -p 5432 -U postgres

Atau melalui aplikasi seperti:

  • DBeaver

  • TablePlus

  • DataGrip

  • pgAdmin

Semua aplikasi tersebut cukup diarahkan ke:

Host: localhost
Port: 5432

Padahal sebenarnya koneksi diteruskan ke database di server.

Cara Menggunakan

Setelah konfigurasi disimpan, jalankan:

ssh my-db

SSH akan:

  1. Membuat koneksi melalui Cloudflare Tunnel

  2. Login ke server menggunakan user ubuntu

  3. Membuka tunnel PostgreSQL

Selama koneksi SSH aktif, database dapat diakses dari:

localhost:5432

Keuntungan Pendekatan Ini

Menggunakan Cloudflare Access + SSH Tunnel memberikan beberapa keuntungan:

1. Tidak perlu membuka port SSH publik

Server tidak perlu membuka port 22 ke internet.

2. Perlindungan Zero Trust

Akses dapat dibatasi menggunakan:

  • email login

  • identity provider

  • device posture

  • IP restriction

3. Database tetap private

PostgreSQL tetap berjalan di:

127.0.0.1

Sehingga tidak bisa diakses langsung dari internet.

4. Aman untuk Production

Metode ini sering digunakan pada arsitektur modern seperti:

  • Docker server

  • Kubernetes node

  • private VPS

  • internal database server

Kesimpulan

Dengan kombinasi Cloudflare Tunnel dan SSH Local Forwarding, administrator dapat mengakses server dan database secara aman tanpa membuka port publik.

Konfigurasi sederhana berikut sudah cukup untuk membuat koneksi yang aman dan efisien:

Host my-db
  HostName db.example.com
  User ubuntu
  ProxyCommand cloudflared access ssh --hostname %h
  LocalForward 5432 127.0.0.1:5432

Cukup jalankan:

ssh my-db

dan database PostgreSQL di server akan tersedia di:

localhost:5432

Pendekatan ini sangat cocok digunakan untuk akses database production yang aman melalui Cloudflare Zero Trust.