Web AI ファイアウォール ユーティリティ Anubis(アヌビス)についてまとめています。

ページ運営者は Cloudflare プロキシを経由せずに http・https: 参照している
VPS・クラウドインスタンスで Anubis を導入・経由するようにしています。
次のところは公開しています。

🎈 sftp-mkdocs.bal.us.eu.org - 🎈 fu-sen/SFTP-MkDocs | GitHub
🎈 kusanonebbs.jp.eu.org - 🎈 パソコン通信 草の根 BBS 接続用 Sshwifty

参照して一度だけ動作を確認できます。その後は再度参照しても表示されません。


目次


公式・関連サイト


特徴

🔍

あなたがボットではないことを確認しています! というメッセージと共に
虫眼鏡を持った獣耳女の子キャラクターが一瞬だけ表示されたのを見た事があれば、
これが Anubis です。

この時、新しいブラウザを使用している事を確認します。
(SHA256 ハッシュタグを計算する方法を用いているとの事)
成功した場合は Cookie を保存します。
そのため一度認証すると、しばらく表示される事はありません。
最近だと人間だと判断する手段として
表示している画像を操作したりする仕組みも出てきていたりして
時には質問内容が分からず、認証が通らない!
という経験もした事があるのではないでしょうか?
Anubis では操作する必要はありません。一度だけ数秒待つだけです。
(その間にかわいいキャラクターを拝む事もできます)

オープンソースで公開されていて、サーバーにインストールして使う事ができます。
Cloudflare で同等の認証を行いますが、
Cloudflare が使えない・使いたくない環境では代用手段になりえます。
フリーソフトのプロジェクトが独自に設置している
Git リポジトリや Wiki などで特に採用が多いようですが、
どんどんと利用される Web サイトも増加しています。
2025 年に公開されたばかりです。


導入してみる

 Setting up Anubis | Anubis

VPS 1 台でも導入できます。共用レンタルサーバーでは難しいでしょう。
リバースプロキシ(として動作している Web サーバー)から Anubis を経由して、
アプリ(Web サイト・ブログなど)を参照するよう設定します。

Docker

Docker イメージに同梱された Anubis が公式に提供されています。

 pkgs/container/anubis | GitHub TecharoHQ/anubis

実行ファイル

 Installing Anubis with a native package | Anubis

.deb .rpm .tar.gz で実行できるバイナリーファイルが提供されています。

設定ファイル

/etc/anubis/default.env を任意の名前で複製します。
ここでは web という名前にして web.env を作成します。

cd /etc/anubis/
sudo cp default.env web.env
default.env のまま使用できますが、
パッケージの更新で上書きして設定を置き換えてしまう恐れがあるので、
複製して任意の名前を付けて運用するのがおすすめです。
 Debian package does not have conffiles #1391 | GithUb TecharoHQ / anubis issues

web.env を開き、必要なら編集します。

sudo nano web.env
BIND=:8923
DIFFICULTY=4
METRICS_BIND=:9090
SERVE_ROBOTS_TXT=0
TARGET=http://localhost:3000
  • BIND - Anubis がリッスンするネットワークアドレス。
    :ポート番号 以外に Unix ドメインソケットを指定する事もできます。
  • DIFFICULTY - チャレンジの難易度。
    とりあえずはデフォルトの 4 で良いでしょう。
  • METRICS_BIND - Prometheus メトリクスを提供するネットワークアドレス
  • SERVE_ROBOTS_TXT - true の場合、既知の AI スクレーパーを全て拒否し、
    全てのスクレーパーを禁止する robots.txt ファイルを提供します。
  • TARGET - チェレンジに成功した時、リクエストを転送するサービス URL

/etc/anubis/web.env を有効・起動する場合は次のコマンドです。
web.env の名前に合わせて anubis@webweb を変更します。
systemd 以外の init システムを用いている場合は置き換えて下さい。

sudo systemctl enable --now anubis@web

Caddy での設定例

ここでは、アプリとして 🎈 Caddy で Web サーバーを運用していて
Anubis のポート転送も Caddy で行う場合で説明します。
example.net.eu.org に Anubis を導入します。
/etc/caddy/Caddyfile の編集前はこの状態だとします。

example.net.eu.org {
  root * /home/balloon/example.net.eu.org
  file_server  
}

