Mengijinkan akses HTTP dan HTTPS hanya dari CloudFlare

Karena mudahnya penggunaan CloudFlare dalam mengoptimasi kecepatan website, ada fitur perlindungan walaupun sederhana untuk yang gratis, juga dilengkapi CDN maka jelas banyak yang memilihnya. Karena sistem dari CloudFlare sendiri adalah reverse proxy, dimana setiap trafik pengunjung akan melewati network mereka dulu baru diteruskan ke web server maka sebenarnya kalau kita tahu alamat IP servernya bisa diakses secara langsung.

Nah.. dasar tutorial kali ini adalah membatasi darimana asal si pengunjung yang boleh diproses oleh web server kita. Bisa dikatakan efeknya sih minimal terhadap performa VPS tapi tidak ada salahnya dicoba. Kali ini fokusnya adalah hanya diijinkan HTTP dan HTTPS apabila dari CloudFlare kita akan memanfaatkan iptables sebagai firewall andalannya. 😀

Sebelum anda mengeksekusi perintah dibawah harap cek dulu apakah alamat IP dari CloudFlare masih persis dari sini: https://www.cloudflare.com/ips/ dan harap backup sebelum mencobanya.

Pertama adalah untuk alamat IPv4 CloudFlare:

iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.21.244.0/22 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.22.200.0/22 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.31.4.0/22 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 104.16.0.0/12 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 108.162.192.0/18 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 141.101.64.0/18 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 162.158.0.0/15 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 172.64.0.0/13 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 173.245.48.0/20 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 188.114.96.0/20 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 190.93.240.0/20 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 197.234.240.0/22 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 198.41.128.0/17 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports http,https -s 199.27.128.0/21 -j ACCEPT

Kedua untuk alamat IPv6 CloudFlare:

ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2400:cb00::/32 -j ACCEPT
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2405:8100::/32 -j ACCEPT
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2405:b500::/32 -j ACCEPT
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2606:4700::/32 -j ACCEPT
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2803:f800::/32 -j ACCEPT
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2c0f:f248::/32 -j ACCEPT
ip6tables -I INPUT -p tcp -m multiport --dports http,https -s 2a06:98c0::/29 -j ACCEPT

Ketiga kita blokir semua trafik HTTP dan HTTPS kalau sumbernya bukan dari daftar alamat IPv4/IPv6 diatas:

iptables -A INPUT -p tcp -m multiport --dports http,https -j DROP

Dan akhirnya mari kita simpan konfigurasi baru iptablesnya:

  • Debian/Ubuntu:
    iptables-save > /etc/iptables/rules.v4
    ip6tables-save > /etc/iptables/rules.v6
  • CentOS:
    iptables-save > /etc/sysconfig/iptables
    ip6tables-save > /etc/sysconfig/ip6tables

Selesai. 😀 Saya peringatkan harap anda hati – hati dalam menerapkan peraturan iptables diatas. Walaupun sudah saya coba dan berfungsi sesuai tujuan tapi ada baiknya anda verifikasi ulang. Karena kalau ada masalah nanti malah terblokir semua.

3 Comments

Tinggalkan Balasan ke Hartono Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *