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.