Panduan Lengkap: Instalasi Cloudflare Tunnel di OpenWrt untuk Akses Aman Tanpa Port Forwarding

Panduan Lengkap: Instalasi Cloudflare Tunnel di OpenWrt untuk Akses Aman Tanpa Port Forwarding

Apakah Anda ingin mengakses perangkat atau layanan di jaringan rumah dari mana saja dengan aman, tanpa repot membuka port di router atau berhadapan dengan masalah CGNAT? Cloudflare tunnel adalah solusinya, dan perangkat OpenWrt Anda adalah platform yang sempurna untuk mewujudkaya. Artikel ini akan memandu Anda langkah demi langkah dalam menginstal dan mengkonfigurasi Cloudflare tunnel (sebelumnya dikenal sebagai Argo tunnel) di router OpenWrt Anda, memungkinkan akses aman ke layanan internal seperti SSH, antarmuka web LuCI, atau bahkan server lokal laiya, langsung melalui jaringan Cloudflare.

Cloudflare tunnel menciptakan koneksi aman yang terenkripsi antara server Anda (dalam hal ini, router OpenWrt Anda) dan jaringan Cloudflare, tanpa perlu membuka port masuk pada firewall Anda. Ini berarti Anda tidak hanya meningkatkan keamanan dengan menyembunyikan alamat IP asli Anda, tetapi juga mengatasi batasan seperti CGNAT (Carrier-Grade NAT) yang sering membuat port forwarding tradisional menjadi mustahil.

Mengapa Menggunakan Cloudflare tunnel di OpenWrt?

  • Keamanan Maksimal: Tidak perlu membuka port di router, mengurangi permukaan serangan.
  • Mengatasi CGNAT: Lewati batasan ISP yang tidak mengizinkan port forwarding.
  • Kinerja Unggul: Manfaatkan jaringan global Cloudflare untuk koneksi yang cepat dan andal.
  • Identitas Tersembunyi: Alamat IP publik Anda tetap tersembunyi dari dunia luar.
  • Manajemen Akses Mudah: Integrasi dengan Cloudflare Access untuk otentikasi tambahan.
  • Efisiensi Sumber Daya: OpenWrt adalah sistem operasi ringan, cocok untuk menjalankan Cloudflared.

Persiapan Awal Sebelum Instalasi

Sebelum memulai, pastikan Anda memiliki hal-hal berikut:

  • Router OpenWrt: Perangkat router dengan OpenWrt terinstal dan dapat diakses via SSH.
  • Akses SSH: Pastikan Anda bisa login ke router OpenWrt Anda menggunakan SSH (misalnya dengan PuTTY atau Terminal).
  • Akun Cloudflare: Akun Cloudflare aktif dengan domain yang telah ditambahkan dan diaktifkan proxynya.
  • Pengetahuan Dasar Linux: Familiaritas dengan perintah dasar Linux akan sangat membantu.

Langkah 1: Instalasi Cloudflared di OpenWrt

cloudflared adalah daemon yang menjalankan Cloudflare tunnel. Karena OpenWrt menggunakan arsitektur ARM atau MIPS, kita perlu mengunduh biner yang sesuai.

1.1. Menentukan Arsitektur OpenWrt Anda

Login ke router OpenWrt via SSH dan jalankan perintah berikut untuk mengetahui arsitektur CPU Anda:


opkg print-architecture

Catat outputnya, misalnya arm_cortex-a7_neon-vfpv4 atau mipsel_24kc. Ini penting untuk mengunduh biner yang tepat.

1.2. Mengunduh Biner Cloudflared

Kunjungi halaman rilis Cloudflare tunnel di GitHub: https://github.com/cloudflare/cloudflared/releases. Cari versi stabil terbaru (misalnya v2024.x.x) dan temukan file biner yang sesuai dengan arsitektur OpenWrt Anda. Biasanya, nama file akan seperti cloudflared-linux-arm64, cloudflared-linux-arm, atau cloudflared-linux-mips.

Gunakan wget di router OpenWrt untuk mengunduh biner tersebut. Ganti URL dengan versi yang sesuai:


cd /tmp
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64

Jika wget tidak tersedia, Anda mungkin perlu menginstalnya terlebih dahulu:


opkg update
opkg install wget

1.3. Memberi Izin Eksekusi dan Memindahkan Biner

Setelah diunduh, berikan izin eksekusi pada biner dan pindahkan ke lokasi yang dapat diakses oleh PATH sistem, seperti /usr/local/bin atau /usr/bin:


chmod +x cloudflared-linux-arm64
mv cloudflared-linux-arm64 /usr/local/bin/cloudflared

Sekarang, Anda bisa memverifikasi instalasi dengan menjalankan:


cloudflared --version

Langkah 2: Otentikasi dan Membuat tunnel Baru

2.1. Otentikasi Akun Cloudflare

Jalankan perintah berikut untuk mengautentikasi cloudflared dengan akun Cloudflare Anda. Ini akan meminta Anda untuk membuka URL di browser dan memilih domain Anda:


cloudflared tunnel login

Setelah Anda berhasil login melalui browser, sebuah file kredensial akan dibuat di ~/.cloudflared/cert.pem di router Anda.

2.2. Membuat tunnel Baru

Sekarang, buat tunnel baru. Beri nama yang deskriptif untuk tunnel Anda (misalnya openwrt-tunnel):


