SIREN

配置文件

了解如何通过配置文件进行自定义设置

SIREN 客户端与服务端启动时都会读取 YAML 配置文件。找不到配置文件时会直接退出,因此建议把客户端配置保存为 config.yaml,服务端配置保存为 server_config.yaml

查找顺序

启动时,SIREN 会按以下顺序查找配置文件(找到即停止):

  1. -c / --config 指定的路径
  2. 当前工作目录下的 config.yaml(客户端)或 server_config.yaml(服务端)
  3. 当前工作目录的 config/ 子目录

部分命令行参数会覆盖对应配置项。客户端远程模式可用 siren client -s/-p 指定服务端地址和端口;服务端可用 siren_server -l/-p --cert --key --webui-dossier-dir --webui-projects-base-dir 覆盖常用启动项。

敏感信息

不要把 AccessKey、API Key 等敏感凭证写入配置文件。OSS 与 SOAR 凭证均通过环境变量读取,详见凭证设置

客户端配置

config.yaml
server: 127.0.0.1                           # 服务端地址
port: 443                                   # 服务端端口

recon:
  commandTimeout: 30                        # 命令执行超时时间
  user: true                                # 用户信息收集开关
  # ...other modules

oss:
  region: cn-hongkong                       # OSS Bucket Region
  bucketName: ir-transfer-station           # OSS Bucket 名称
  objectPath: tmp/siren_upload              # 本地 upload 文件上传路径
  docObjectPath: tmp/siren_upload/docs/latest # 本地 recon 文档上传路径前缀

plugins:
  marketplace: https://example.com/plugins  # 插件市场地址
  jdump: true                               # command 插件开关示例

rules:                                      # 信息收集规则
  IPWhitelist: 140\.205\.11\.\d+|8\.147\.237\.0
  # ...other rules

配置项说明

配置项类型默认值说明
serverstring127.0.0.1远程模式下连接的服务端地址
portint443远程模式下连接的服务端端口
recon.commandTimeoutint30信息收集和客户端远程命令执行的基础超时时间(秒);MCP / AIR 慢命令建议服务端也设置相同值
recon.<module>bool示例配置为 true内置信息收集模块或 recon 类型插件的开关(如 userprocessnetwork 等),完整列表见信息收集模块。未设置时不会执行
oss.regionstring-OSS Bucket 所在地域
oss.bucketNamestring-OSS Bucket 名称
oss.objectPathstringtmp/siren_upload本地 siren upload 的 OSS 路径前缀
oss.docObjectPathstringtmp/siren_upload/docs/latest本地 siren recon 文档上传的 OSS 路径前缀
plugins.marketplacestring-插件市场 URL,用于下载和更新插件
plugins.<name>bool-启用或禁用 command 类型插件;recon 类型插件使用 recon.<name>
rulesmap-信息收集规则,值为正则表达式

关于 rules

rules 用于在信息收集结果中标记或过滤内容。白名单规则减少已知正常项带来的噪音,黑名单规则高亮可疑项;规则值使用正则表达式。

服务端配置

server_config.yaml
listen: 0.0.0.0                                 # 客户端 TLS 服务监听地址
port: 443                                       # 客户端 TLS 服务监听端口
cert: certs/cert.pem                            # TLS 证书路径
key: certs/key.pem                              # TLS 密钥路径

webui:                                          # Web 控制台
  enabled: true                                 # 是否启用 WebUI
  listen: 0.0.0.0                               # 共享 HTTP 监听地址
  port: 8080                                    # 监听端口(WebUI 与 MCP 共享)
  userDBPath: data/users.db                     # 可选:WebUI 用户数据库路径
  dossierDir: /opt/siren/dossier                # 可选:Dossier 编辑器文件目录
  projectsBaseDir: ""                           # 可选:Project 目录创建基准路径

mcp:
  enabled: true                                 # 是否启用 MCP 服务
  cmdBlacklist:                                 # MCP run 命令黑名单(正则表达式)
    - '(?:^|[;|&\n]\s*)(?:sudo\s+)?rm(?:\s|$)'
    - '(?:^|[;|&\n]\s*)(?:sudo\s+)?find(?:\s|$)[^;|&\n]*\s-delete(?:\s|$)'
    - '(?:^|[;|&\n]\s*)(?:sudo\s+)?dd(?:\s|$)[^;|&\n]*\bof=/dev/(?:sd|hd|vd|xvd|nvme|mapper|dm-|loop|md|ram)'
    - '(?:^|[;|&\n]\s*)(?:sudo\s+)?systemctl\s+(stop|disable|mask|restart|reload)(?:\s|$)'
    - '(?:^|[;|&\n]\s*)(?:sudo\s+)?(?:useradd|usermod|userdel|groupadd|groupmod|groupdel)(?:\s|$)'
    # ...more destructive-action patterns

