Mengaktifkan Cloudflare cukup sepuluh menit: ganti nameserver, tunggu sebentar, dan website langsung berada di belakang jaringan global dengan proteksi DDoS dan gembok di browser. Justru karena semudah itu, banyak setup berhenti di tengah jalan. Kami cukup sering menemukan website yang sudah pakai Cloudflare, tetapi IP servernya masih bisa diakses langsung, trafik ke servernya sama sekali tidak dienkripsi, atau callback pembayarannya gagal karena filter bot dinyalakan tanpa dicek dulu. Artikel ini membahas apa yang sebenarnya dikerjakan Cloudflare dan web application firewall-nya, paket mana yang cocok untuk jenis website apa, dan cara setup supaya proteksinya bukan sekadar di atas kertas.
Apa yang Terjadi Saat Website Dipasang di Belakang Cloudflare
Setelah nameserver domain diarahkan ke Cloudflare, setiap record DNS berstatus Proxied (awan oranye) akan mengirim pengunjung ke Cloudflare lebih dulu. Cloudflare lalu meneruskan request ke server Anda, yang mereka sebut origin. Record berstatus DNS only (awan abu-abu) sama sekali tidak dilindungi, karena hanya mengembalikan alamat IP server Anda. Subdomain untuk email, SSH, dan FTP biasanya memang dibiarkan DNS only, dan itu tidak masalah selama Anda paham apa yang terbuka karenanya.
Karena semua trafik lewat Cloudflare, beberapa pekerjaan bisa dilakukan sekaligus: menyimpan cache file statis di dekat pengunjung, menyerap serangan DDoS, menangani HTTPS, menyaring request lewat WAF, dan menantang bot yang mencurigakan. Cloudflare punya titik layanan di Jakarta dan terhubung dengan banyak jaringan lokal, jadi bagi pengunjung di Indonesia lompatan tambahan ini biasanya hampir tidak terasa, dan halaman yang sudah di-cache sering justru lebih cepat dibanding langsung dari origin.
Apa yang Dikerjakan WAF, dan Apa yang Tidak Bisa
Web application firewall membaca setiap request HTTP, termasuk URL, header, cookie, dan body, lalu mencocokkannya dengan sekumpulan aturan. Request yang terlihat seperti SQL injection, cross-site scripting, path traversal, atau exploit untuk celah yang sudah diketahui akan diblokir atau ditantang sebelum sampai ke aplikasi. Firewall jaringan seperti iptables atau security group di AWS hanya melihat alamat IP dan port, jadi tidak bisa membedakan login biasa dengan login yang membawa payload SQL injection.
Hal paling berharga dari WAF terkelola bagi tim kecil adalah waktu. Saat React2Shell (CVE-2025-55182), celah remote code execution di React Server Components, diumumkan pada Desember 2025, Cloudflare menambahkan aturan blokir ke managed ruleset mereka dalam waktu sehari, termasuk Free Managed Ruleset yang otomatis aktif di paket gratis. Website di belakangnya sudah terlindungi selagi developernya masih meng-upgrade React dan Next.js. Cara ini biasa disebut virtual patching.
Yang tidak dipahami WAF adalah logika bisnis Anda. WAF tidak tahu bahwa user A tidak boleh membuka invoice milik user B hanya dengan mengganti ID di URL, bahwa kode voucher hanya boleh dipakai sekali, atau bahwa akun staf tidak boleh mengakses endpoint admin. Celah kontrol akses seperti ini adalah temuan serius yang paling sering muncul saat pentest, dan hanya bisa diperbaiki di aplikasi. Managed rule juga masih bisa dilewati dengan payload yang tidak biasa, dan hanya memeriksa sebagian dari body request yang sangat besar.
WAF memberi Anda waktu antara hari sebuah celah diumumkan dan hari Anda selesai menambalnya. WAF tidak menggantikan patch, dan tidak menggantikan perbaikan kode Anda sendiri.
Free, Pro, Business, Enterprise: Isi Tiap Paket
| Fitur | Free | Pro | Business | Enterprise |
|---|---|---|---|---|
| Harga per domain per bulan | $0 | $20 kalau bayar tahunan, $25 kalau bulanan | $200 kalau bayar tahunan, $250 kalau bulanan | Kontrak khusus |
| Managed rule WAF | Free Managed Ruleset untuk celah kritis yang banyak dieksploitasi | Cloudflare Managed Ruleset dan OWASP Core Ruleset | Ruleset yang sama dengan Pro | Semua ruleset, plus add-on seperti API Shield |
| Custom rule WAF | 5 | 20 | 100, bisa memakai regex | 1.000 |
| Rule rate limiting | 1 rule, dihitung per IP dalam 10 detik | 2 rule, jendela waktu sampai 1 menit | 5 rule, jendela waktu sampai 10 menit | Sampai 100 rule, dengan pilihan penghitungan lebih banyak |
| Proteksi bot | Bot Fight Mode untuk bot sederhana | Super Bot Fight Mode | Super Bot Fight Mode dengan analitik bot | Bot Management dengan skor bot per request |
| Deteksi kredensial bocor | Mengecek apakah password termasuk yang pernah bocor | Mengecek pasangan username dan password | Pengecekan sama dengan Pro | Deteksi tambahan dan lokasi kustom |
| Support dan SLA | Forum komunitas, tanpa SLA | Tiket email, tanpa SLA | Tiket dan chat, SLA uptime 100% | Telepon, chat, dan tiket 24/7, SLA dengan kompensasi lebih besar |
Harga dihitung per domain, jadi tiga website di paket Pro biayanya tiga kali lipat. Proteksi DDoS tidak dibatasi di semua paket, termasuk Free, artinya Anda tidak ditagih tambahan atau diputus karena sedang diserang. Angka di atas kami ambil dari halaman paket dan dokumentasi Cloudflare per November 2026. Cloudflare cukup sering mengubah isi paketnya, jadi cek lagi halaman resminya sebelum menyusun anggaran.
Paket Mana untuk Website Seperti Apa
- Free sudah cukup untuk company profile, blog, landing page, dan tool internal kecil. Anda tetap mendapat proteksi DDoS, Free Managed Ruleset, lima custom rule, satu rule rate limiting, Turnstile sebagai pengganti CAPTCHA, dan Cloudflare Tunnel.
- Pro layak diambil begitu website punya fitur login, form yang menulis ke database, atau toko online, dan untuk website WordPress dengan banyak plugin. Cloudflare Managed Ruleset dan OWASP Core Ruleset menangkap jauh lebih banyak pola serangan dibanding ruleset gratis, dan $20 per bulan lebih murah daripada satu jam membersihkan website yang kena retas.
- Business masuk akal kalau Anda butuh SLA uptime, support lewat chat, regex di dalam rule, jendela rate limiting yang lebih panjang, atau bantuan memenuhi persyaratan PCI DSS untuk pembayaran kartu.
- Enterprise untuk bank, fintech, dan platform besar yang butuh bot management tingkat lanjut, kontak support khusus, ketentuan kontrak soal lokasi data, atau laporan untuk OJK dan auditor.
Cara Setup Cloudflare yang Benar
- 1Tambahkan domain dan biarkan Cloudflare mengimpor record DNS yang sudah ada. Sebelum mengganti nameserver, bandingkan hasilnya baris per baris dengan zona DNS lama, terutama record MX dan record TXT untuk SPF, DKIM, DMARC, dan verifikasi domain. Record yang tertinggal biasanya baru ketahuan saat email tiba-tiba tidak masuk.
- 2Ganti nameserver di registrar. Untuk domain .id, caranya lewat panel registrar tempat Anda membeli domain. Perubahan biasanya berlaku dalam beberapa jam.
- 3Tentukan record mana yang di-proxy. Record website seperti domain utama, www, dan app sebaiknya Proxied. Host untuk email, SSH, FTP, dan database dibiarkan DNS only, karena proxy Cloudflare hanya menangani HTTP dan HTTPS di port tertentu.
- 4Atur mode SSL/TLS ke Full (strict) dan pasang sertifikat yang valid di origin, bisa sertifikat gratis dari Let's Encrypt atau Cloudflare Origin CA. Sertifikat Origin CA bisa berlaku sampai 15 tahun, tetapi hanya dipercaya oleh Cloudflare, bukan oleh browser. Setelah itu aktifkan Always Use HTTPS.
- 5Kembalikan IP asli pengunjung di server. Tanpa langkah ini, access log, fail2ban, dan rate limiting di aplikasi hanya melihat alamat Cloudflare. Di Nginx, tambahkan baris set_real_ip_from untuk setiap rentang IP Cloudflare dan atur real_ip_header CF-Connecting-IP.
- 6Kunci origin. Izinkan port 80 dan 443 hanya dari rentang IP Cloudflare yang dipublikasikan di cloudflare.com/ips, lewat firewall server atau security group di cloud. Opsi yang lebih rapi adalah Cloudflare Tunnel: agen cloudflared membuka koneksi keluar ke Cloudflare, jadi server tidak perlu membuka port web untuk koneksi masuk sama sekali. Authenticated Origin Pulls menambahkan pengecekan sertifikat klien di atasnya.
- 7Periksa pengaturan WAF. Di paket Free, pastikan Free Managed Ruleset aktif. Di Pro ke atas, aktifkan Cloudflare Managed Ruleset dan OWASP Core Ruleset. Mulai OWASP ruleset dengan paranoia level rendah dan ambang anomaly score yang tinggi, lalu perketat setelah Anda tahu seperti apa trafik normalnya.
- 8Baca Security Events setiap hari di minggu pertama. Di sini terlihat request mana yang diblokir dan alasannya, dan hanya dari sini Anda bisa menangkap rule yang ternyata memblokir pelanggan sungguhan.
Custom Rule yang Layak Dipasang
Paket gratis hanya punya lima custom rule, jadi pakai untuk hal yang paling penting. Rule ditulis sebagai expression di dashboard. Contoh di bawah memakai bahasa rule Cloudflare, dan path serta alamat IP-nya perlu disesuaikan dengan aplikasi Anda.
- Lindungi halaman login admin. Untuk WordPress: (http.request.uri.path contains "/wp-login.php" or (http.request.uri.path contains "/wp-admin" and not http.request.uri.path contains "/admin-ajax.php")) and not ip.src in {203.0.113.10}, dengan action Managed Challenge atau Block. Pengecualian admin-ajax.php penting, karena banyak tema dan plugin memanggilnya dari halaman publik.
- Blokir xmlrpc.php kalau tidak dipakai: http.request.uri.path eq "/xmlrpc.php", action Block. File ini jadi sasaran favorit untuk menebak password. Cek dulu apakah Jetpack atau aplikasi mobile untuk publikasi masih membutuhkannya.
- Batasi panel admin hanya dari Indonesia kalau semua staf ada di sini: http.request.uri.path contains "/admin" and ip.src.country ne "ID", action Managed Challenge. Penyerang yang serius masih bisa memakai VPN lokal, tetapi sebagian besar serangan otomatis langsung tersaring.
- Blokir percobaan akses ke file yang tidak boleh publik: http.request.uri.path contains "/.env" or http.request.uri.path contains "/.git", action Block. Bot memindai file ini sepanjang hari, dan satu file .env yang terbuka bisa membocorkan kredensial database dan API.
- Tantang login yang memakai password bocor. Setelah deteksi kredensial bocor diaktifkan, rule di path login dengan cf.waf.credential_check.password_leaked dan action Managed Challenge bisa memperlambat credential stuffing. Field ini tersedia di paket gratis.
Pakai satu rule rate limiting gratis untuk endpoint yang paling merugikan kalau disalahgunakan. Biasanya itu halaman login atau endpoint pengirim OTP, karena setiap OTP yang dikirim lewat SMS atau WhatsApp ada biayanya. Rule seperti lebih dari 5 request dalam 10 detik dari satu IP ke /api/auth/otp sudah cukup sebagai awal. Paket gratis hanya mengizinkan jendela 10 detik dan blokir 10 detik, jadi tetap pasang batasan di aplikasi, misalnya jumlah maksimal permintaan OTP per nomor HP per jam.
Kesalahan yang Sering Kami Temukan
- SSL Flexible. Browser menampilkan gembok, tetapi trafik antara Cloudflare dan server berjalan sebagai HTTP biasa. Kalau server juga me-redirect HTTP ke HTTPS, website terjebak redirect tanpa ujung dengan error ERR_TOO_MANY_REDIRECTS. Gunakan Full (strict).
- IP origin masih diketahui. Record A lama dari sebelum pakai Cloudflare, record MX yang mengarah ke server yang sama, subdomain DNS only yang terlupakan, atau mesin pemindai internet yang mengindeks sertifikat server, semuanya bisa membuka IP. Penyerang yang tahu IP-nya bisa melewati Cloudflare sepenuhnya. Kunci origin seperti dijelaskan di atas, dan kalau IP-nya sudah telanjur bocor, pindah ke IP baru.
- Bot Fight Mode merusak webhook dan aplikasi mobile. Callback dari payment gateway, webhook WhatsApp API, dan panggilan API dari aplikasi mobile Anda sendiri bisa kena challenge, dan challenge berarti request-nya gagal. Di paket gratis, Bot Fight Mode berlaku untuk seluruh domain dan tidak bisa dilewati dengan custom rule. Hanya IP Access rule, yang dievaluasi lebih dulu, yang bisa mengecualikan IP partner yang sudah diketahui. Kalau daftar IP-nya tidak tersedia, matikan Bot Fight Mode dan andalkan custom rule yang lebih tepat sasaran.
- Meng-cache halaman milik satu user. Rule Cache Everything di website yang punya fitur login bisa menampilkan halaman akun atau keranjang belanja seorang pelanggan ke pelanggan lain. Bypass cache untuk sesi yang sudah login, keranjang, checkout, dan semua path API.
- Membiarkan Under Attack Mode menyala berminggu-minggu. Setiap pengunjung harus menunggu halaman pemeriksaan, konversi turun, dan klien API gagal. Nyalakan saat sedang diserang lalu matikan lagi, atau terapkan challenge hanya di path yang diserang.
- Tidak pernah membuka Security Events. Rule OWASP bisa memblokir editor konten yang menyimpan artikel berisi HTML atau potongan kode, dan tidak ada yang sadar sampai ada yang komplain. Tinjau request yang diblokir secara rutin dan tambahkan pengecualian yang sempit, jangan mematikan seluruh ruleset.
- Memblokir crawler AI tanpa sengaja. Sejak Juli 2025, Cloudflare memblokir crawler AI yang dikenal secara default untuk domain yang baru ditambahkan. Crawler mesin pencari seperti Googlebot tidak terpengaruh, tetapi kalau Anda ingin konten muncul di jawaban asisten AI, cek pengaturan crawler AI di dashboard.
Cloudflare Juga Bisa Jadi Titik Gagal Tunggal
Pada 18 November 2025, file konfigurasi yang bermasalah di sistem bot management Cloudflare membuat sebagian besar jaringan mereka lumpuh selama beberapa jam. Pada 5 Desember 2025, perubahan yang dibuat untuk melindungi pelanggan dari celah React justru memicu gangguan lain selama sekitar 25 menit. Di kedua kejadian itu, website di belakang Cloudflare menampilkan halaman error padahal server mereka sendiri berjalan normal.
Ini bukan alasan untuk menghindari Cloudflare, tetapi alasan untuk bersiap. Pastikan minimal dua orang bisa login ke akun Cloudflare dan registrar domain, keduanya dengan two-factor authentication. Tulis langkah untuk mengubah record utama menjadi DNS only saat darurat. Cara ini hanya berhasil kalau origin sanggup menerima trafik langsung dan punya sertifikat yang dipercaya browser, dan itu salah satu alasan memakai Let's Encrypt di origin, bukan hanya sertifikat Origin CA. Lalu pantau website dari luar Cloudflare, supaya Anda tahu gangguannya ada di sisi Anda atau di sisi mereka.
Pertimbangan lainnya adalah data. Cloudflare membuka enkripsi HTTPS supaya bisa memeriksa dan meng-cache trafik, jadi Cloudflare melihat semua yang lewat, termasuk isi form. Untuk aplikasi yang memproses data pribadi sesuai UU Pelindungan Data Pribadi, atau yang diawasi OJK, catat Cloudflare sebagai pemroses data di dokumentasi Anda dan periksa ketentuan pemrosesan datanya. Pelanggan Enterprise bisa menambahkan opsi untuk mengatur di mana trafik diperiksa dan di mana log disimpan.
Alternatif Selain WAF Cloudflare
| Opsi | Cocok kalau | Catatan biaya |
|---|---|---|
| AWS WAF | Aplikasi sudah berjalan di AWS di belakang CloudFront atau Application Load Balancer, dan rule ingin dikelola lewat Terraform | $5 per web ACL dan $1 per rule setiap bulan, ditambah $0,60 per juta request. Bot Control dihitung terpisah |
| Google Cloud Armor | Aplikasi berjalan di Google Cloud di belakang load balancer-nya | Dihitung per policy, per rule, dan per request |
| Bunny Shield | Anda sudah memakai Bunny CDN dan ingin WAF yang lebih sederhana di dashboard yang sama | Dihitung per pull zone, cek paket terbarunya |
| Akamai, Imperva, F5 | Perusahaan besar dan bank yang ingin layanan terkelola dengan tim security operations di belakangnya | Kontrak enterprise tahunan |
| OWASP CRS dengan ModSecurity atau Coraza di server sendiri | Trafik tidak boleh melewati pihak ketiga, dan tim punya waktu untuk menyetel rule | Software-nya gratis, tetapi menyetel false positive butuh waktu engineer yang tidak sedikit |
WAF yang dipasang sendiri bisa menyaring request dengan baik, tetapi tidak bisa menahan serangan DDoS besar, karena trafiknya sudah memenuhi bandwidth server sebelum sempat diperiksa WAF. ModSecurity sekarang dikelola sebagai proyek OWASP setelah Trustwave menghentikan dukungannya pada Juli 2024, sedangkan Coraza adalah engine yang lebih baru, ditulis dengan Go, dan menjalankan OWASP Core Rule Set yang sama. Untuk sebagian besar website bisnis di Indonesia, Cloudflare di depan ditambah aplikasi yang dirawat dengan baik adalah kombinasi yang paling praktis.
Tim managed service kami menyiapkan dan meninjau konfigurasi Cloudflare sebagai bagian dari pemeliharaan server dan aplikasi, termasuk mengunci origin, menyetel WAF, dan monitoring. Kalau Anda belum yakin setup yang sekarang sudah lengkap, review-nya biasanya selesai dalam waktu kurang dari sehari.
Poin penting
- Cloudflare hanya melindungi record berstatus Proxied, dan hanya kalau server origin tidak bisa diakses langsung. Kunci origin ke rentang IP Cloudflare atau gunakan Cloudflare Tunnel.
- Gunakan SSL/TLS Full (strict) dengan sertifikat valid di origin. SSL Flexible membuat trafik ke server tidak terenkripsi.
- Paket gratis sudah mencakup proteksi DDoS tanpa batas, Free Managed Ruleset, lima custom rule, dan satu rule rate limiting. Website dengan login atau pembayaran biasanya lebih aman dengan Pro.
- WAF memberi waktu untuk menambal celah yang sudah diketahui, tetapi tidak menangkap celah logika bisnis seperti user yang bisa membaca data user lain.
- Cek Security Events secara rutin, uji webhook dan aplikasi mobile setelah mengaktifkan proteksi bot, dan siapkan rencana untuk hari ketika Cloudflare sendiri mengalami gangguan.


