Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
canarytokens-docker — 独自のCanarytokensを素早くセットアップするためのDocker設定。 | Kitploit
ツール/GitHubGitHub/thinkst/canarytokens-docker
防御ツールネットワークセキュリティ侵入検知インシデントレスポンス
GitHubthinkst/canarytokens-docker

canarytokens-docker

独自のCanarytokensを素早くセットアップするためのDocker設定。

リポジトリを見る
65811923日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Docker化されたCanarytokens

by Thinkst Applied Research

概要

Canarytokens は、ネットワーク上のアクティビティと操作を追跡するのに役立ちます。

問題が発生した場合は、こちらのFAQを確認するか、Issueを作成してください。できるだけ早く対応いたします。

目次

  • 行動規範
  • 前提条件
  • v3への移行
  • セットアップ(Ubuntu)
  • データの永続化
  • HTTPSを有効にする方法
  • CanarytokensサイトでBasic認証を有効にする
  • 新機能
  • FAQ
  • 貢献

行動規範

このプロジェクトと、それに参加するすべての人は、行動規範 に従います。参加することで、この規範を守ることが期待されます。不適切な行為は [email protected] までご報告ください。

前提条件

  • 少なくとも1つのドメイン名。PDF開封追跡を有効にする場合は、少なくとも2つのドメインが必要です。
  • インターネットに公開されたDockerホスト。LinuxホストにDockerをインストール するとすぐに始められます。

v3への移行

  • letsencryptを使用しているかどうかに応じて: docker compose -f docker-compose.yml down または docker compose -f docker-compose-letsencrypt.yml down
  • 古いバージョンのDockerで実行している場合は、アップグレード が必要です。
  • docker-compose は動作しなくなりました。docker compose でCanarytokensインスタンスを起動する前に、docker network prune を実行する必要があります。Canarytokens v2は引き続き動作します。
  • canarytokens-docker リポジトリの最新版をプルします。
  • 対応して: docker compose -f docker-compose.yml up -d または docker compose -f docker-compose-letsencrypt.yml up -d

NB: 更新された canarytokens-docker リポジトリにはCanarytokens v2用のDockerfileが含まれなくなったため、v2を実行するにはタグ付きイメージ thinkst/canarytokens:v2_latest を使用する必要があります。v3への移行を強くお勧めします。移行で問題が発生した場合は、お問い合わせください。

セットアップ(Ubuntu)

  • Dockerホストを起動し、パブリックIPをメモします。
  • ドメインのネームサーバーがDockerホストのパブリックIPを指すように設定します。これはレジストラ側での変更が必要です。ゾーンファイルのNSレコードを変更するだけでは不十分です。ドメインのAレコードがパブリックIPを指すように設定する必要があります。
  • Dockerセットアップをクローンします:
root@kitploit:~
$ git clone https://github.com/thinkst/canarytokens-docker
$ cd canarytokens-docker
  • Docker composeをインストールします(まだインストールされていない場合):
root@kitploit:~
$ sudo apt-get install python3-pip python3-dev
$ sudo pip install -U docker-compose
#if this breaks with PyYAML errors, install the libyaml development package
# sudo apt-get install libyaml-dev
  • 設定に使用する2つの .env ファイル、すなわち switchboard.env.dist と frontend.env.dist を配布しています。これらをそれぞれ switchboard.env と frontend.env にコピー/リネームする必要があります(これにより、変更をプルしても設定が消去されません)。それが完了したら、それらを編集できます:
  1. 新しく作成した設定ファイル switchboard.env と frontend.env の両方を確認し、Required Settings セクションを記入してください。Optional Settings は動作に必須ではなく、適切なデフォルト値が設定されているため、変更する必要がない限り変更しないでください。

  2. 次に、アラートを送信するために使用するメールプロバイダーを決定します。mailgun、SMTP、sendgrid のいずれかを選択する必要があります。関連する必須項目は、該当する .env ファイルに記載されています。

  3. 以下のコマンドで、switchboard.env と frontend.env の両方に CANARY_WG_PRIVATE_KEY_SEED として設定する単一の一意なWireGuardキーシードを生成します:

root@kitploit:~
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
  • 次に示すのは、以下の設定を使用する場合のサンプルファイルです:
    • switchboard経由のcanarytokenトリガーにドメイン example1.com、example2.com、example3.com(PDF用)を使用

    • switchboardトリガーにパブリックIP 1.1.1.1を使用

    • フロントエンドを提供するドメイン 'my.domain' を使用

    • Mailgunドメイン名 'x.y' とAPIキー 'zzzzzzzzzz' を使用

    • WireGuardキーシード vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw= を使用

    • frontend.env

root@kitploit:~
#These domains are used for general purpose tokens
CANARY_PUBLIC_IP=1.1.1.1
CANARY_DOMAINS=example1.com,example2.com

#These domains are only used for PDF tokens
CANARY_NXDOMAINS=example3.com

#Requires a Google Cloud API key to generate an incident map on the history page with the Maps JavaScript API
CANARY_GOOGLE_API_KEY=<grab google maps api key>
LOG_FILE=frontend.log
  • switchboard.env(Mailgunをメールに使用する例)
root@kitploit:~
CANARY_PUBLIC_DOMAIN=mydomain.com
LOG_FILE=switchboard.log
CANARY_MAILGUN_DOMAIN_NAME=x.y
CANARY_MAILGUN_API_KEY=zzzzzzzzzz
[email protected]
CANARY_ALERT_EMAIL_FROM_DISPLAY="Example Canarytokens"
CANARY_ALERT_EMAIL_SUBJECT="Canarytoken"
CANARY_WG_PRIVATE_KEY_SEED=vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
  • 最後に、イメージをダウンロードして起動します:
root@kitploit:~
$ docker compose up
  • フロントエンドとswitchboardがフォアグラウンドで実行されます。フロントエンドには http://example1.com/generate でアクセスできます。バックグラウンドで実行する場合は、次のコマンドを使用できます:
root@kitploit:~
$ docker compose up -d

注: ドメインを1つしか所有しておらず、PDFトークンを使用したい場合は、CANARY_NXDOMAINS にサブドメインを使用できます。ドメインとして example.com を使用する場合、CANARY_NXDOMAINS を nx.example.com に設定できます。次に、DNSマネージャーコンソール(ドメインのDNSレコードを編集できる場所)にログインし、nx.example.com から example.com へのNSレコードを追加します。

データの永続化

トークンはDockerコンテナの外部に存在するRedisデータベースファイルに保存されます。canarytokens-docker/data ディレクトリ内の dump.rdb を探してください。

すべてのトークンを消去する場合は、dump.rdbを削除してください。

HTTPSを有効にする方法

HTTPSでCanarytokensサーバーを起動して実行するための(ほとんどを)自動化する、別のdocker-composeファイルがあります。 以下の手順を実行する必要があります:

  • certbot.env を編集します。ドメインとメールアドレスを指定する必要があります(これらはcertbotの登録プロセスに必要です)。 例:
root@kitploit:~
# Specify a single domain name
MY_DOMAIN_NAME=example.com

# or multiple domains names with this different key (comment out MY_DOMAIN_NAME above if you do):
# MY_DOMAIN_NAMES=example.com anotherexample.net thirdexample.org

[email protected]
  • サーバーを起動するには、docker compose -f docker-compose-letsencrypt.yml up を使用します。これによりサーバーがフォアグラウンドで実行されるため、すべてが正常に起動することを確認できます。

  • すべてが実行されている場合は、CTRL+Cを押して docker compose -f docker-compose-letsencrypt.yml down を実行しクリーンな状態にした後、-d を追加して docker compose -f docker-compose-letsencrypt.yml up -d を再実行すると、サーバーをバックグラウンド(デーモンモード)で実行できます。

  • HTTPS方式を使用すると、指定したメールアドレスとドメイン名を使用して証明書を登録することに注意してください。let's encryptのプロセス(cerbotを使用)についてはこちらを参照してください。このプロセスでは、指定したドメインの所有者であることを確認し、let's encryptに登録します。

  • レート制限があります。このサーバーを何度も起動・停止していると、すぐにlet's encryptの証明書生成制限に達します。これを回避するため、テスト目的で cerbot-nginx/start.sh 内の ./certbot-auto コマンドに --staging を追加すると、let's encryptが証明書を発行するかどうかをテストできます。