cloudflared tunnel create openwrt-tunnel

Perintah ini akan menghasilkan ID tunnel (UUID) dan file kredensial untuk tunnel tersebut di ~/.cloudflared/<UUID>.json. Catat UUID tunnel Anda, karena akan digunakan dalam konfigurasi.

Langkah 3: Mengkonfigurasi tunnel (config.yml)

Anda perlu membuat file konfigurasi (biasanya config.yml) di direktori ~/.cloudflared/ untuk menentukan layanan apa saja yang akan diekspos melalui tunnel.

3.1. Membuat File Konfigurasi

Buat atau edit file ~/.cloudflared/config.yml menggunakan editor teks seperti vi atau nano (jika terinstal):


vi ~/.cloudflared/config.yml

3.2. Contoh Konfigurasi

Berikut adalah contoh konfigurasi untuk mengakses antarmuka web LuCI (OpenWrt Web UI) dan SSH:


tunnel: <UUID_tunnel_ANDA>
credentials-file: /root/.cloudflared/<UUID_tunnel_ANDA>.json

ingress: – hostname: luci.yourdomain.com service: http://192.168.1.1 # Ganti dengan IP lokal router OpenWrt Anda originRequest: noTLSVerify: true # Gunakan ini jika LuCI Anda menggunakan HTTPS self-signed

– hostname: ssh.yourdomain.com service: ssh://localhost:22 # Mengakses SSH router itu sendiri # Jika ingin SSH ke host lain di LAN, ganti localhost dengan IP-nya

– service: http_status:404 # Aturan fallback untuk mencegah akses yang tidak terdefinisi

Ganti <UUID_tunnel_ANDA> dengan ID tunnel yang Anda dapatkan di langkah sebelumnya. Sesuaikan hostname dan service sesuai kebutuhan Anda.

  • hostname: Subdomain yang akan Anda gunakan untuk mengakses layanan.
  • service: Protokol dan alamat IP/port dari layanan internal.
  • noTLSVerify: true: Penting jika layanan internal Anda menggunakan sertifikat HTTPS yang tidak diverifikasi (misalnya, sertifikat self-signed LuCI). Gunakan dengan hati-hati.

Langkah 4: Menghubungkan Domain ke tunnel

Setelah konfigurasi selesai, Anda perlu memberi tahu Cloudflare untuk mengarahkan traffic dari subdomain yang Anda tentukan ke tunnel Anda.


cloudflared tunnel route dns openwrt-tunnel luci.yourdomain.com
cloudflared tunnel route dns openwrt-tunnel ssh.yourdomain.com

Ulangi perintah ini untuk setiap hostname yang Anda definisikan di config.yml. Ini akan membuat entri DNS CNAME di Cloudflare Anda yang mengarah ke tunnel.

Langkah 5: Menjalankan tunnel dan Membuatnya Autostart

5.1. Menjalankan tunnel Secara Manual

Untuk menguji tunnel, jalankan perintah berikut:


cloudflared tunnel run openwrt-tunnel

Jika tidak ada error, tunnel Anda sekarang sudah aktif. Coba akses luci.yourdomain.com atau ssh.yourdomain.com dari browser atau terminal Anda.

5.2. Membuat tunnel Autostart Saat Boot

Agar tunnel berjalan otomatis setiap kali router OpenWrt di-boot, Anda bisa menambahkaya ke skrip startup. Salah satu cara termudah adalah menambahkaya ke /etc/rc.local (sebelum baris exit 0).


vi /etc/rc.local

Tambahkan baris berikut:


# Start Cloudflare tunnel
/usr/local/bin/cloudflared tunnel run openwrt-tunnel & > /dev/null 2>&1

Pastikan Anda menambahkan simbol & di akhir perintah untuk menjalankaya di latar belakang, dan > /dev/null 2>&1 untuk mengarahkan output agar tidak memenuhi log atau menyebabkan masalah saat boot.

Untuk implementasi yang lebih robust (disarankan untuk produksi), Anda bisa membuat script procd init baru di /etc/init.d/cloudflared. Namun, itu di luar cakupan panduan singkat ini, dan rc.local cukup untuk sebagian besar pengguna rumahan.

Langkah 6: Verifikasi dan Pengujian

Setelah tunnel berjalan (baik secara manual maupun setelah reboot jika Anda mengkonfigurasi autostart), uji aksesnya dari jaringan eksternal:

  • Buka browser dan akses https://luci.yourdomain.com.
  • Gunakan klien SSH untuk mencoba terhubung ke ssh.yourdomain.com.

Jika ada masalah, periksa log cloudflared di OpenWrt dengan perintah:


logread | grep cloudflared

Pastikan juga konfigurasi DNS di Cloudflare sudah benar (CNAME yang dibuat otomatis oleh perintah route dns).

Kesimpulan

Selamat! Anda kini telah berhasil menginstal dan mengkonfigurasi Cloudflare tunnel di router OpenWrt Anda. Dengan setup ini, Anda dapat mengakses layanan di jaringan rumah Anda dari mana saja secara aman, tanpa perlu khawatir tentang port forwarding atau batasan CGNAT. Ini adalah langkah besar dalam mengamankan jaringan rumah Anda sambil tetap menjaga kemudahan akses. Eksplorasi lebih lanjut fitur-fitur Cloudflare tunnel seperti Cloudflare Access untuk lapisan keamanan tambahan.