
Configuration Docker pour mettre en place rapidement vos propres Canarytokens.
par Thinkst Applied Research
Les Canarytokens aident à suivre l'activité et les actions sur votre réseau.
Si vous rencontrez des problèmes, consultez notre FAQ ici, ou créez une issue et nous essaierons de vous répondre dès que possible.
Ce projet et toutes les personnes qui y participent sont régis par le Code de conduite. En participant, vous vous engagez à respecter ce code. Veuillez signaler tout comportement inacceptable à [email protected].
docker compose -f docker-compose.yml down
ou docker compose -f docker-compose-letsencrypt.yml downdocker-compose ne fonctionne plus, et vous devrez exécuter docker network prune avant de démarrer votre instance Canarytokens avec docker compose. Canarytokens v2 fonctionnera toujours.canarytokens-docker.docker compose -f docker-compose.yml up -d
ou docker compose -f docker-compose-letsencrypt.yml up -dNB : Le dépôt canarytokens-docker mis à jour ne contient plus le Dockerfile pour Canarytokens v2, son exécution nécessite donc d'utiliser l'image taguée thinkst/canarytokens:v2_latest. Nous recommandons vivement de passer à v3. Veuillez nous contacter si vous rencontrez des difficultés avec la migration.
$ 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
switchboard.env.dist et frontend.env.dist. Vous devrez les copier/renommer en switchboard.env et frontend.env respectivement (cela garantit que votre configuration ne soit pas écrasée si vous récupérez des changements). Une fois cela fait, vous pouvez les modifier :Veuillez parcourir vos deux fichiers de configuration nouvellement créés, switchboard.env et frontend.env, et remplir la section Required Settings. Les Optional Settings ne sont pas nécessaires au fonctionnement et ont des valeurs par défaut sensées, alors ne les modifiez pas si vous n'en avez pas besoin.
Ensuite, décidez du fournisseur de messagerie que vous souhaitez utiliser pour envoyer les alertes. Vous devrez choisir entre mailgun, SMTP et sendgrid. Les détails requis correspondants se trouvent dans le fichier .env pertinent.
Générez une seule graine de clé WireGuard unique à définir comme CANARY_WG_PRIVATE_KEY_SEED dans switchboard.env et frontend.env avec la commande :
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
les domaines example1.com, example2.com et example3.com (PDF) pour les déclencheurs de canarytoken via switchboard
l'IP publique 1.1.1.1 pour les déclencheurs switchboard
le domaine 'my.domain' pour servir le frontend
le nom de domaine Mailgun 'x.y' et la clé API 'zzzzzzzzzz'
la graine de clé WireGuard 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
Le front end et le switchboard fonctionneront alors au premier plan. Le front end est accessible à l'adresse http://example1.com/generate. Si vous souhaitez exécuter cela en arrière-plan, vous pouvez utiliser
$ docker compose up -d
NOTE : Si vous ne possédez qu'un seul domaine et souhaitez utiliser des jetons PDF, vous pouvez utiliser des sous-domaines pour CANARY_NXDOMAINS. En utilisant example.com comme domaine, vous pouvez définir CANARY_NXDOMAINS sur nx.example.com. Connectez-vous ensuite à la console de gestion de votre DNS (où vous pouvez modifier les enregistrements DNS de votre domaine) et ajoutez un enregistrement NS de nx.example.com pointant vers example.com.
Les jetons sont enregistrés dans un fichier de base de données Redis situé en dehors des conteneurs Docker. Recherchez dump.rdb dans le répertoire canarytokens-docker/data.
Si vous souhaitez effacer tous vos jetons, supprimez dump.rdb.
Nous avons un fichier docker-compose séparé qui automatisera (en grande partie) la mise en place et l'exécution d'un serveur Canarytokens avec HTTPS. Vous devrez faire ce qui suit :
certbot.env. Vous devrez fournir votre domaine et votre adresse e-mail (ils sont nécessaires au processus d'enregistrement de certbot).
Par ex.# 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]
Désormais, lorsque vous voulez démarrer votre serveur, vous utiliserez docker compose -f docker-compose-letsencrypt.yml up, ce qui exécutera le
serveur au premier plan afin que vous puissiez vous assurer que tout démarre correctement.
Si tout fonctionne, vous pouvez appuyer sur CTRL+C, exécuter docker compose -f docker-compose-letsencrypt.yml down pour repartir d'une page blanche, puis relancer docker compose -f docker-compose-letsencrypt.yml up -d avec l'option -d pour exécuter le serveur en arrière-plan (en mode démon)