轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥8起我的订单
文档
工具
提交工单页面收录
ghcr.io/misp/misp-docker/misp-modules

ghcr.io/misp/misp-docker/misp-modules:cf91873

ghcr.iolinux/amd64cf91873大小: 370.81 MB更新于 2026年10月7日
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这段话即可:

请先阅读并遵守:https://xuanyuan.cloud/agents.md

未读文档前不要生成 pull 命令或排错方案。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

MISP Docker 镜像

一个生产就绪的 Docker MISP 镜像(以前托管于 ,现已弃用)大致基于 CoolAcid 和 DSCO 构建,几乎所有逻辑都经过重写并验证了正确性和可移植性。

主要特性:

  • MISP 和 MISP modules 分为两个不同的 Docker 镜像:misp-core 和 misp-modules
  • 可选的 https://github.com/MISP/misp-guard 容器,用于通过 mitmproxy 过滤流量并执行共享策略。
  • NGINX 被拆分为独立的 Docker 镜像(见下文;参考:https://github.com/MISP/misp-docker/pull/430)
  • Docker 镜像定期推送,无需构建
  • 通过多阶段构建和精简基础镜像实现轻量级 Docker 镜像
  • 依赖现成的 Exim4、Redis 和 MariaDB Docker 镜像
  • 计划任务运行更新、推送和拉取操作
  • 修复 supervisord 进程控制(重新加载时进程正确终止)
  • 通过完全离线化修复模式更新(无需用户交互)
  • 修复权限执行
  • 修复 MISP modules 的 faup 库加载
  • 修复 MISP modules 的 gl 库加载
  • 使用 LDAP、OIDC 或 CustomAuth 进行身份验证
  • 添加对新后台作业https://github.com/MISP/MISP/blob/2.4/docs/background-jobs-migration-guide.md的支持
  • 添加对构建特定 MISP 和 MISP-modules 提交的支持
  • 添加同步服务器的自动配置(参见 configure_misp.sh)
  • 添加身份验证密钥的自动配置(参见 configure_misp.sh)
  • 添加 Docker 镜像直接推送到 GitHub Packages 的功能
  • 合并的 docker-compose.yml 文件
  • 解决在 Mac 版 Docker Desktop 上运行时的 VirtioFS 漏洞
  • stunnel 服务,用于对明文服务(如 Redis)进行 TLS 封装
  • ……以及许多其他特性

本项目的核心精神是实现“可重复部署”,所有朝着此方向的拉取请求都将尽快合并。

要覆盖这些行为,请编辑docker-compose.yml文件的misp-core卷定义,以启用“customize_misp.sh”行为(详见“生产环境”部分的底部)。“customize_misp.sh”脚本会在上述行为完成后触发,是覆盖设置的合适位置。建议使用/var/www/MISP/app/cake Admin setSetting命令来覆盖设置,因为此工具了解config.php文件和数据库设置。

不确定添加新设置时需要编辑哪些文件?

如果只是用户未设置时才需要设置的默认值,请将其添加到某个*.default.json文件中。
如果是由环境变量控制的、旨在覆盖已设置值的设置,请将其添加到某个*.envars.json文件中(注意仍可指定默认值)。

MISP-Guard(可选)

https://github.com/MISP/misp-guard是一个mitmproxy插件,旨在应用可配置过滤器,防止敏感威胁情报数据的无意泄露,同时促进受控信息共享。

默认情况下它处于禁用状态,但可通过compose配置文件启用。

启用

  1. 在.env文件中启用配置文件:
COMPOSE_PROFILES=misp-guard
  1. 确保misp-core已配置为使用代理:
PROXY_ENABLE=true
PROXY_HOST=misp-guard
# 必须与GUARD_PORT匹配(默认值=8888)
PROXY_PORT=8888

配置

  • 规则在guard/config.json中定义。
  • 容器在运行时通过entrypoint.sh自动替换misp-core的IP。

以下格式用于定位misp-core,IP会在运行时替换为misp-core容器的IP:

{
"instances": {
"misp_container": {
"ip": "placeholder"
}
}
}
  • 修改guard/config.json后,重启容器以应用更改:
docker compose restart misp-guard

环境变量

# misp-guard监听端口(必须与PROXY_PORT匹配)
# 默认值:8888
GUARD_PORT=8888

# 可选:mitmdump misp-guard运行时参数(空格分隔)
GUARD_ARGS=--ssl-insecure -v

身份验证

默认情况下,MISP会显示其内置的电子邮件/密码登录表单以及任何外部提供商。要禁用该表单并强制使用外部身份验证,请设置:

AUTH_ENFORCED=true

这对应MISP的Security.auth_enforced设置,并适用于任何已配置的外部提供商(OIDC/LDAP/AAD/CustomAuth)。

LDAP身份验证

您可以通过两种方法在MISP中配置LDAP身份验证:

  • 原生插件:LdapAuth( )
  • 早期方法:ApacheSecureAuth( )

推荐使用LdapAuth而非ApacheSecureAuth,因为它不需要带有ldap模块的反向代理apache。

以下使用LdapAuth插件与您的ldap/AD服务器集成的配置经过测试并强化。

本示例假设您已将根证书挂载到pod的/usr/local/share/ca-certificates/rootca.crt路径下,该证书会自动添加到/etc/ssl/certs/ca-certificates.crt证书bundle中。

使用memberOf:1.2.840.113556.1.4.1941:=旨在递归查找组中的嵌套成员。例如,如果我们有一个名为MIPS-ALLOW-IN的组对象,我们授予该组访问MISP的权限。并将该组添加为另一个名为Applications Admins的组的成员。那么Applications Admins中的所有成员/用户也将被授予访问权限。这种权限分配方法称为RBAC。

本示例使用userPrincipalName属性作为用户登录的用户名,并使用mail属性在用户登录时发送电子邮件。

您不需要使用任何单引号、双引号、转义或双重转义,/configure_misp.sh脚本会确保将需要引号的内容用单引号括起来,并写入/var/www/MISP/app/Config/config.php。

确保在instance-secrets.env中定义以下内容:

BASE_URL=https://misp.apps.openshift.domain.local
LDAPAUTH_ENABLE=true
LDAPAUTH_LDAPSERVER=ldaps://domain.local
LDAPAUTH_LDAPDN=OU=Company,OU=Management,DC=domain,DC=local
LDAPAUTH_LDAPREADERUSER=CN=ldap-account,OU=Accounts LDAP,OU=Management,DC=domain,DC=local
LDAPAUTH_LDAPREADERPASSWORD=YoucanType4nythingH3r3Even1'Are3scaped!
LDAPAUTH_LDAPSEARCHFILTER=(&(objectCategory=person)(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=MIPS-ALLOW-IN,OU=Groups Applications,OU=Groups,DC=domain,DC=local))
LDAPAUTH_LDAPSEARCHATTRIBUTE=userPrincipalName
LDAPAUTH_LDAPEMAILFIELD=mail
LDAPAUTH_LDAPNETWORKTIMEOUT=-1
LDAPAUTH_UPDATEUSER=true
LDAPAUTH_LDAPDEFAULTORGID=1
LDAPAUTH_LDAPDEFAULTROLEID=3
LDAPAUTH_DEBUG=false
LDAPAUTH_LDAPTLSCUSTOMCACERT=false
LDAPAUTH_LDAPPROTOCOL=3
LDAPAUTH_LDAPALLOWREFERRALS=false
LDAPAUTH_STARTTLS=false
LDAPAUTH_MIXEDAUTH=true
LDAPAUTH_LDAPTLSREQUIRECERT=LDAP_OPT_X_TLS_DEMAND
LDAPAUTH_LDAPTLSCRLCHECK=LDAP_OPT_X_TLS_CRL_PEER
LDAPAUTH_LDAPTLSPROTOCOLMIN=LDAP_OPT_X_TLS_PROTOCOL_TLS1_2

STARTTLS设置为false,因为它旨在将未加密连接(LDAP)自动升级为安全连接(LDAPS)(如果可能)。由于我们使用LDAPS(硬编码)或根本不连接,因此不需要此功能。

OIDC身份验证

OIDC身份验证通过MISP OidcAuth插件实现。

有关使用KeyCloak的示例配置,请参见MISP Keycloak 26.1.x 基本集成指南

对于Okta,创建新的应用集成:

  • 应用程序 -> 应用程序 -> 创建应用集成
  • 选择登录方法“OIDC - OpenID Connect”和应用程序类型“Web Application”
  • 在客户端身份验证中,选择“Client secret”
  • 将登录重定向URI设置为:"[***] /users/login"
  • 在登录选项卡下,添加名为“roles”的组声明和适当的过滤器
  • 在MISP docker的.env文件中,设置以下变量:
OIDC_ENABLE=true
OIDC_PROVIDER_URL=https:// /.well-known/openid-configuration
OIDC_ISSUER=https://
OIDC_CLIENT_ID=[client_id]
OIDC_CLIENT_SECRET=[client_secret]
OIDC_ROLES_PROPERTY="roles"
OIDC_ROLES_MAPPING="{\"Okta group - MISP Admin\": 1}" #
OIDC_DEFAULT_ORG="[Your default org in MISP]"
#OIDC_LOGOUT_URL=
OIDC_SCOPES="[\"profile\", \"email\", \"groups\"]"
OIDC_MIXEDAUTH=true #(如果要禁用密码登录,将此设置为false,请确保OIDC先正常工作)
OIDC_CODE_CHALLENGE_METHOD=S256
OIDC_AUTH_METHOD="client_secret_post"
OIDC_REDIRECT_URI="https:// /users/login" #(与Okta中设置的值相同)
OIDC_DISABLE_REQUEST_OBJECT=false
OIDC_DISABLE_PUSHED_AUTHORIZATION_REQUEST=false
OIDC_SKIP_PROXY=true
OIDC_ALLOW_EMAIL_LINKING=false
OIDC_REQUIRE_EMAIL_VERIFIED=true

OIDC_AUTH_METHOD的有效选项包括:

生产环境

  • 建议通过编辑 docker-compose.yml 指定要运行的构建版本(查看可用标签列表)
  • SSL证书目录卷挂载 ./ssl: /etc/ssl/certs
  • 证书文件:cert.pem
  • 证书密钥文件:key.pem
  • 证书认证CA文件(可选)ca.pem
  • 其他目录卷挂载:
  • ./configs: /var/www/MISP/app/Config/
  • ./logs: /var/www/MISP/app/tmp/logs/
  • ./files: /var/www/MISP/app/files/
  • ./gnupg: /var/www/MISP/.gnupg/
  • 如果需要在容器每次启动时自动运行额外步骤,请创建新文件 files/customize_misp.sh,并将 docker-compose.yml 中的 ${CUSTOM_PATH} 变量替换为其父路径。
  • 如果希望运行精简版镜像(依赖更少,更容易通过合规审批),可以使用 latest-slim 标签。只需调整 docker-compose.yml 文件,然后再次运行 docker compose pull 和 docker compose up。

重大变更

通过 PR https://github.com/MISP/misp-docker/pull/430,NGINX 服务器已从 MISP 核心镜像中提取到独立镜像中。这提高了前端 NGINX 服务器的安全性和可扩展性,但也带来了如下所述的一些变更:

变量:作为此变更的一部分,template.env 中的几个变量已被修改

旧变量新变量
CORE_HTTP_PORTNGINX_HTTP_PORT
CORE_HTTPS_PORTNGINX_HTTPS_PORT
FASTCGI_STATUS_LISTENFASTCGI_LISTEN_STATUS
HSTS_MAX_AGENGINX_HSTS_MAX_AGE
X_FRAME_OPTIONSNGINX_X_FRAME_OPTIONS
CONTENT_SECURITY_POLICYNGINX_CONTENT_SECURITY_POLICY
DISABLE_SSL_REDIRECT已完全移除,SSL 通过证书存在自动检测

基础 URL:由于 SSL 逻辑已更改(见下文),BASE_URL 变量现在是必填项。请确保环境中已设置此变量。

TLS/SSL:原 misp-core 中的 ./ssl 卷挂载已移至 misp-nginx 容器,因此现有证书仍可正常使用。

证书:如果缺少证书,SSL 将被禁用,但您可以使用以下命令生成自签名证书:

mkdir -p ./ssl/ && openssl req -x509 -subj '/CN=localhost' -nodes -newkey rsa:4096 -keyout ssl/key.pem -out ssl/cert.pem -days 365 -addext "subjectAltName = DNS:localhost, IP:127.0.0.1, IP:::1"

GPG 密钥交付:gpg.asc 现在通过 misp-nginx 提供,它将请求代理到 misp-core(PHP-FPM),而不是从 webroot 路径提供静态文件。

Kubernetes/Helm:清单已针对新的双容器拓扑进行更新;如果通过 Helm/Kubernetes 部署,请在升级前查看更新后的图表。

安装自定义根CA证书

自定义根CA证书可以挂载到 /usr/local/share/ca-certificates 目录下,并将在 misp-core 容器启动时安装。

[!NOTE] 文件名必须带有 .crt 扩展名,否则将不会被处理。

misp-core:
# ...
volumes:
- "./configs/:/var/www/MISP/app/Config/"
- "./logs/:/var/www/MISP/app/tmp/logs/"
- "./files/:/var/www/MISP/app/files/"
- "./ssl/:/etc/nginx/certs/"
- "./gnupg/:/var/www/MISP/.gnupg/"
# 自定义:将 ${CUSTOM_PATH} 替换为包含 'files/customize_misp.sh' 的路径
# - "${CUSTOM_PATH}/:/custom/"
# 挂载自定义根CA证书
- "./rootca.pem:/usr/local/share/ca-certificates/rootca.crt"

数据库管理

可以使用卷归档来备份和恢复底层数据库。此过程未经过充分测试,因此不应不加批判地遵循。

备份

  1. 停止MISP容器:
docker compose down
  1. 使用 tar 创建 misp-docker_mysql_data 卷的归档文件:
tar -cvzf /root/misp_mysql_backup.tar.gz /var/lib/docker/volumes/misp-docker_mysql_data/
  1. 启动MISP容器:
docker compose up

恢复

  1. 停止MISP容器:
docker compose down
  1. 使用 --overwrite 选项解压备份并覆盖现有数据,以替换现有文件:
tar -xvzf /path_to_backup/misp_mysql_backup.tar.gz -C /var/lib/docker/volumes/misp-docker_mysql_data/ --overwrite
  1. 启动MISP容器:
docker compose up

启用无密码Redis连接(出于安全考虑,默认值为false):

ENABLE_REDIS_EMPTY_PASSWORD=false

设置基础URL:

BASE_URL=https:// :10443

运行

重新加载systemd用户守护进程:

systemctl --user daemon-reload

启动服务:

systemctl --user start misp-mail.service
systemctl --user start misp-db.service
systemctl --user start misp-redis.service
systemctl --user start misp-core.service
systemctl --user start misp-modules.service

稍等片刻,然后在https:// :10443检查您的服务。
如果一切正常,您可以使服务在重启和登出后保持持久化:

sudo loginctl enable-linger $USER

您甚至可以通过激活特定的定时器podman-auto-update.timer来设置podman检查新的容器版本:

systemctl --user enable podman-auto-update.timer --now

镜像构建失败或镜像构建成功但容器无法启动,该怎么办?

如果您的镜像构建失败,或者构建成功但容器无法启动,您可以通过创建新的https://github.com/MISP/misp-docker/issues获取帮助。为了获得最有效的支持,请包含您尝试构建镜像时的环境条件以及相关的调试输出。

提供您的构建环境详情

确保包含您构建环境的版本,例如Docker(或Podman)、Docker Compose(或Podman Compose)、Python、操作系统,以及您是以root用户还是非root用户身份构建。

对于Docker,运行:

python3 -V
docker -v
docker compose version

对于Podman,运行:

python3 -V
podman -v
podman compose version

始终从干净的环境开始

如果之前构建留下的不完整层仍然存在,可能会导致构建错误。为确保环境干净,请停止所有运行中的容器并删除旧镜像和卷。

使用Docker:

docker compose down
docker system prune
docker image rm ghcr.io/misp/misp-docker/misp-core
docker image rm ghcr.io/misp/misp-docker/misp-nginx
docker image rm ghcr.io/misp/misp-docker/misp-modules
docker image rm ghcr.io/misp/misp-docker/misp-guard

使用Podman:

podman compose down
podman system prune
podman image rm ghcr.io/misp/misp-docker/misp-core
podman image rm ghcr.io/misp/misp-docker/misp-nginx
podman image rm ghcr.io/misp/misp-docker/misp-modules
podman image rm ghcr.io/misp/misp-docker/misp-guard

您还可以在构建过程中使用--no-cache选项来忽略缓存的层。

记录构建输出

清理环境后,使用详细日志记录来捕获构建过程的详细输出。建议将日志记录到文件中,以便进行故障排除和请求支持时使用。

对于Docker:

docker compose --verbose build --no-cache | tee build.log

对于Podman:

PODMAN_COMPOSE_VERBOSE=1 podman compose build --no-cache | tee build.log

整合所有步骤

您可以组合上述命令,一步完成镜像的完全重置和重建。

对于Docker:

docker system prune ; docker image rm ghcr.io/misp/misp-docker/misp-core ; docker image rm ghcr.io/misp/misp-docker/misp-modules ; docker image rm ghcr.io/misp/misp-docker/misp-guard ; rm -f build.log ; docker compose --verbose build --no-cache | tee build.log

对于Podman:

podman system prune ; podman image rm ghcr.io/misp/misp-docker/misp-core ; podman image rm ghcr.io/misp/misp-docker/misp-modules ; podman image rm ghcr.io/misp/misp-docker/misp-guard ; rm -f build.log ; PODMAN_COMPOSE_VERBOSE=1 podman compose build --no-cache | tee build.log

这确保您从干净的状态开始构建,而不使用之前构建的残余文件。

调试Dockerfile

通过构建日志,您可以确定构建失败的位置。要精确定位具体步骤,请在Dockerfile中添加调试行。使用唯一标记以便在日志中轻松找到它们:

RUN echo "____MYDEBUG___1"
RUN echo "____MYDEBUG___2"
RUN echo "____MYDEBUG___3"

打印变量值

许多构建错误与变量未正确设置或导入有关。要进行调试,请打印它们的值:

RUN echo "____MYDEBUG___ CORE_TAG: ${CORE_TAG}"

示例输出:

[4/5] STEP 19/20: RUN echo "____MYDEBUG___ CORE_TAG: ${CORE_TAG}"
____MYDEBUG___ CORE_TAG: v2.5.16
--> 798999451f75

在shell块中打印变量

对于Dockerfile中的shell块,插入echo语句以打印变量值:

RUN <<-EOF
for mod in "$@"; do
mod_version_var=$(echo "PYPI_${mod}_VERSION" | tr '[:lower:]' '[:upper:]' | tr '-' '_')
mod_version=$(eval "echo \"\$mod_version_var\"")
echo "____MYDEBUG___ mod mod_version: ${mod}${mod_version}"
# ... rest of the code ...
done
EOF

变量未展开

旧版本(5之前的版本)的Podman可能无法在shell块中正确展开变量。如果遇到此问题,请确保使用正确的shell语法。对于Podman,将:

RUN <<-EOF

替换为(注意**'**引号)

RUN bash <<-'EOF'

以确保变量按预期展开。作为参考,此问题首次出现在成功构建镜像后,但启动容器时出现/usr/local/bin/supervisord: No such file or directory错误。有关更多详细信息,请参见https://github.com/MISP/misp-docker/issues/265和https://github.com/MISP/misp-docker/pull/273。

通过遵循这些步骤,您可以高效地排查和解决构建问题。如果问题仍然存在,请在创建issue请求帮助时包含您的构建日志和环境详情。

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

docker.sock / daemon

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ghcr.io/misp/misp-docker/misp-modules
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
官方技术交流群:|问题咨询请:提交工单
服务号:轩辕镜像|公众号:源码跳动|小程序:轩辕镜像|官方技术交流群:|问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥8/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