{"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\/ko\/docs\/initial-server-setup\/how-to-auto-update-ufw-rules-with-cloudflare-ips\/","title":{"rendered":"Cloudflare IP\ub97c \uc0ac\uc6a9\ud558\uc5ec UFW \uaddc\uce59\uc744 \uc790\ub3d9 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \ubc29\ubc95"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Cloudflare \ub4a4\uc5d0 \uc549\uc744 \ub54c\ub294 <strong>~\ub9cc<\/strong> Cloudflare\uc758 IP \ubc94\uc704\uc5d0\uc11c \uc624\ub294 \ud2b8\ub798\ud53d\uc744 \ud3ec\ud2b8 80 \ubc0f 443\uc5d0\uc11c \ud5c8\uc6a9\ud569\ub2c8\ub2e4. Cloudflare\ub294 \uc774\ub7ec\ud55c \ubc94\uc704\ub97c \uc8fc\uae30\uc801\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud558\ubbc0\ub85c UFW \uaddc\uce59\uc744 \uc790\ub3d9\uc73c\ub85c \uc0c8\ub85c \uace0\uccd0\uc57c \ud569\ub2c8\ub2e4. \ub2e4\uc74c \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c <strong><a href=\"https:\/\/github.com\/Paul-Reed\/cloudflare-ufw\">cloudflare-ufw<\/a><\/strong>, \ud3f4 \ub9ac\ub4dc\uc758 \uc800\uc11c\ub294 \ubc14\ub85c \uadf8 \uc5ed\ud560\uc744 \ud574\ub0b8\ub2e4.<\/p>\n\n\n\n<h2 id=\"1-download-and-make-the-script-executable\" class=\"wp-block-heading\">1. \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \uc2e4\ud589 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud558\uc138\uc694<\/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. \ud604\ud589 UFW \uaddc\uc815 \uac80\ud1a0 (\uac1c\uc815 \uc804)<\/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\">\ub2e4\uc74c\uacfc \uac19\uc740 \ub0b4\uc6a9\uc774 \ud45c\uc2dc\ub420 \uac83\uc785\ub2c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text<code>\uc870\uce58 \ub300\uc0c1\n-- ------ ----\n22\/tcp \ud5c8\uc6a9 \ubaa8\ub4e0 \uacf3\n80\/tcp \ud5c8\uc6a9 \ubaa8\ub4e0 \uacf3\n443 \ud5c8\uc6a9 \ubaa8\ub4e0 \uacf3\n...\n<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"3-remove-the-overlypermissive-80443-rules\" class=\"wp-block-heading\">3. \uc9c0\ub098\uce58\uac8c \ud5c8\uc6a9\uc801\uc778 80\/443 \ud3ec\ud2b8 \uaddc\uce59\uc744 \uc81c\uac70\ud558\uc2ed\uc2dc\uc624<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac \uc774 \uaddc\uce59\ub4e4\uc740 \ub2e4\uc74c\uc744 \ud5c8\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4 <em>\uc5b4\ub5a4<\/em> \uc6f9 \ud3ec\ud2b8\uc5d0 \uc5f0\uacb0\ub418\ub294 IP \uc8fc\uc18c\uc785\ub2c8\ub2e4. \uc774\ub97c Cloudflare \uc804\uc6a9 \uaddc\uce59\uc73c\ub85c \ub300\uccb4\ud560 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo ufw delete allow 80\/tcp\nsudo ufw delete allow 443\/tcp\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">UFW\uc5d0\uc11c \ud655\uc778\uc744 \uc694\uccad\ud558\uba74 \ub2e4\uc74c\uc744 \uc785\ub825\ud558\uc138\uc694 <code>y<\/code> \uadf8\ub9ac\uace0 Enter \ud0a4\ub97c \ub204\ub974\uc138\uc694.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ud0dc\ub97c \ub2e4\uc2dc \ud655\uc778\ud574 \ubcf4\uc138\uc694:<\/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\">\ub354 \uc774\uc0c1 \ubcf4\uc774\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4 <code>80\/tcp<\/code> \ub610\ub294 <code>443<\/code> \uc640 \ud568\uaed8 <code>\ud5c8\uc6a9<\/code> ~\uc5d0\uc11c <code>\uc5b4\ub514\uc11c\ub098<\/code>.<\/p>\n\n\n\n<h2 id=\"4-run-the-cloudflareufw-script\" class=\"wp-block-heading\">4. Cloudflare\u2011UFW \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4<\/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\">\uc774 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uae30\ub2a5:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub2e4\uc74c\uc5d0\uc11c \ucd5c\uc2e0 Cloudflare IPv4 \ubc0f IPv6 \uc8fc\uc18c \ubc94\uc704\ub97c \uac00\uc838\uc635\ub2c8\ub2e4. <code>https:\/\/www.cloudflare.com\/ips-v4<\/code> \uadf8\ub9ac\uace0 <code>...\/ips-v6<\/code>.<\/li>\n\n\n\n<li>\ud3ec\ud2b8 80 \ubc0f 443\uc5d0 \ub300\ud574 \ud5c8\uc6a9\ud558\ub294 \uae30\uc874 UFW \uaddc\uce59\uc744 \ubaa8\ub450 \uc0ad\uc81c\ud569\ub2c8\ub2e4. <code>\uc5b4\ub514\uc11c\ub098<\/code>.<\/li>\n\n\n\n<li>\uc0c8\ub85c \ucd94\uac00 <code>\ud5c8\uc6a9<\/code> \uaddc\uce59 <strong>~\ub9cc<\/strong> \ud3ec\ud2b8 80(HTTP) \ubc0f 443(HTTPS)\uc758 \uac01 Cloudflare IP \ubc94\uc704\ubcc4\ub85c.<\/li>\n\n\n\n<li>\uc120\ud0dd\uc801\uc73c\ub85c UFW\ub97c \uc7ac\uc2dc\uc791\ud558\uc5ec \uc0c8\ub85c\uc6b4 \uaddc\uce59\uc774 \uc989\uc2dc \uc801\uc6a9\ub418\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uba74 \ub2e4\uc74c\uc744 \ud655\uc778\ud558\uc2ed\uc2dc\uc624:<\/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\">\uc774\uc81c \ub2e4\uc74c\uacfc \uac19\uc740 \uc5ec\ub7ec \uc904\uc774 \ud45c\uc2dc\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text<code>\uc218\uc2e0\uc790 \ubc1c\uc2e0\uc790\n-- ------ ----\n80\/tcp \ud5c8\uc6a9 173.245.48.0\/20\n80\/tcp \ud5c8\uc6a9 103.21.244.0\/22\n...\n443 \ud5c8\uc6a9 173.245.48.0\/20\n443 \ud5c8\uc6a9 103.21.244.0\/22\n...\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud3ec\ud2b8 80\/443\uc5d0 \ub300\ud574\uc11c\ub294 \uadf8 \uc678\uc758 \ubaa8\ub4e0 IP \uc8fc\uc18c\uc5d0 \ub300\ud574 \uc554\ubb35\uc801\uc73c\ub85c \uc811\uadfc\uc774 \ucc28\ub2e8\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 id=\"5-automate-daily-updates-with-cron\" class=\"wp-block-heading\">5. cron\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub9e4\uc77c \uc5c5\ub370\uc774\ud2b8\ub97c \uc790\ub3d9\ud654\ud558\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudflare\ub294 \uc5b8\uc81c\ub4e0\uc9c0 IP \ubc94\uc704\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubc29\ud654\ubcbd \uc124\uc815\uc744 \ucd5c\uc2e0 \uc0c1\ud0dc\ub85c \uc720\uc9c0\ud558\ub824\uba74 \uc2a4\ud06c\ub9bd\ud2b8\uac00 \ub9e4\uc77c(\uc608: \uc624\uc804 3\uc2dc) \uc2e4\ud589\ub418\ub3c4\ub85d \uc608\uc57d\ud558\uc2ed\uc2dc\uc624.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub8e8\ud2b8 crontab\uc744 \ud3b8\uc9d1\ud569\ub2c8\ub2e4:<\/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\">\uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub418\uba74 \uc6d0\ud558\ub294 \ud3b8\uc9d1\uae30\ub97c \uc120\ud0dd\ud558\uc138\uc694 (\uc608:, <code>\ub098\ub178<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub05d\ubd80\ubd84\uc5d0 \ub2e4\uc74c \uc904\uc744 \ucd94\uac00\ud558\uc138\uc694:<\/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\">\ub2e4\uc74c\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \uc791\ub3d9\ud569\ub2c8\ub2e4:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc11c\ubc84 \uc2dc\uac04 \uae30\uc900\uc73c\ub85c \ub9e4\uc77c \uc624\uc804 3\uc2dc\uc5d0 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ucd9c\ub825 \ubc0f \uc624\ub958\ub97c \ub2e4\uc74c \uc704\uce58\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. <code>\/var\/log\/cloudflare-ufw.log<\/code> \uac10\uc0ac \ubaa9\uc801\uc73c\ub85c.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud3b8\uc9d1\uae30\ub97c \uc800\uc7a5\ud558\uace0 \uc885\ub8cc\ud558\uc138\uc694.<\/p>\n\n\n\n<h2 id=\"6-verify-the-cron-job\" class=\"wp-block-heading\">6. \ud06c\ub860 \uc791\uc5c5 \ud655\uc778<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud655\uc778\ud558\uae30 \uc704\ud574 \ub8e8\ud2b8 \uc0ac\uc6a9\uc790\uc758 crontab\uc744 \ub098\uc5f4\ud569\ub2c8\ub2e4:<\/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\">\uc0c8 \uc904\uc774 \ud45c\uc2dc\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc6d0\ud55c\ub2e4\uba74 \uc989\uc2dc \uc2e4\ud589\uc744 \uac15\uc81c\ud558\uace0 \ub85c\uadf8\ub97c \ud655\uc778\ud558\uc138\uc694:<\/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. \uc9c0\uc18d\uc801\uc778 \uc720\uc9c0\ubcf4\uc218<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5b8\uc81c\ub4e0\uc9c0 \uc218\ub3d9\uc73c\ub85c \uaddc\uce59\uc744 \uc0c8\ub85c \uace0\uce58\ub824\uba74: <\/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\">\ub85c\uadf8\ub97c \ud655\uc778\ud558\ub824\uba74: <\/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\">\ub9cc\uc57d \u201c\uc5b4\ub514\uc11c\ub098 \ud5c8\uc6a9\u201d\uc73c\ub85c \ub418\ub3cc\ub824\uc57c \ud560 \uacbd\uc6b0(\uc2e4\uc81c \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 \uad8c\uc7a5\ud558\uc9c0 \uc54a\uc74c): <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash<code>sudo ufw delete allow from any to any port 80 proto tcp sudo ufw delete allow from any to any port 443 proto tcp sudo ufw allow 80\/tcp sudo ufw allow 443\/tcp<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc124\uc815\uc744 \uc801\uc6a9\ud558\uba74 UFW \ubc29\ud654\ubcbd\uc740 \ud56d\uc0c1 \ud604\uc7ac Cloudflare IP \ubc94\uc704\uc5d0\uc11c \uc624\ub294 HTTP\/HTTPS \ud2b8\ub798\ud53d\ub9cc \ud5c8\uc6a9\ud558\uac8c \ub418\uc5b4, \uacf5\uaca9 \ud45c\uba74\uc744 \ub300\ud3ed \uc904\uc774\ub294 \ub3d9\uc2dc\uc5d0 Cloudflare\ub97c \ud1b5\ud574 \uc0ac\uc774\ud2b8\uc5d0 \uacc4\uc18d \uc811\uc18d\ud560 \uc218 \uc788\ub3c4\ub85d \ubcf4\uc7a5\ud569\ub2c8\ub2e4.<\/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\/ko\/wp-json\/wp\/v2\/docs\/47270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/comments?post=47270"}],"version-history":[{"count":1,"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/docs\/47270\/revisions"}],"predecessor-version":[{"id":47271,"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/docs\/47270\/revisions\/47271"}],"up":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/docs\/47233"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/media?parent=47270"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/raybeam.jp\/ko\/wp-json\/wp\/v2\/docs_category?post=47270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}