
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Watcher是由Thales Group CERT开发的开源网络安全威胁狩猎平台,基于Django和React JS构建。该平台通过监控RSS源、社交媒体等渠道,自动检测新兴网络安全威胁(如漏洞、***),支持威胁情报导出至TheHive/MISP,提供邮件通知功能,并允许用户管理威胁警报和趋势词。
适用于网络安全团队、SOC(安全运营中心)、安全研究人员等,用于实时监控和狩猎网络安全威胁,整合威胁情报,提升安全响应效率。
docker-compose.yml、.env文件以及Searx、Rss-bridge目录(保持目录结构).env文件配置Watcher设置(静态配置)bashdocker-compose up
watcher | db_watcher is up, starting Watcher. watcher | Performing system checks... watcher | watcher | System check identified no issues (0 silenced). watcher | October 08, 2020 - 10:28:02 watcher | Django version 3.1.1, using settings 'watcher.settings' watcher | Starting development server at http://0.0.0.0:9002/ watcher | Quit the server with CONTROL-C.
http://0.0.0.0:9002或http://服务器IP:9002访问WatcherbashCONTROL-C # 停止运行中的容器 docker-compose down # 完全停止所有容器
更新数据库状态以匹配当前模型和迁移文件:
bashdocker-compose down docker-compose run watcher bash python manage.py migrate
创建超级用户以访问/admin页面:
bashdocker-compose down docker-compose run watcher bash python manage.py createsuperuser
使用populate_db脚本填充数据库,包含数百个与网络安全相关的禁用词和RSS源:
bashdocker-compose down docker-compose run watcher bash python manage.py populate_db
首次运行Watcher时,首页没有新威胁是正常现象。系统每30分钟自动爬取互联网威胁信息,稍后会显示结果。
大部分设置可通过/admin页面修改,以下设置需在.env文件中配置:
生产环境中,需将DJANGO_DEBUG设为False:
DJANGO_DEBUG=False
Django密钥必须是大的随机值且保密,默认值需修改:
DJANGO_SECRET_KEY=[大的随机值]
时区设置:
# 时区 TZ=Europe/Paris
修改后重启容器:
bashdocker-compose down docker-compose up
访问Web界面时若出现"Bad Request"错误,需在.env文件中设置ALLOWED_HOST,限制为单个IP或FQDN:
ALLOWED_HOST=X.X.X.X # 或 ALLOWED_HOST=mywebsite.com
重启容器使配置生效:
bashdocker-compose down docker-compose up
在.env文件中配置:
EMAIL_FROM=watcher@example.com SMTP_SERVER=smtp.example.com
邮件通知中的网站链接:
WATCHER_URL=https://example.watcher.local
重启容器使配置生效:
bashdocker-compose down docker-compose up
如需导出至TheHive,配置TheHive实例IP和API密钥:
# THE HIVE 配置 THE_HIVE_URL= THE_HIVE_KEY= THE_HIVE_CASE_ASSIGNEE=watcher
重启容器使配置生效:
bashdocker-compose down docker-compose up
如需导出至MISP,配置MISP实例IP和API密钥:
# MISP 配置 MISP_URL= MISP_VERIFY_SSL=False MISP_KEY=
重启容器使配置生效:
bashdocker-compose down docker-compose up
配置LDAP认证:
# LDAP 配置 AUTH_LDAP_SERVER_URI= AUTH_LDAP_BIND_DN= AUTH_LDAP_BIND_PASSWORD= AUTH_LDAP_BASE_DN= AUTH_LDAP_FILTER=(uid=%(user)s)
重启容器使配置生效:
bashdocker-compose down docker-compose up
如需完全重置数据库,删除主机系统中的数据库卷并重启:
bashdocker-compose down docker volume rm watcher-project_db_data docker volume rm watcher-project_db_log docker-compose up
操作后需重新执行数据库迁移。
后台运行容器:
bashdocker-compose up -d
进入Watcher容器交互式shell:
bashdocker-compose run watcher bash
创建普通用户、staff用户或管理员用户:
/admin页面订阅主题以接收邮件通知:
/admin页面Watcher默认提供数百个网络安全RSS源(通过填充数据库获取),可添加自定义RSS源:
/admin页面RSS-Bridge默认仅配置***,可通过修改Watcher/Rss-bridge/whitelist.txt添加其他源(如***、DuckDuckGo、GoogleSearch等)。
RSS-Bridge源URL格式示例:
http://10.10.10.7/?action=display&bridge=Twitter&context=By+username&u=tomchop_&norep=on&nopic=on&noimg=on&noimgscaling=on&format=Mrss
自定义URL时,修改bridge和参数,保留http://10.10.10.7/和format=Mrss。可通过公共实例测试RSS-Bridge API:[***]
导出监控的DNS至TheHive或MISP:
/website_monitoring页面故障排除
若导出失败,可能是TheHive/MISP版本过旧,需更新实例至兼容版本。
阻止列表用于防止误报的趋势词再次出现。
添加单个趋势词:
添加多个趋势词:
/admin页面处理完警报后可将其归档。
归档单个警报:
归档多个警报:
/admin页面更新Watcher镜像步骤:
bashdocker-compose down
bashdocker rmi felix83000/watcher:latest searx/searx searx/searx-checker rssbridge/rss-bridge:latest
bashdocker-compose up
此操作将更新Watcher、Rss-bridge和Searx。
如需修改项目并提交PR,需设置开发环境。
推荐使用Linux虚拟机(如Ubuntu 20.04 LTS):
安装依赖:
bash# 安装Python 3.8、Node.js 14、Git sudo apt install -y python3.8 nodejs git # 安装python-ldap依赖 sudo apt install -y libsasl2-dev python-dev libldap2-dev libssl-dev # 安装mysqlclient依赖 sudo apt install default-libmysqlclient-dev # 安装npm sudo apt install npm
拉取代码:
bashgit clone https://github.com/thalesgroup-cert/Watcher.git cd Watcher/Watcher
安装Python依赖:
bashpip install -r requirements.txt
安装NLTK/punkt依赖:
bashpython3 ./nltk_dependencies.py
(如有代理,可在nltk_dependencies.py中配置)
安装Node.js依赖:
bashnpm install
安装并配置MySQL:
bashsudo apt install mysql-server sudo mysql_secure_installation # 按提示配置root密码等 # 创建数据库和用户 sudo mysql CREATE USER 'watcher'@'localhost' IDENTIFIED BY 'Ee5kZm4fWWAmE9hs'; GRANT ALL PRIVILEGES ON *.* TO 'watcher'@'localhost' WITH GRANT OPTION; CREATE DATABASE db_watcher; use db_watcher; exit # 检查MySQL状态 systemctl status mysql.service
修改settings.py中的数据库配置:
pythonDATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'CONN_MAX_AGE': 3600, 'NAME': 'db_watcher', 'USER': 'watcher', 'PASSWORD': 'Ee5kZm4fWWAmE9hs', 'HOST': 'localhost', # 开发环境设为localhost 'PORT': '3306', 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", }, } }
[重要] 提交代码前需将
HOST改回db_watcher
迁移数据库并运行Watcher:
bashcd .. # 返回Watcher目录 python3 manage.py migrate # 迁移数据库 python3 manage.py runserver # 启动服务
前端代码位于/Watcher/Watcher/frontend,修改后需实时构建:
bashcd /Watcher/Watcher/ npm run dev # 后台运行,修改后自动构建至main.js
[重要] 提交代码前需运行一次:
bashnpm run build
修改注释后重建文档:
注释以下文件中的指定行:
/Watcher/Watcher/threats_watcher/core.py:
python# from .models import BannedWord, Source, TrendyWord, PostUrl, Subscriber
/Watcher/Watcher/data_leak/core.py:
python# from .models import Keyword, Alert, PastId, Subscriber
/Watcher/Watcher/site_monitoring/core.py:
python# from .models import Site, Alert, Subscriber
/Watcher/Watcher/site_monitoring/misp.py:
python# from .models import Site
/Watcher/Watcher/site_monitoring/thehive.py:
python# from .models import Site
/Watcher/Watcher/dns_finder/core.py:
python# from .models import Alert, DnsMonitored, DnsTwisted, Subscriber
构建文档:
bashcd /Watcher/docs make html
构建完成后取消注释上述行,并提交/Watcher/docs目录:
bashgit add /Watcher/docs
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务