<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>やまえもんブログ</title><description>個人ブログ</description><link>https://yamaemon.dev/</link><language>ja</language><item><title>CloudflareでTor Exitノードをブロックする</title><link>https://yamaemon.dev/posts/cloudflare-waf-block-tor-exit-nodes/</link><guid isPermaLink="true">https://yamaemon.dev/posts/cloudflare-waf-block-tor-exit-nodes/</guid><description>Torユーザーは大体荒らし、疑わしきはブロック</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;概要&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tor経由のアクセスは荒らしやスパム、不正アクセスやログインの試行など害のあるものが殆ど&lt;/li&gt;
&lt;li&gt;なのでサイト運営者目線だとTorは一律ブロックしとくのが無難&lt;/li&gt;
&lt;li&gt;Cloudflareを使ってれば無料で簡単にTorをブロックできるので最高&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;やること&lt;/h2&gt;
&lt;p&gt;CloudflareでTor出口ノードをブロックするなら、大まかな流れは以下。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cloudflareのドメインダッシュボードからセキュリティ → セキュリティールールを開きルールを作成&lt;/li&gt;
&lt;li&gt;条件に &lt;code&gt;ip.src.country eq &quot;T1&quot;&lt;/code&gt; を指定する&lt;/li&gt;
&lt;li&gt;アクションを &lt;code&gt;Block&lt;/code&gt; にする&lt;/li&gt;
&lt;li&gt;Torブラウザなどで自分のサイトが見れないことを確認。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;注意点&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;T1&lt;/code&gt; はTor出口ノードを国コードのように扱えるので、自分でExit NodeのIPリストを更新するよりは格段に楽。&lt;br /&gt;
ただし、Tor経由のアクセスをどこまで正確に拾えるかはCloudflare側の判定に依存する。&lt;br /&gt;
たまにすり抜けてアクセスできてしまうという噂も効くので過信は禁物。&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/waf/custom-rules/&quot;&gt;Cloudflare WAF Custom Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/ruleset-engine/rules-language/fields/reference/&quot;&gt;Cloudflare Ruleset Engine Fields Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://check.torproject.org/exit-addresses&quot;&gt;Tor exit addresses&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>このサイトの技術構成</title><link>https://yamaemon.dev/posts/site-architecture/</link><guid isPermaLink="true">https://yamaemon.dev/posts/site-architecture/</guid><description>サーバレス最高</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;概要&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Astro製の静的ブログ&lt;/li&gt;
&lt;li&gt;GitHub Actionsで自動ビルド&amp;amp;デプロイ&lt;/li&gt;
&lt;li&gt;Cloudflare Pagesで配信&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;全体像&lt;/h2&gt;
&lt;p&gt;masterブランチにpushすると後はGitHub Actionsが自動でビルドとデプロイを行ってくれる。&lt;/p&gt;
&lt;p&gt;&amp;lt;div class=&quot;mermaid&quot;&amp;gt;
%%{init: {&quot;flowchart&quot;: {&quot;nodeSpacing&quot;: 60, &quot;rankSpacing&quot;: 70}} }%%
flowchart LR
yamaemon@{ img: &quot;/images/profile-avatar.png&quot;, label: &quot;&quot;, pos: &quot;t&quot;, h: 72, constraint: &quot;on&quot; }
subgraph githubArea[&quot;GitHub&quot;]
repo[(&quot;リポジトリ&quot;)]
actions[&quot;GitHub Actions&quot;]
repo --&amp;gt;|workflow 起動| actions
end
subgraph cloudflareArea[&quot;Cloudflare&quot;]
pages[&quot;Cloudflare Pages&quot;]
end
visitor([&quot;訪問者&quot;])
yamaemon --&amp;gt;|master push| repo
actions --&amp;gt;|自動デプロイ| pages
pages --&amp;gt;|配信| visitor
classDef actor fill:#e0e7ff,stroke:#6366f1,color:#111827
classDef github fill:#f3f4f6,stroke:#111827,color:#111827
classDef cloudflare fill:#ffedd5,stroke:#f97316,color:#111827
class visitor actor
class repo,actions github
class pages cloudflare
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;h2&gt;この構成の利点&lt;/h2&gt;
&lt;h3&gt;安い&lt;/h3&gt;
&lt;p&gt;よほどアクセスが集中しない限りサーバー代は無料なので現状ドメイン代くらいしかかかっていない。&lt;br /&gt;
Cloudflareは &lt;code&gt;pages.dev&lt;/code&gt; のサブドメインを無料で貸してくれるのでドメイン代すらケチることも可能。&lt;/p&gt;
&lt;h3&gt;セキュア&lt;/h3&gt;
&lt;p&gt;WordPressみたいにウェブ上に管理画面がないので乗っ取られるリスクが少ない。&lt;/p&gt;
&lt;h3&gt;運用が簡単&lt;/h3&gt;
&lt;p&gt;ブログ更新作業は記事を書いて &lt;code&gt;master&lt;/code&gt; に push するだけ。&lt;br /&gt;
サーバーレスなのでサーバー管理も不要。&lt;br /&gt;
Githubに全データが残るのでバックアップも不要。&lt;/p&gt;
</content:encoded></item></channel></rss>