thinkst/canarytokens由Thinkst Applied Research开发
Canarytokens帮助跟踪网络上的活动和操作。若遇到问题,请查看FAQ或创建issue,我们将尽快回复。
.env文件管理配置,避免更新时覆盖自定义设置bash$ git clone [***] $ cd canarytokens-docker
bash$ sudo apt-get install python-pip python-dev $ sudo pip install -U docker-compose # 若出现PyYAML错误,安装libyaml开发包 # sudo apt-get install libyaml-dev
系统提供两个配置文件模板:switchboard.env.dist和frontend.env.dist,需复制并重命名为实际配置文件:
bash# 复制配置文件模板 $ cp switchboard.env.dist switchboard.env $ cp frontend.env.dist frontend.env
CANARY_MAILGUN_DOMAIN_NAME和CANARY_MAILGUN_API_KEY(欧洲节点需添加CANARY_MAILGUN_BASE_URL=[***])CANARY_MANDRILL_API_KEYCANARY_SENDGRID_API_KEYERROR_LOG_WEBHOOK接收错误日志告警CANARY_IPINFO_API_KEY使用ipinfo.io服务在两个配置文件中设置相同的CANARY_WG_PRIVATE_KEY_SEED,生成命令:
bash$ dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
# 通用令牌使用的域名 CANARY_DOMAINS=example1.com,example2.com # PDF令牌使用的域名(仅PDF需要) CANARY_NXDOMAINS=example3.com # Google Maps API密钥(可选,用于历史页面地图显示) #CANARY_GOOGLE_API_KEY= CANARY_PUBLIC_IP=1.1.1.1 CANARY_WG_PRIVATE_KEY_SEED=vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
CANARY_MAILGUN_DOMAIN_NAME=x.y CANARY_MAILGUN_API_KEY=zzzzzzzzzz #CANARY_MANDRILL_API_KEY= #CANARY_SENDGRID_API_KEY= CANARY_PUBLIC_IP=1.1.1.1 CANARY_PUBLIC_DOMAIN=my.domain CANARY_ALERT_EMAIL_FROM_ADDRESS=*** CANARY_ALERT_EMAIL_FROM_DISPLAY="Example Canarytokens" CANARY_ALERT_EMAIL_SUBJECT="Canarytoken" CANARY_WG_PRIVATE_KEY_SEED=vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
bash$ docker-compose up
bash$ docker-compose up -d
令牌数据存储在Redis数据库文件中,路径为canarytokens-docker/data/dump.rdb(位于容器外部)。如需清除所有令牌,删除该文件即可。
使用docker-compose-letsencrypt.yml配置文件可自动部署HTTPS:
bash# 单个域名 MY_DOMAIN_NAME=example.com # 多个域名(取消上面注释,使用下面配置) # MY_DOMAIN_NAMES=example.com anotherexample.net thirdexample.org EMAIL_ADDRESS=***
bash# 前台运行(验证配置) $ docker-compose -f docker-compose-letsencrypt.yml up # 后台运行(生产环境) $ docker-compose -f docker-compose-letsencrypt.yml down $ docker-compose -f docker-compose-letsencrypt.yml up -d
cerbot-nginx/start.sh中的./certbot-auto命令添加--staging参数如需为Canarytokens站点添加基本认证,按以下步骤操作:
bash# 进入Nginx配置目录(HTTP用nginx目录,HTTPS用certbot-nginx目录) $ cd canarytokens-docker/nginx # 或 cd canarytokens-docker/certbot-nginx # 生成.htpasswd文件(user替换为实际用户名) $ sudo htpasswd -c .htpasswd user # 修改文件权限 $ sudo chown <user>:<user> .htpasswd # <user>替换为本地Linux用户名
编辑nginx.conf,在需要保护的location块添加认证配置:
nginxserver { ... location ~* (/generate|/manage|/download|/history|/settings|/resources).* { auth_basic "Basic Auth Restricted Canrytokens"; # 添加 auth_basic_user_file /etc/nginx/.htpasswd; # 添加 ... } }
编辑Dockerfile,添加密码文件复制命令:
dockerfileCOPY nginx.conf ... # 原有的复制配置文件命令 COPY .htpasswd /etc/nginx/.htpasswd # 添加此行
bash$ docker-compose build $ docker-compose up -d
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务