example.net.eu.org (https) で参照した時に
BIND のポート番号へリバースプロキシするようにします。
ここでは :8023 です。
Caddy は http の時に https への転送を行います。

example.net.eu.org {
  reverse_proxy localhost:8923 {
    header_up X-Real-Ip {remote_host}
    header_up X-Http-Version {http.request.proto}
  }
}

本来の参照は TARGET のポート番号を http: で処理します。
http://example.net.eu.org:3000 となります。
1 台の VPS などで処理しているなら、同じ Caddyfile 内に続けて、
Amebis とサーバを分けている場合はアプリを提供するサーバー側です。

http://example.net.eu.org:3000 {
  root * /home/balloon/example.net.eu.org
  file_server  
}

Caddy を再起動します。

sudo systemctl restart caddy

Amebis が動作している事を実際に参照して確認して下さい。

他環境での設定例

 Environments | Anubis

Web サーバー・プロキシアプリケーション等を用いて
リバースプロキシが実現できれば良いので、
手段はいろいろ存在します。

ここでの項目には Cloudflare も別途ページ存在しています。
Cloudflare プロキシ → Anubis 経由で使用する場合は
ヘッダの付与が必要です。ご注意下さい。\


ボットポリシーファイル

 Configuration | Anubis

条件を細かく設定できます。 web/etc/anubis/web.envweb に共通です。

sudo cp /usr/share/doc/anubis/botPolicies.yaml /etc/anubis/web.botPolicies.yaml

コピーした web.botPolicies.yaml を編集します。


Q&A

Anubis という名前の意味は?

 アヌビス | Wikipedia

古代エジプトにおいて、墓場のまわりに来る犬・オオカミは
死者を守ってくれているとの考えから、Amubis は「死者の神」とされます。
従ってキャラクターの耳は犬・オオカミの耳です。

女の子がカナダの帽子をかぶっているのはなぜですか?

Anubis の開発者 Techaro さんがカナダ所在です。

Anubis を導入したいのですが、1 台 VPS などのサーバーを設置する必要がありますか?

いいえ。規模が小さく 1 台の VPS で運用していて
特にサーバーの負荷が生じていない状況であれば、
そのサーバー内で Anubis を動作させて大丈夫でしょう。

 Caddy での設定例 は実際 1 台の VPS を想定していて、
実際にページ運営者が設定している VPS を共に記載しています。

逆に Anubis から別のサーバーで稼働しているアプリ・配信サーバーを参照し
動作させる事もでき、ドメインなどに応じて分散も可能です。
(この辺はリバースプロキシレベルも絡んだ話になります)

本当に様々なブラウザ・環境で認証できているのですか?

ページ運営者が様々な Web ブラウザで確認してみました。
古いブラウザでは、Amubis の認証がはじまる前に
SSL 関連の問題でまず参照すらできません。
JavaScript の対応によっては、そもそも表示できない状態になります。
Chromium・Firefox の派生とかであれば、まず問題なく認証がとおります。

RSS リーダーが参照する .xml .atom ファイルや robot.txt、.well-known などは
ボットポリシーファイルによって許可されるようになっています。

共用レンタルサーバーで Anubis を導入できますか?

現状では専用のポート番号または unix ソケットを使用する死喰みのため、
VPS・専用サーバーに限っての使用になっていて、
共用レンタルサーバーではサーバー会社・管理者レベルで対応が必要です。
ただし反応は多く派生も生まれているので、
そのうち共用レンタルサーバーに導入できるものが生まれるかもしれません。

Anubis を Caddy モジュール化できそうですが……

 A module for Caddy #16 | GitHub TecharoHQ / anubis

GitHub Issues で実際にそのような提案があり、
何名かがモジュールを作って公開している状態になっています。
仕組みだけシンプルに作ったものもあれば、
専用にキャラクターを作って新たな名前を付けたものもあります。

Anubis を導入してみたのですが、動作しているか見逃しました

Chrome のシークレットウインドウ、Edge の InPrivate ウインドウ、
Firefox のプライベートウインドウを使って参照して下さい。
これらは保存された Cookie を使用しないので、Anubis の表示を確認できます。

女の子のデザインを消す事はできますか?

 Commercial support and an unbranded version | Anubis

Anubis の商用版「BotStopper」でカスタム画像・CSS などが可能になっています。