air:
  # WebUI AIR 与 Agent 终端的默认 Provider;也可逐会话在页面上选择
  provider: claude                             # claude / codex / qoder
  maxSessions: 10                              # WebUI Agent 终端最大并发会话数;<=0 表示不限制
  replayBufferBytes: 4194304                   # 每个会话用于断线回放的终端输出上限(字节)
  prompt: 启动安全应急响应,UID:%s,...        # 告警事件模式的 prompt 模板
  customPromptPrefix: 在 SIREN Client %d 上...  # 自定义 prompt 模式的前缀
  # providers.<name> 用于 WebUI AIR 和 Manual 裸终端;服务端 REPL air 固定使用 Claude
  providers:
    claude:
      cliPath: claude                          # Claude Code CLI 路径
      args: []                                 # 额外 Claude CLI 参数
    codex:
      cliPath: codex                           # Codex CLI 路径
      args: [--no-alt-screen]                  # 保留浏览器终端滚动历史
    qoder:
      cliPath: qodercli                        # QoderCLI 路径
      args: []                                 # 额外 QoderCLI 参数

配置项说明

配置项类型默认值说明
listenstring0.0.0.0客户端 TLS 服务监听地址
portint443客户端 TLS 服务监听端口
certstringcerts/cert.pemTLS 证书文件路径
keystringcerts/key.pemTLS 私钥文件路径
webui.enabledbooltrue是否启用 Web 控制台。关闭后若 mcp.enabled 仍为 true/mcp 会继续在共享端口上提供服务
webui.listenstring0.0.0.0WebUI 与 MCP 共享的监听地址;只要 webui.enabledmcp.enabled 有一个启用就会启动监听
webui.portint8080WebUI 与 MCP 共享的监听端口,MCP 通过 /mcp 子路径暴露
webui.userDBPathstringdata/users.dbWebUI 用户 SQLite 数据库路径(相对路径基于启动 CWD)
webui.dossierDirstring-(示例配置为 /opt/siren/dossierDossier 编辑器文件目录,可位于服务端工作目录外;左侧 Dossier 入口默认打开该目录下的 report.md。目录留空、不可用或默认报告不可访问时,WebUI 会提示错误。详见 Dossier 配置
webui.projectsBaseDirstring""(服务端当前工作目录)WebUI Project 目录创建基准路径。创建 Project 时只允许在该目录下创建一个 basename 子目录;Project 重命名不会移动目录,删除 Project 只删除元数据并保留目录文件
mcp.enabledbooltrue是否启用 MCP 服务,独立于 webui.enabled
mcp.cmdBlacklistlistMCP 集成MCP run 工具的命令黑名单,值为正则表达式列表
mcp.reconTimeoutint300recon MCP 工具等待客户端回传报告的最长时间(秒)
air.providerstringclaudeWebUI AIR 与 Agent 终端默认 Provider,可选 claudecodexqoder;页面中也可在每次启动会话时选择。服务端 REPL 的 air 命令固定使用 Claude Provider 配置
air.maxSessionsint10WebUI Agent 终端最大并发会话数;适用于 AIR 和 Manual 会话,设为 0 或负数表示不限制
air.replayBufferBytesint4194304每个 WebUI Agent 终端会话为断线重连保留的原始输出字节数;设为 0 或负数时使用默认的 4 MiB
air.promptstring见示例配置告警事件模式下的 prompt 模板,依次填入 %s UID、%s 安全中心告警 ID、%d Client ID(告警 ID 即 air 命令的 Security Center Alert ID,详见 Agentic 应急响应
air.customPromptPrefixstring见示例配置自定义 prompt 模式下的前缀(支持 %d Client ID)
air.providers.claude.cliPathstringclaudeWebUI Claude Provider 和服务端 REPL air 命令使用的 Claude Code CLI 路径
air.providers.claude.argslist[]传递给 Claude CLI 的额外参数
air.providers.codex.cliPathstringcodexWebUI Codex Provider 使用的 Codex CLI 路径
air.providers.codex.argslist[--no-alt-screen]传递给 Codex CLI 的额外参数;默认使用 inline TUI 保留浏览器终端滚动历史,自定义时可移除该参数恢复 Codex 的 alternate screen 行为
air.providers.qoder.cliPathstringqodercliWebUI Qoder Provider 使用的 QoderCLI 路径
air.providers.qoder.argslist[]传递给 QoderCLI 的额外参数

WebUI 浏览器终端复用 air.providers.<name>。Manual 模式只取 cliPathargs;Custom、Event、Resume 模式会额外注入 SIREN MCP、种子 prompt 或恢复会话 ID。它和浏览器 Shell 一样只受 WebUI 全局鉴权保护。

AIR 配置边界

AIR 的 Provider 配置只保留 Provider、prompt、CLI 路径和额外参数;会话并发与重连回放容量分别由 air.maxSessionsair.replayBufferBytes 控制。模型、权限、沙箱、普通 Shell 审批等行为由 Claude Code / Codex / Qoder 自身配置决定;Codex Provider 会把 SIREN 注入的 MCP 工具设置为默认允许,Qoder Provider 不会修改全局 Qoder 设置或强制跳过权限确认。旧版 AIR 细分字段和独立的 agentTerminal.* 配置块已移除,残留时不会生效。

v1.x 升级提示

v2.0.0 合并了 MCP 与 WebUI 端口,顶层 mcpPort 字段与 --mcp-port 参数已移除。升级后的配置示例如上,mcpPort 如有残留不会报错但会被忽略。

On this page