{"id":47270,"date":"2026-06-27T22:43:40","date_gmt":"2026-06-27T13:43:40","guid":{"rendered":"https:\/\/raybeam.jp\/docs\/initial-server-setup\/how-to-auto-update-ufw-rules-with-cloudflare-ips\/"},"modified":"2026-06-27T22:44:20","modified_gmt":"2026-06-27T13:44:20","slug":"how-to-auto-update-ufw-rules-with-cloudflare-ips","status":"publish","type":"docs","link":"https:\/\/raybeam.jp\/id\/docs\/initial-server-setup\/how-to-auto-update-ufw-rules-with-cloudflare-ips\/","title":{"rendered":"Cara Memperbarui Aturan UFW Secara Otomatis dengan Alamat IP Cloudflare"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Saat Anda duduk di belakang Cloudflare, Anda sebaiknya <strong>hanya<\/strong> 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 <strong><a href=\"https:\/\/github.com\/Paul-Reed\/cloudflare-ufw\">Cloudflare-UFW<\/a><\/strong>, karya Paul Reed, memang melakukan hal itu.<\/p>\n\n\n\n<h2 id=\"1-download-and-make-the-script-executable\" class=\"wp-block-heading\">1. Unduh dan buat skrip tersebut dapat dieksekusi<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo wget -O \/usr\/local\/bin\/cloudflare-ufw.sh \\\n  https:\/\/raw.githubusercontent.com\/Paul-Reed\/cloudflare-ufw\/refs\/heads\/master\/cloudflare-ufw.sh\nsudo chmod +x \/usr\/local\/bin\/cloudflare-ufw.sh\n<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"2-inspect-current-ufw-rules-before-changes\" class=\"wp-block-heading\">2. Periksa peraturan UFW yang berlaku saat ini (sebelum adanya perubahan)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo ufw status verbose\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Anda mungkin akan melihat sesuatu seperti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>teks<code>Tindakan Dari\n-- ------ ----\n22\/tcp Izinkan Dari mana saja\n80\/tcp Izinkan Dari mana saja\n443 Izinkan Dari mana saja\n...\n<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"3-remove-the-overlypermissive-80443-rules\" class=\"wp-block-heading\">3. Hapus aturan 80\/443 yang terlalu longgar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aturan-aturan ini saat ini memungkinkan <em>apa pun<\/em> Alamat IP untuk mengakses port web Anda. Kami akan menggantinya dengan aturan khusus Cloudflare.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo ufw hapus izin 80\/tcp\nsudo ufw hapus izin 443\/tcp\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jika UFW meminta konfirmasi, ketik <code>y<\/code> dan tekan Enter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Periksa statusnya lagi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo ufw status verbose\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Anda seharusnya tidak lagi melihat <code>80\/TCP<\/code> atau <code>443<\/code> dengan <code>IZINKAN<\/code> dari <code>Di mana saja<\/code>.<\/p>\n\n\n\n<h2 id=\"4-run-the-cloudflareufw-script\" class=\"wp-block-heading\">4. Jalankan skrip Cloudflare\u2011UFW<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo \/usr\/local\/bin\/cloudflare-ufw.sh\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Fungsi skrip ini:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mengambil rentang IPv4 dan IPv6 Cloudflare terbaru dari <code>https:\/\/www.cloudflare.com\/ips-v4<\/code> dan <code>...\/ips-v6<\/code>.<\/li>\n\n\n\n<li>Menghapus semua aturan UFW yang ada untuk port 80 dan 443 yang mengizinkan <code>Di mana saja<\/code>.<\/li>\n\n\n\n<li>Menambahkan yang baru <code>IZINKAN<\/code> aturan <strong>hanya<\/strong> untuk setiap rentang alamat IP Cloudflare pada port 80 (HTTP) dan 443 (HTTPS).<\/li>\n\n\n\n<li>Secara opsional, muat ulang UFW agar aturan baru segera berlaku.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah selesai, periksa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo ufw status verbose\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sekarang Anda seharusnya melihat beberapa baris seperti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>teks<code>Tindakan Dari\n-- ------ ----\n80\/tcp IZINKAN 173.245.48.0\/20\n80\/tcp IZINKAN 103.21.244.0\/22\n...\n443 IZINKAN 173.245.48.0\/20\n443 IZINKAN 103.21.244.0\/22\n...\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Semua alamat IP lainnya secara otomatis ditolak untuk port 80\/443.<\/p>\n\n\n\n<h2 id=\"5-automate-daily-updates-with-cron\" class=\"wp-block-heading\">5. Otomatiskan pembaruan harian dengan cron<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Edit berkas crontab root:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo crontab -e\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jika diminta, pilih editor yang Anda inginkan (misalnya, <code>nano<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambahkan baris berikut di bagian akhir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text<code>0 3 * * * \/usr\/local\/bin\/cloudflare-ufw.sh &gt;&gt; \/var\/log\/cloudflare-ufw.log 2&gt;&amp;1\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ini yang dilakukan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menjalankan skrip setiap hari pukul 03.00 waktu server.<\/li>\n\n\n\n<li>Menambahkan hasil dan pesan kesalahan ke <code>\/var\/log\/cloudflare-ufw.log<\/code> untuk audit.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Simpan dan tutup editor.<\/p>\n\n\n\n<h2 id=\"6-verify-the-cron-job\" class=\"wp-block-heading\">6. Periksa tugas cron<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tampilkan daftar crontab pengguna root untuk memastikannya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo crontab -l\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Anda seharusnya bisa melihat baris baru itu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jika diinginkan, jalankan secara paksa dan periksa log:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo \/usr\/local\/bin\/cloudflare-ufw.sh\nsudo tail -n 20 \/var\/log\/cloudflare-ufw.log\n<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"7-ongoing-maintenance\" class=\"wp-block-heading\">7. Pemeliharaan berkala<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk menyegarkan aturan secara manual kapan saja: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo \/usr\/local\/bin\/cloudflare-ufw.sh<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk memeriksa log: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo less \/var\/log\/cloudflare-ufw.log<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jika Anda perlu mengembalikan pengaturan ke \u201cizinkan di mana saja\u201d (tidak disarankan untuk lingkungan produksi): <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo 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<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>","protected":false},"featured_media":0,"parent":47233,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-47270","docs","type-docs","status-publish","hentry","pmpro-has-access"],"_links":{"self":[{"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/docs\/47270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/comments?post=47270"}],"version-history":[{"count":1,"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/docs\/47270\/revisions"}],"predecessor-version":[{"id":47271,"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/docs\/47270\/revisions\/47271"}],"up":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/docs\/47233"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/media?parent=47270"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/raybeam.jp\/id\/wp-json\/wp\/v2\/docs_category?post=47270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}