{"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\/ja\/docs\/initial-server-setup\/how-to-auto-update-ufw-rules-with-cloudflare-ips\/","title":{"rendered":"Cloudflare\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u4f7f\u7528\u3057\u3066UFW\u30eb\u30fc\u30eb\u3092\u81ea\u52d5\u66f4\u65b0\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Cloudflare\u306e\u5f8c\u65b9\u306b\u5ea7\u308b\u969b\u306f\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044 <strong>\u305f\u3060<\/strong> Cloudflare\u306eIP\u7bc4\u56f2\u304b\u3089\u306e\u30dd\u30fc\u30c880\u304a\u3088\u3073443\u3078\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u8a31\u53ef\u3057\u307e\u3059\u3002Cloudflare\u306f\u3053\u308c\u3089\u306e\u7bc4\u56f2\u3092\u5b9a\u671f\u7684\u306b\u66f4\u65b0\u3059\u308b\u305f\u3081\u3001UFW\u306e\u30eb\u30fc\u30eb\u3092\u81ea\u52d5\u7684\u306b\u66f4\u65b0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u304b\u3089 <strong><a href=\"https:\/\/github.com\/Paul-Reed\/cloudflare-ufw\">cloudflare-ufw<\/a><\/strong>, \u30dd\u30fc\u30eb\u30fb\u30ea\u30fc\u30c9\u8457\u306e\u300e\u300f\u306f\u3001\u307e\u3055\u306b\u305d\u308c\u3092\u5b9f\u73fe\u3057\u3066\u3044\u308b\u3002.<\/p>\n\n\n\n<h2 id=\"1-download-and-make-the-script-executable\" class=\"wp-block-heading\">1. \u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u5b9f\u884c\u53ef\u80fd\u306b\u3059\u308b<\/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. \u73fe\u884c\u306eUFW\u898f\u5247\u3092\u78ba\u8a8d\u3059\u308b\uff08\u5909\u66f4\u524d\uff09<\/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\">\u6b21\u306e\u3088\u3046\u306a\u8868\u793a\u304c\u51fa\u308b\u3067\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text<code>\u30a2\u30af\u30b7\u30e7\u30f3 \u9001\u4fe1\u5143\n-- ------ ----\n22\/tcp \u8a31\u53ef \u3069\u3053\u304b\u3089\u3067\u3082\n80\/tcp \u8a31\u53ef \u3069\u3053\u304b\u3089\u3067\u3082\n443 \u8a31\u53ef \u3069\u3053\u304b\u3089\u3067\u3082\n...\n<\/code><\/code><\/pre>\n\n\n\n<h2 id=\"3-remove-the-overlypermissive-80443-rules\" class=\"wp-block-heading\">3. \u904e\u5ea6\u306b\u5bdb\u5bb9\u306a80\/443\u30dd\u30fc\u30c8\u306e\u30eb\u30fc\u30eb\u3092\u524a\u9664\u3059\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3089\u306e\u898f\u5247\u3067\u306f\u73fe\u5728\u3001\u4ee5\u4e0b\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u3059 <em>\u3044\u305a\u308c\u304b<\/em> Web\u30dd\u30fc\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9\u7528IP\u30a2\u30c9\u30ec\u30b9\u3002\u3053\u308c\u3089\u3092Cloudflare\u5c02\u7528\u306e\u30eb\u30fc\u30eb\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002.<\/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\u304b\u3089\u78ba\u8a8d\u3092\u6c42\u3081\u3089\u308c\u305f\u5834\u5408\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044 <code>y<\/code> \u305d\u3057\u3066Enter\u30ad\u30fc\u3092\u62bc\u3057\u307e\u3059\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3082\u3046\u4e00\u5ea6\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/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\">\u3082\u3046\u8868\u793a\u3055\u308c\u306a\u304f\u306a\u308b\u306f\u305a\u3067\u3059 <code>80\/TCP<\/code> \u307e\u305f\u306f <code>443<\/code> \u3068 <code>\u8a31\u53ef<\/code> \u51fa\u5178\uff1a <code>\u3069\u3053\u3067\u3082<\/code>.<\/p>\n\n\n\n<h2 id=\"4-run-the-cloudflareufw-script\" class=\"wp-block-heading\">4. Cloudflare\u2011UFW \u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b<\/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\">\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u6a5f\u80fd\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u304b\u3089\u6700\u65b0\u306eCloudflare IPv4\u304a\u3088\u3073IPv6\u30a2\u30c9\u30ec\u30b9\u7bc4\u56f2\u3092\u53d6\u5f97\u3057\u307e\u3059 <code>https:\/\/www.cloudflare.com\/ips-v4<\/code> \u305d\u3057\u3066 <code>...\/ips-v6<\/code>.<\/li>\n\n\n\n<li>\u30dd\u30fc\u30c880\u304a\u3088\u3073443\u306b\u5bfe\u3057\u3066\u8a31\u53ef\u3059\u308b\u65e2\u5b58\u306eUFW\u30eb\u30fc\u30eb\u3092\u3059\u3079\u3066\u524a\u9664\u3057\u307e\u3059 <code>\u3069\u3053\u3067\u3082<\/code>.<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u3082\u306e\u3092\u8ffd\u52a0\u3057\u307e\u3059 <code>\u8a31\u53ef<\/code> \u898f\u5247 <strong>\u305f\u3060<\/strong> \u30dd\u30fc\u30c880\uff08HTTP\uff09\u304a\u3088\u3073443\uff08HTTPS\uff09\u306b\u304a\u3051\u308b\u5404Cloudflare IP\u7bc4\u56f2\u306b\u3064\u3044\u3066\u3002.<\/li>\n\n\n\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066UFW\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3057\u3001\u65b0\u3057\u3044\u30eb\u30fc\u30eb\u3092\u76f4\u3061\u306b\u6709\u52b9\u306b\u3057\u307e\u3059\u3002.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b8c\u4e86\u3057\u305f\u3089\u3001\u4ee5\u4e0b\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/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\">\u6b21\u306e\u3088\u3046\u306a\u884c\u304c\u3044\u304f\u3064\u304b\u8868\u793a\u3055\u308c\u308b\u306f\u305a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>text<code>\u30a2\u30af\u30b7\u30e7\u30f3\u5b9b\u5148\n-- ------ ----\n80\/tcp ALLOW 173.245.48.0\/20\n80\/tcp ALLOW 103.21.244.0\/22\n...\n443 ALLOW 173.245.48.0\/20\n443 ALLOW 103.21.244.0\/22\n...\n<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u30dd\u30fc\u30c880\u304a\u3088\u3073443\u306b\u3064\u3044\u3066\u306f\u3001\u305d\u308c\u4ee5\u5916\u306e\u3059\u3079\u3066\u306eIP\u30a2\u30c9\u30ec\u30b9\u306f\u6697\u9ed9\u7684\u306b\u62d2\u5426\u3055\u308c\u307e\u3059\u3002.<\/p>\n\n\n\n<h2 id=\"5-automate-daily-updates-with-cron\" class=\"wp-block-heading\">5. cron \u3092\u4f7f\u3063\u3066\u6bce\u65e5\u306e\u66f4\u65b0\u3092\u81ea\u52d5\u5316\u3059\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudflare\u306f\u3044\u3064\u3067\u3082IP\u30a2\u30c9\u30ec\u30b9\u7bc4\u56f2\u3092\u5909\u66f4\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306e\u8a2d\u5b9a\u3092\u6700\u65b0\u306e\u72b6\u614b\u306b\u4fdd\u3064\u305f\u3081\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u6bce\u65e5\uff08\u4f8b\uff1a\u5348\u524d3\u6642\uff09\u5b9f\u884c\u3059\u308b\u3088\u3046\u306b\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30eb\u30fc\u30c8\u30e6\u30fc\u30b6\u30fc\u306ecrontab\u3092\u7de8\u96c6\u3057\u307e\u3059\uff1a<\/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\">\u30d7\u30ed\u30f3\u30d7\u30c8\u304c\u8868\u793a\u3055\u308c\u305f\u3089\u3001\u304a\u597d\u307f\u306e\u30a8\u30c7\u30a3\u30bf\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\uff08\u4f8b\uff1a, <code>\u30ca\u30ce<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u672b\u5c3e\u306b\u6b21\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/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\">\u3053\u308c\u306f\u6b21\u306e\u3088\u3046\u306b\u52d5\u4f5c\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b5\u30fc\u30d0\u30fc\u6642\u9593\u306e\u6bce\u65e5\u5348\u524d3\u6642\u306b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002.<\/li>\n\n\n\n<li>\u51fa\u529b\u3068\u30a8\u30e9\u30fc\u3092 <code>\/var\/log\/cloudflare-ufw.log<\/code> \u76e3\u67fb\u306e\u305f\u3081\u3002.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a8\u30c7\u30a3\u30bf\u3092\u4fdd\u5b58\u3057\u3066\u7d42\u4e86\u3057\u307e\u3059\u3002.<\/p>\n\n\n\n<h2 id=\"6-verify-the-cron-job\" class=\"wp-block-heading\">6. cron\u30b8\u30e7\u30d6\u3092\u78ba\u8a8d\u3059\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u78ba\u8a8d\u306e\u305f\u3081\u306broot\u30e6\u30fc\u30b6\u30fc\u306ecrontab\u3092\u8868\u793a\u3057\u307e\u3059\uff1a<\/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\">\u65b0\u3057\u3044\u884c\u304c\u8868\u793a\u3055\u308c\u308b\u306f\u305a\u3067\u3059\u3002.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001\u5f37\u5236\u7684\u306b\u76f4\u3061\u306b\u5b9f\u884c\u3057\u3001\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/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. \u7d99\u7d9a\u7684\u306a\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3044\u3064\u3067\u3082\u624b\u52d5\u3067\u30eb\u30fc\u30eb\u3092\u66f4\u65b0\u3059\u308b\u306b\u306f\uff1a <\/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\">\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f\uff1a <\/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\">\u4e07\u304c\u4e00\u3001\u300c\u3069\u3053\u3067\u3082\u8a31\u53ef\u300d\u306b\u623b\u3059\u5fc5\u8981\u304c\u751f\u3058\u305f\u5834\u5408\uff08\u672c\u756a\u74b0\u5883\u3067\u306f\u63a8\u5968\u3055\u308c\u307e\u305b\u3093\uff09\uff1a <\/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\">\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001UFW\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306f\u5e38\u306b\u73fe\u5728\u306eCloudflare IP\u7bc4\u56f2\u304b\u3089\u306eHTTP\/HTTPS\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u307f\u3092\u53d7\u3051\u5165\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u653b\u6483\u5bfe\u8c61\u9818\u57df\u3092\u5927\u5e45\u306b\u7e2e\u5c0f\u3057\u3064\u3064\u3001Cloudflare\u7d4c\u7531\u3067\u306e\u30b5\u30a4\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9\u6027\u3092\u78ba\u4fdd\u3067\u304d\u307e\u3059\u3002.<\/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\/ja\/wp-json\/wp\/v2\/docs\/47270","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/comments?post=47270"}],"version-history":[{"count":1,"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/docs\/47270\/revisions"}],"predecessor-version":[{"id":47271,"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/docs\/47270\/revisions\/47271"}],"up":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/docs\/47233"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/media?parent=47270"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/raybeam.jp\/ja\/wp-json\/wp\/v2\/docs_category?post=47270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}