Cara Memperbarui Aturan UFW Secara Otomatis dengan Alamat IP Cloudflare

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-v4 dan .../ips-v6.
  • Menghapus semua aturan UFW yang ada untuk port 80 dan 443 yang mengizinkan Di mana saja.
  • Menambahkan yang baru IZINKAN aturan 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.log untuk 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.

Apakah halaman ini bermanfaat?

Tinggalkan Balasan

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