
Docker-Konfiguration, um schnell deine eigenen Canarytokens einzurichten.
von Thinkst Applied Research
Canarytokens helfen dabei, Aktivitäten und Aktionen in Ihrem Netzwerk zu verfolgen.
Wenn Sie Probleme haben, schauen Sie bitte in unsere FAQ hier oder erstellen Sie ein Issue, und wir werden versuchen, uns so schnell wie möglich bei Ihnen zu melden.
Dieses Projekt und alle, die daran teilnehmen, unterliegen dem Verhaltenskodex. Mit Ihrer Teilnahme verpflichten Sie sich, diesen Kodex einzuhalten. Bitte melden Sie inakzeptables Verhalten an [email protected].
docker compose -f docker-compose.yml down
oder docker compose -f docker-compose-letsencrypt.yml downdocker-compose funktioniert nicht mehr, und Sie müssen docker network prune ausführen, bevor Sie Ihre Canarytokens-Instanz mit docker compose starten. Canarytokens v2 funktioniert weiterhin.canarytokens-docker-Repos.docker compose -f docker-compose.yml up -d
oder docker compose -f docker-compose-letsencrypt.yml up -dNB: Das aktualisierte canarytokens-docker-Repo enthält kein Dockerfile mehr für Canarytokens v2. Um es auszuführen, muss daher das getaggte Image thinkst/canarytokens:v2_latest verwendet werden. Wir empfehlen dringend, auf v3 umzusteigen. Bitte kontaktieren Sie uns, wenn Sie mit der Migration zu kämpfen haben.
$ git clone https://github.com/thinkst/canarytokens-docker
$ cd canarytokens-docker
$ 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
.env-Dateien, die für die Konfiguration verwendet werden, nämlich switchboard.env.dist und frontend.env.dist. Sie müssen sie in switchboard.env bzw. frontend.env kopieren/umbenennen (dadurch wird sichergestellt, dass Ihre Konfiguration nicht überschrieben wird, wenn Sie Änderungen ziehen). Danach können Sie sie bearbeiten:Bitte gehen Sie beide neu erstellten Konfigurationsdateien switchboard.env und frontend.env durch und füllen Sie den Abschnitt Required Settings aus. Die Optional Settings sind für den Betrieb nicht erforderlich und haben sinnvolle Standardwerte. Ändern Sie sie daher nicht, wenn Sie es nicht müssen.
Entscheiden Sie als Nächstes, welchen E-Mail-Anbieter Sie für den Versand von Benachrichtigungen verwenden möchten. Sie müssen sich zwischen mailgun, SMTP und sendgrid entscheiden. Die relevanten erforderlichen Details finden Sie in der entsprechenden .env-Datei.
Generieren Sie einen einzelnen eindeutigen WireGuard-Key-Seed, um ihn als CANARY_WG_PRIVATE_KEY_SEED sowohl in switchboard.env als auch in frontend.env zu setzen, mit dem Befehl:
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
die Domains example1.com, example2.com und example3.com (PDFs) für Canarytoken-Trigger über das Switchboard
die öffentliche IP 1.1.1.1 für die Switchboard-Trigger
die Domain 'my.domain', um das Frontend bereitzustellen
den Mailgun-Domainnamen 'x.y' und API-Schlüssel 'zzzzzzzzzz'
den WireGuard-Key-Seed vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
frontend.env
#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
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=
$ docker compose up
$ docker compose up -d
HINWEIS: Wenn Sie nur eine Domain besitzen und PDF-Tokens verwenden möchten, können Sie Subdomains für CANARY_NXDOMAINS verwenden. Wenn wir example.com als unsere Domain verwenden, können Sie CANARY_NXDOMAINS auf nx.example.com setzen. Melden Sie sich dann in Ihrer DNS-Manager-Konsole an (wo Sie die DNS-Einträge Ihrer Domain bearbeiten können) und fügen Sie einen NS-Eintrag von nx.example.com mit Verweis auf example.com hinzu.
Die Tokens werden in einer Redis-Datenbankdatei gespeichert, die sich außerhalb der Docker-Container befindet. Suchen Sie nach dump.rdb im Verzeichnis canarytokens-docker/data.
Wenn Sie alle Ihre Tokens löschen möchten, löschen Sie dump.rdb.
Wir haben eine separate docker-compose-Datei, die es Ihnen (größtenteils) automatisiert ermöglicht, einen Canarytokens-Server mit HTTPS zu betreiben. Sie müssen Folgendes tun:
certbot.env. Sie müssen Ihre Domain und E-Mail-Adresse angeben (diese sind für den Registrierungsprozess von Certbot erforderlich).
Z.B.# 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]
Wenn Sie Ihren Server nun starten möchten, verwenden Sie docker compose -f docker-compose-letsencrypt.yml up, wodurch der Server im Vordergrund läuft, sodass Sie sicherstellen können, dass alles ordnungsgemäß startet.
Wenn alles läuft, können Sie STRG+C drücken, docker compose -f docker-compose-letsencrypt.yml down ausführen, um einen sauberen Zustand zu erhalten, und dann docker compose -f docker-compose-letsencrypt.yml up -d mit dem zusätzlichen -d erneut ausführen, um den Server im Hintergrund (im Daemon-Modus) zu betreiben.