
Конфигурация Docker для быстрого развёртывания собственных Canarytokens.
от Thinkst Applied Research
Canarytokens помогают отслеживать активность и действия в вашей сети.
Если у вас возникли проблемы, пожалуйста, ознакомьтесь с нашим FAQ здесь или создайте issue, и мы постараемся ответить вам как можно скорее.
Этот проект и все, кто участвует в нём, регулируются Кодексом поведения. Участвуя, вы обязуетесь соблюдать этот кодекс. Пожалуйста, сообщайте о неприемлемом поведении на [email protected].
docker compose -f docker-compose.yml down
или docker compose -f docker-compose-letsencrypt.yml downdocker-compose больше не работает, и перед запуском вашего экземпляра Canarytokens с помощью docker compose необходимо выполнить docker network prune. Canarytokens v2 по-прежнему будет работать.canarytokens-docker.docker compose -f docker-compose.yml up -d
или docker compose -f docker-compose-letsencrypt.yml up -dПримечание: в обновлённом репозитории canarytokens-docker больше нет Dockerfile для Canarytokens v2, поэтому для его запуска необходимо использовать образ с тегом thinkst/canarytokens:v2_latest. Мы настоятельно рекомендуем перейти на v3. Пожалуйста, свяжитесь с нами, если у вас возникли проблемы с миграцией.
$ 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, которые будут использоваться для настройки, а именно switchboard.env.dist и frontend.env.dist. Вам нужно скопировать/переименовать их в switchboard.env и frontend.env соответственно (это гарантирует, что ваша конфигурация не будет потеряна при загрузке изменений). После этого вы можете отредактировать их:Пожалуйста, просмотрите оба ваших новых файла конфигурации, switchboard.env и frontend.env, и заполните раздел Required Settings. Раздел Optional Settings не обязателен для работы и имеет разумные значения по умолчанию, поэтому не меняйте их, если в этом нет необходимости.
Затем решите, какого почтового провайдера вы хотите использовать для отправки уведомлений. Вам нужно выбрать между mailgun, SMTP и sendgrid. Соответствующие необходимые детали можно найти в соответствующем файле .env.
Сгенерируйте единственный уникальный ключ-зерно WireGuard, чтобы установить его как CANARY_WG_PRIVATE_KEY_SEED в обоих файлах switchboard.env и frontend.env, с помощью команды:
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
домены example1.com, example2.com и example3.com (для PDF) для срабатываний canarytoken через switchboard
публичный IP-адрес 1.1.1.1 для срабатываний switchboard
домен 'my.domain' для обслуживания фронтенда
доменное имя Mailgun 'x.y' и API-ключ 'zzzzzzzzzz'
ключ-зерно 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
$ docker compose up -d
ПРИМЕЧАНИЕ: Если у вас только один домен, и вы хотите использовать PDF-токены, вы можете использовать поддомены для CANARY_NXDOMAINS. Используя example.com в качестве вашего домена, вы можете установить CANARY_NXDOMAINS в nx.example.com. Затем войдите в консоль вашего DNS-менеджера (где вы можете редактировать DNS-записи вашего домена) и добавьте NS-запись nx.example.com, указывающую на example.com.
Токены сохраняются в файле базы данных Redis, который находится вне Docker-контейнеров. Ищите dump.rdb в каталоге canarytokens-docker/data.
Если вы хотите удалить все свои токены, удалите dump.rdb.
У нас есть отдельный файл docker-compose, который автоматизирует (в основном) запуск сервера Canarytokens с HTTPS. Вам нужно сделать следующее:
certbot.env. Вам нужно указать ваш домен и адрес электронной почты (они необходимы для процесса регистрации certbot).
Например:# 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 для перехода в чистое состояние, а затем снова выполнить docker compose -f docker-compose-letsencrypt.yml up -d с добавленным -d для запуска сервера в фоновом режиме (в режиме демона).
Имейте в виду, что при использовании метода HTTPS для регистрации сертификата будут использованы указанные вами адрес электронной почты и доменное имя. Вы можете прочитать о процессе Let's Encrypt (с использованием certbot) здесь. Процесс включает проверку того, что вы являетесь владельцем указанного домена, и регистрацию вас в Let's Encrypt.