Mengijinkan akses HTTP dan HTTPS yang bersumber dari CloudFlare pada firewalld
Dapat pertanyaan followup dari mas Hartono soal pembahasan akses HTTP dan HTTPS pada VPS tapi dibatasi hanya dari CloudFlare. Fungsinya ya memblokir setiap usaha sambungan koneksi HTTP/S ke salah website yang dihosting. Jadi tidak bisa bypass CloudFlare. Bedanya kalau dulu masih pakai iptables maka sekarang firewalld yang dipakai CentOS 7.
Aslinya pertanyaan ini menarik buat saya karena terlupakan bahwa firewall itu tidak melulu iptables. 😀 Padahal banyak VPS saya pakai CentOS 7. Hehe.
Setelah mempelajari kembali dokumentasinya saya pakai aturan berikut:
#CloudFlare IPv4
firewall-cmd –permanent –zone=public –add-source=103.21.244.0/22
firewall-cmd –permanent –zone=public –add-source=103.22.200.0/22
firewall-cmd –permanent –zone=public –add-source=103.31.4.0/22
firewall-cmd –permanent –zone=public –add-source=104.16.0.0/12
firewall-cmd –permanent –zone=public –add-source=108.162.192.0/18
firewall-cmd –permanent –zone=public –add-source=131.0.72.0/22
firewall-cmd –permanent –zone=public –add-source=141.101.64.0/18
firewall-cmd –permanent –zone=public –add-source=162.158.0.0/15
firewall-cmd –permanent –zone=public –add-source=172.64.0.0/13
firewall-cmd –permanent –zone=public –add-source=173.245.48.0/20
firewall-cmd –permanent –zone=public –add-source=188.114.96.0/20
firewall-cmd –permanent –zone=public –add-source=190.93.240.0/20
firewall-cmd –permanent –zone=public –add-source=197.234.240.0/22
firewall-cmd –permanent –zone=public –add-source=198.41.128.0/17
firewall-cmd –permanent –zone=public –add-source=199.27.128.0/21
#CloudFlare IPv6
firewall-cmd –permanent –zone=public –add-source=12400:cb00::/32
firewall-cmd –permanent –zone=public –add-source=12405:8100::/32
firewall-cmd –permanent –zone=public –add-source=12405:b500::/32
firewall-cmd –permanent –zone=public –add-source=12606:4700::/32
firewall-cmd –permanent –zone=public –add-source=12803:f800::/32
firewall-cmd –permanent –zone=public –add-source=12c0f:f248::/32
firewall-cmd –permanent –zone=public –add-source=12a06:98c0::/29
Pasang saja yang memang bisa digunakan dalam server anda. Tidak semuanya mendukung IPv6. Dan mungkin ada update alamat IP CloudFlare baru yang bisa dicek disini: https://www.cloudflare.com/ips/
Setelah itu jangan lupa agar dimuat ulang konfigurasinya:
firewall-cmd reload
Catatan, sebenarnya baris kode diatas memperbolehkan koneksi jenis apapun dari CloudFlare. Kalau mau hanya HTTP/HTTPS seharusnya pakai rich rule. Dan ada kemungkinan direvisi karena saya sendiri kurang puas akan solusinya. Tapi waktu terbatas sewaktu mencari dan mengujinya.