
Configuración de Docker para montar rápidamente tus propios Canarytokens.
por Thinkst Applied Research
Los Canarytokens ayudan a rastrear la actividad y las acciones en tu red.
Si tienes algún problema, consulta nuestras FAQ aquí, o crea un issue e intentaremos responderte lo antes posible.
Este proyecto y todos los que participan en él se rigen por el Código de conducta. Al participar, se espera que cumplas con este código. Por favor, reporta cualquier comportamiento inaceptable a [email protected].
docker compose -f docker-compose.yml down
o docker compose -f docker-compose-letsencrypt.yml downdocker-compose ya no funciona, y necesitarás ejecutar docker network prune antes de levantar tu instancia de Canarytokens con docker compose. Canarytokens v2 seguirá funcionando.canarytokens-docker.docker compose -f docker-compose.yml up -d
o docker compose -f docker-compose-letsencrypt.yml up -dNB: El repositorio actualizado canarytokens-docker ya no incluye el Dockerfile para Canarytokens v2, por lo que para ejecutarlo se requiere usar la imagen etiquetada thinkst/canarytokens:v2_latest. Recomendamos encarecidamente migrar a v3. Por favor, contáctanos si tienes problemas con la migración.
$ 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
#si esto falla con errores de PyYAML, instala el paquete de desarrollo libyaml
# sudo apt-get install libyaml-dev
switchboard.env.dist y frontend.env.dist. Deberás copiarlos/renombrarlos a switchboard.env y frontend.env respectivamente (esto garantiza que tu configuración no se pierda si descargas cambios). Una vez hecho esto, puedes editarlos:Revisa ambos archivos de configuración recién creados, switchboard.env y frontend.env, y completa la sección Required Settings. Las Optional Settings no son necesarias para el funcionamiento y tienen valores predeterminados sensatos, así que no las cambies a menos que sea necesario.
A continuación, decide qué proveedor de correo quieres usar para enviar alertas. Deberás elegir entre mailgun, SMTP y sendgrid. Los detalles requeridos correspondientes se encuentran en el archivo .env correspondiente.
Genera una única semilla de clave WireGuard para establecerla como CANARY_WG_PRIVATE_KEY_SEED tanto en switchboard.env como en frontend.env con el comando:
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
los dominios example1.com, example2.com y example3.com (PDFs) para los disparadores de canarytoken a través de switchboard
la IP pública 1.1.1.1 para los disparadores de switchboard
el dominio 'my.domain' para servir el frontend
el nombre de dominio de Mailgun 'x.y' y la clave API 'zzzzzzzzzz'
la semilla de clave WireGuard vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
frontend.env
#Estos dominios se usan para tokens de propósito general
CANARY_PUBLIC_IP=1.1.1.1
CANARY_DOMAINS=example1.com,example2.com
#Estos dominios se usan solo para tokens PDF
CANARY_NXDOMAINS=example3.com
#Requiere una clave de API de Google Cloud para generar un mapa de incidentes en la página de historial con la API de Google Maps JavaScript
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
NOTA: Si solo posees un dominio y te gustaría usar tokens PDF, puedes usar subdominios para CANARY_NXDOMAINS. Usando example.com como dominio, puedes establecer CANARY_NXDOMAINS a nx.example.com. Luego inicia sesión en tu consola de administración de DNS (donde puedes editar los registros DNS de tu dominio) y agrega un registro NS de nx.example.com que apunte a example.com.
Los tokens se guardan en un archivo de base de datos Redis que existe fuera de los contenedores Docker. Busca dump.rdb en el directorio canarytokens-docker/data.
Si quieres borrar todos tus tokens, elimina dump.rdb.
Tenemos un archivo docker-compose separado que automatizará (en su mayoría) la puesta en marcha de un servidor de Canarytokens con HTTPS. Necesitarás hacer lo siguiente:
certbot.env. Deberás proporcionar tu dominio y dirección de correo electrónico (son necesarios para el proceso de registro de certbot).
Ej.:# 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]
Ahora, cuando quieras levantar tu servidor, usarás docker compose -f docker-compose-letsencrypt.yml up, lo que ejecutará el
servidor en primer plano para que puedas asegurarte de que todo se inicia correctamente.
Si todo está funcionando, es posible que quieras presionar CTRL+C, ejecutar docker compose -f docker-compose-letsencrypt.yml down para tener un estado limpio, y luego volver a ejecutar docker compose -f docker-compose-letsencrypt.yml up -d con el agregado -d para ejecutar el servidor en segundo plano (en modo demonio).