
UNIX Cafe 第109回
平穏な「サポート窓口」の終焉
2023年5月、pc-fan.net はWindowsユーザーの困りごとを解決する、静かで平和な場所として産声を上げました。しかし、2025年12月、ある「決別」をきっかけに、このサイトは戦場へと変わります。
Windows 10のサポート終了を機に踏み出した、macOS、そしてUNIXの世界への一歩。 その記念すべき第一声。
「Goodbye Windows! Hello UNIX!」
その宣言が公開された瞬間、見えない敵たちによる「洗礼」が始まったのです。

数字が語る「炎の洗礼」
サイトのコンセプトを一新した直後、Akismetの統計には異常な数字が刻まれました。
2025年12月:2,072件(スパムブロック数)
新装開店の初月から、1日平均約67通。まるで「裏切り者」を見つけ出したかのような、執拗な絨毯爆弾です。翌1月も攻撃は止まず、さらに916件のスパムが押し寄せました。
これは単なる偶然でしょうか? それとも、自由を求めてUNIXの世界へ旅立った者への、Redmond(Microsoft)からの手荒な「引き留め」だったのでしょうか。
盾としてのAkismet、剣としての自作スクリプト
この猛攻に対し、私は二つの武器で立ち向かいました。
鉄壁の盾:Akismet
2,989件の攻撃を、99.93%という驚異的な精度で弾き飛ばしました。手動で処理していれば、私の「UNIX Cafe」は開店休業に追い込まれていたでしょう。
独自の防衛線:自作シェルスクリプト
ログから攻撃者の「呼吸(リクエスト)」を読み取り、IPを特定してブラックリストへ叩き込む。check_all.sh や extract_ip.sh といった自前のツールたちが、サーバーの門前でボットたちを追い返しました。
沈黙が告げる「勝利」
戦いの結果は、2月の統計にハッキリと現れました。
- 2026年2月:1件
- 2026年3月:0件
数千件の嵐が嘘のように、2月はたった「1件」にまで抑え込みました。これは、ボットたちが「このUNIX Cafeの店主は手強い」と判断し、撤退していった証拠です。
不自由からの脱却、そして手に入れた「静寂」
Windows時代の「受け身の解決」から、UNIXを相棒にした「能動的な防衛」へ。 3,000件のスパムとの戦いを通じて得たのは、単なる数字の減少ではありません。自分の城を自分で守り抜くという、UNIXユーザーとしての確かな手応えです。
もし、あなたが「自由」を求めて新しい一歩を踏み出そうとしているなら、少しだけ覚悟をしてください。 その一歩は、盛大な「洗礼」で祝われるかもしれません。 でも、大丈夫。UNIXという力強い相棒と、少しの好奇心があれば、その嵐はやがて最高の「静寂」へと変わるはずです。
🛡️ テクニカル・ノート:UNIXの流儀で「城」を守る
今回の3,000通におよぶスパム攻勢を鎮圧した、防衛システムの裏側を少しだけ公開します。市販のツールを導入して終わりにするのではなく、**「ログを読み、呼吸を止める」**というUNIXの基本思想に基づいた構成です。
1. 偵察:extract_ip.sh による「呼吸」の解析
攻撃者がどのような意図でサイトに触れているのかを知るために、特定のIPアドレスの動きだけを執拗に追いかけます。
- 仕組み:
zgrepを駆使し、圧縮された過去ログの中から特定のIPによるアクセスのみを高速に抽出。 - こだわり: 単にアクセスを並べるのではなく、
alfashell.phpのような「Webシェルの設置痕跡」や、今回のような「スパムコメントの投稿試行」を浮き彫りにします。 - 核心: 相手が何を狙っているのかを「見える化」することで、感情的な対応ではなく、冷静な技術的遮断が可能になります。
2. 哨戒:check_all.sh による自動巡回
毎日決まった時間に、管理している全サイトのログを同期し、異常を検知します。
- 仕組み: SFTPでサーバーからログを取得し、独自の「閾値(しきいち)」を超えたアクセス元をリストアップ。
- こだわり: ホワイトリスト機能を備え、管理者自身やGooglebotなどの正規のアクセスをノイズとして排除。本当に「黒」に近い通信だけをあぶり出します。
- 核心: 異常をいち早く察知することで、被害が拡大する前に手を打つことができます。
3. 断罪:update_htaccess.sh による水際対策
あぶり出された悪意あるIPに対し、「二度と敷居を跨がせない」ための最終処理です。
- 仕組み: Apacheの制御ファイル(.htaccess)へ、
Require not ip [対象IP]を一括で書き込みます。 - こだわり: 手作業によるミスを防ぐため、ローカルのマスターファイルを編集し、コマンド一つで全サイトの防衛設定を同期・更新します。
- 核心: PHP(WordPress)に処理が渡る前の「サーバーの門」で物理的に遮断するため、サーバー負荷を最小限に抑えられます。
UNIXユーザーの独り言: Akismetが「スパムを仕分ける」ガードマンなら、私たちのスクリプトは「スパム送信者そのものを門前払いする」門番の役割です。この二段構えこそが、UNIXを使いこなす者が手に入れられる、最高に贅沢な「静寂」の正体なのです。