CanarytokensサイトでBasic認証を有効にする

公開向けのcanarytokensサイトを運用したいが、アクセスにBasic認証をかけたい場合は、以下の手順に従ってください。

  1. git clone https://github.com/thinkst/canarytokens-docker.git
  2. nginxフォルダーに移動します:
    • HTTPの場合:
    root@kitploit:~
    cd canarytokens-docker/nginx
    
    • HTTPSの場合:
    root@kitploit:~
    cd canarytokens-docker/certbot-nginx
    
  3. sudo htpasswd -c .htpasswd user を実行します。ここで user は任意のユーザー名にできます。
  4. sudo chown <user>:<user> .htpasswd を実行します。ここで user はローカルのLinuxユーザーです。
  5. 該当する nginx.conf を編集し、以下を追加します:
root@kitploit:~
server {
    ...
    location ~* (/generate|/manage|/download|/history|/settings|/resources|/legal).* {
        auth_basic           "Basic Auth Restricted Canrytokens"; <---- ADD
        auth_basic_user_file /etc/nginx/.htpasswd;                 <---- ADD
  1. 該当する Dockerfile を編集し、COPY nginx.conf ... の下に以下を追加します:
root@kitploit:~
COPY .htpasswd /etc/nginx/.htpasswd
  1. 以下のコマンドでイメージを再ビルドします:
    • HTTPの場合:
    root@kitploit:~
    docker compose build
    
    • HTTPSの場合:
    root@kitploit:~
    docker compose -f docker-compose-letsencrypt.yml build
    

Dockerコンテナを再起動して、完了です!

上記の手順でちょっとした問題を発見してくれた @mamisano に感謝します 🙏

新機能

最近追加された機能をすぐに確認できるよう、新機能や追加事項をここに記録していきます。

  • "What's new?" は Github Discussions に移行しました。こちら で確認してください。

  • エラーログを任意のwebhookに送信する機能が追加されました。エラーがログファイルに記録されるだけでなく、あなたやチームに障害を通知できます。 switchboard.env ファイルの ERROR_LOG_WEBHOOK 値に、対応するwebhook URIを指定するだけです。(2021-04-09)

  • 配布している .env ファイルを switchboard.env.dist と frontend.env.dist にリネームしました。これにより、リポジトリから変更をプルしてもローカル設定が消去されません。(設定には引き続き switchboard.env と frontend.env を使用しますが、リポジトリを新規クローンした場合は、ユーザーがdistファイルをコピー/リネームする必要があるということです)

  • CANARY_IPINFO_API_KEY という新しい switchboard.env 変数を追加しました。これにより、希望する場合は ipinfo.io のAPIキーを使用できます(ipinfo.io には1日最大1000リクエストの無料枠があることに注意してください)。

  • Slackサポートを追加しました。webhookを指定する場合、Slackのwebhook URLをそのまま指定します。(@shortstack に感謝します)

  • frontend.env に CANARY_AWSID_URL という新しい環境変数を追加しました。AWS IDトークンにプライベートまたは別のURLを指定できます。これにより、アカウントを簡単に切り替えることができます。(2018-10-17)

  • 異なるアーキテクチャの別システムで実行するイメージをビルドする場合は、docker compose build --build-arg ARCH=<target arch>/ でイメージをビルドできます。引数の末尾にあるスラッシュに注意してください。これがないとイメージは正しくビルドされません。

FAQ

FAQはこちらにあります。

貢献

プルリクエストを送信する前に、行動規範 と 貢献ガイド をご確認ください。

皆様からの貴重なご貢献をお待ちしています。

ツールをダウンロード