Saat Anda duduk di belakang Cloudflare, Anda sebaiknya hanya izinkan lalu lintas dari rentang IP Cloudflare pada port 80 dan 443. Cloudflare memperbarui rentang ini secara berkala, sehingga aturan UFW perlu diperbarui secara otomatis. Skrip dari Cloudflare-UFW, karya Paul Reed, memang melakukan hal itu.
1. Unduh dan buat skrip tersebut dapat dieksekusi
bashsudo wget -O /usr/local/bin/cloudflare-ufw.sh \
https://raw.githubusercontent.com/Paul-Reed/cloudflare-ufw/refs/heads/master/cloudflare-ufw.sh
sudo chmod +x /usr/local/bin/cloudflare-ufw.sh
2. Periksa peraturan UFW yang berlaku saat ini (sebelum adanya perubahan)
bashsudo ufw status verbose
Anda mungkin akan melihat sesuatu seperti:
teksTindakan Dari
-- ------ ----
22/tcp Izinkan Dari mana saja
80/tcp Izinkan Dari mana saja
443 Izinkan Dari mana saja
...
3. Hapus aturan 80/443 yang terlalu longgar
Aturan-aturan ini saat ini memungkinkan apa pun Alamat IP untuk mengakses port web Anda. Kami akan menggantinya dengan aturan khusus Cloudflare.
bashsudo ufw hapus izin 80/tcp
sudo ufw hapus izin 443/tcp
Jika UFW meminta konfirmasi, ketik y dan tekan Enter.
Periksa statusnya lagi:
bashsudo ufw status verbose
Anda seharusnya tidak lagi melihat 80/TCP atau 443 dengan IZINKAN dari Di mana saja.
4. Jalankan skrip Cloudflare‑UFW
bashsudo /usr/local/bin/cloudflare-ufw.sh
Fungsi skrip ini:
- Mengambil rentang IPv4 dan IPv6 Cloudflare terbaru dari
https://www.cloudflare.com/ips-v4dan.../ips-v6. - Menghapus semua aturan UFW yang ada untuk port 80 dan 443 yang mengizinkan
Di mana saja. - Menambahkan yang baru
IZINKANaturan hanya untuk setiap rentang alamat IP Cloudflare pada port 80 (HTTP) dan 443 (HTTPS). - Secara opsional, muat ulang UFW agar aturan baru segera berlaku.
Setelah selesai, periksa:
bashsudo ufw status verbose
Sekarang Anda seharusnya melihat beberapa baris seperti:
teksTindakan Dari
-- ------ ----
80/tcp IZINKAN 173.245.48.0/20
80/tcp IZINKAN 103.21.244.0/22
...
443 IZINKAN 173.245.48.0/20
443 IZINKAN 103.21.244.0/22
...
Semua alamat IP lainnya secara otomatis ditolak untuk port 80/443.
5. Otomatiskan pembaruan harian dengan cron
Cloudflare dapat mengubah rentang alamat IP-nya kapan saja. Agar firewall Anda tetap terupdate, jadwalkan skrip tersebut untuk dijalankan setiap hari (misalnya, pukul 03.00).
Edit berkas crontab root:
bashsudo crontab -e
Jika diminta, pilih editor yang Anda inginkan (misalnya, nano).
Tambahkan baris berikut di bagian akhir:
text0 3 * * * /usr/local/bin/cloudflare-ufw.sh >> /var/log/cloudflare-ufw.log 2>&1
Ini yang dilakukan:
- Menjalankan skrip setiap hari pukul 03.00 waktu server.
- Menambahkan hasil dan pesan kesalahan ke
/var/log/cloudflare-ufw.loguntuk audit.
Simpan dan tutup editor.
6. Periksa tugas cron
Tampilkan daftar crontab pengguna root untuk memastikannya:
bashsudo crontab -l
Anda seharusnya bisa melihat baris baru itu.
Jika diinginkan, jalankan secara paksa dan periksa log:
bashsudo /usr/local/bin/cloudflare-ufw.sh
sudo tail -n 20 /var/log/cloudflare-ufw.log
7. Pemeliharaan berkala
Untuk menyegarkan aturan secara manual kapan saja:
bashsudo /usr/local/bin/cloudflare-ufw.sh
Untuk memeriksa log:
bashsudo less /var/log/cloudflare-ufw.log
Jika Anda perlu mengembalikan pengaturan ke “izinkan di mana saja” (tidak disarankan untuk lingkungan produksi):
bashsudo ufw hapus izin masuk dari semua ke semua pada port 80 proto tcp sudo ufw hapus izin masuk dari semua ke semua pada port 443 proto tcp sudo ufw izinkan 80/tcp sudo ufw izinkan 443/tcp
Dengan konfigurasi ini, firewall UFW Anda akan selalu hanya menerima lalu lintas HTTP/HTTPS dari rentang IP Cloudflare yang saat ini berlaku, sehingga secara signifikan mengurangi area yang rentan terhadap serangan sekaligus memastikan situs-situs Anda tetap dapat diakses melalui Cloudflare.
Tinggalkan Balasan