配置文件
了解如何通过配置文件进行自定义设置
SIREN 客户端与服务端均支持通过 YAML 配置文件进行自定义设置。
配置文件查找顺序
启动时,SIREN 会按以下顺序查找配置文件(找到即停止):
- 通过
-c/--config参数指定的路径 - 当前工作目录下的
config.yaml(客户端)或server_config.yaml(服务端) ./config/目录下的config.yaml或server_config.yaml
敏感信息
配置文件中不包含任何敏感凭证信息(如 AccessKey、API Key 等),所有凭证均通过环境变量设置,详见凭证设置。
客户端配置
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 # 本地 recon 文档上传路径
plugins:
marketplace: https://example.com/plugins # 插件市场地址
jdump: true # 启用 jdump 插件
rules: # 信息收集规则
IPWhitelist: 140\.205\.11\.\d+|8\.147\.237\.0
# ...other rules配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
server | string | 127.0.0.1 | 远程模式下连接的服务端地址 |
port | int | 443 | 远程模式下连接的服务端端口 |
recon.commandTimeout | int | 30 | 信息收集和客户端远程命令执行的基础超时时间(秒);MCP / AIR 慢命令建议服务端也设置相同值 |
recon.<module> | bool | true | 各信息收集模块的开关(如 user、process、network 等),完整列表见信息收集模块 |
oss.region | string | - | OSS Bucket 所在地域 |
oss.bucketName | string | - | OSS Bucket 名称 |
oss.objectPath | string | tmp/siren_upload | 本地 siren upload 的 OSS 路径前缀 |
oss.docObjectPath | string | tmp/siren_upload/docs | 本地 siren recon 文档上传的 OSS 路径前缀 |
plugins.marketplace | string | - | 插件市场 URL,用于下载和更新插件 |
plugins.<name> | bool | - | 启用或禁用指定的 command 类型插件 |
rules | map | - | 信息收集规则,值为正则表达式 |
关于 rules
rules 用于在信息收集结果中标记或过滤特定内容。例如 IPWhitelist 可以在网络连接信息中标识已知的白名单 IP 地址,减少排查噪音。规则值支持正则表达式,支持白名单(过滤已知正常项)和黑名单(高亮可疑项)两种类型。
服务端配置
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 编辑器文件目录
mcp:
enabled: true # 是否启用 MCP 服务
cmdBlacklist: # MCP run 命令黑名单(正则表达式)
- rm\\s
- kill\\s
- shutdown
- reboot
# ...more patterns
air:
provider: claude # 默认 WebUI AIR Provider:claude / codex
prompt: 启动安全应急响应,UID:%s,... # 告警事件模式的 prompt 模板
customPromptPrefix: 在 SIREN Client %d 上... # 自定义 prompt 模式的前缀
providers:
claude:
cliPath: claude # Claude Code CLI 路径
model: "claude-opus-4-8[1m]"
strictMCPConfig: true
allowedTools:
- mcp__siren__ls
- mcp__siren__run
- mcp__siren__get_alarm_detail
- Read
- Bash(ls *)
- Bash(grep *)
effort: xhigh
args: [] # 额外 Claude CLI 参数
codex:
cliPath: codex # Codex CLI 路径
model: gpt-5.5
effort: xhigh
sandbox: read-only
approval: never
enabledTools:
- ls
- run
- get_alarm_detail
args: [] # 额外 Codex CLI 参数配置项说明
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
listen | string | 0.0.0.0 | 客户端 TLS 服务监听地址 |
port | int | 443 | 客户端 TLS 服务监听端口 |
cert | string | certs/cert.pem | TLS 证书文件路径 |
key | string | certs/key.pem | TLS 私钥文件路径 |
webui.enabled | bool | true | 是否启用 Web 控制台。关闭后若 mcp.enabled 仍为 true,/mcp 会继续在共享端口上提供服务 |
webui.listen | string | 0.0.0.0 | WebUI 与 MCP 共享的监听地址;只要 webui.enabled 或 mcp.enabled 有一个启用就会启动监听 |
webui.port | int | 8080 | WebUI 与 MCP 共享的监听端口,MCP 通过 /mcp 子路径暴露 |
webui.userDBPath | string | data/users.db | WebUI 用户 SQLite 数据库路径(相对路径基于启动 CWD) |
webui.dossierDir | string | -(示例配置为 /opt/siren/dossier) | Dossier 编辑器文件目录,可位于服务端工作目录外;左侧 Dossier 入口默认打开该目录下的 report.md。默认为空,留空、目录不可用或默认报告不可访问时,WebUI 会提示错误。详见 Dossier 配置 |
mcp.enabled | bool | true | 是否启用 MCP 服务,独立于 webui.enabled |
mcp.cmdBlacklist | list | 见 MCP 集成 | MCP run 工具的命令黑名单,值为正则表达式列表 |
air.provider | string | claude | WebUI Agentic 应急响应默认使用的 Provider,可选 claude 或 codex;页面中也可在每次启动会话时选择 |
air.prompt | string | - | 告警事件模式下的 prompt 模板,依次填入 %s UID、%s 安全中心告警 ID、%d Client ID(告警 ID 即 air 命令的 Security Center Alert ID,详见 Agentic 应急响应) |
air.customPromptPrefix | string | - | 自定义 prompt 模式下的前缀(支持 %d Client ID) |
air.providers.claude.cliPath | string | claude | Claude Code CLI 路径;服务端 REPL 的 air 命令也使用 Claude Provider 配置 |
air.providers.claude.model | string | claude-opus-4-8[1m] | Claude Provider 使用的模型 |
air.providers.claude.strictMCPConfig | bool | true | 是否对 Claude Code 启用严格 MCP 配置 |
air.providers.claude.allowedTools | list | 见示例 | Claude Provider 允许调用的工具列表 |
air.providers.claude.effort | string | xhigh | 传递给 Claude CLI 的推理强度 |
air.providers.claude.args | list | [] | 传递给 Claude CLI 的额外参数 |
air.providers.codex.cliPath | string | codex | Codex CLI 路径 |
air.providers.codex.model | string | gpt-5.5 | Codex Provider 使用的模型 |
air.providers.codex.effort | string | xhigh | Codex 推理强度 |
air.providers.codex.sandbox | string | read-only | Codex 沙箱模式 |
air.providers.codex.approval | string | never | Codex approval 模式 |
air.providers.codex.enabledTools | list | ls, run, get_alarm_detail | Codex AIR 注入的 SIREN MCP 工具 |
air.providers.codex.args | list | [] | 传递给 Codex CLI 的额外参数 |
v2.10.2 AIR 配置更新
AIR CLI 配置已统一放到 air.providers.<name> 下。旧的 air.cliPath / air.args 不再作为 WebUI AIR 的配置入口;升级后请按上方示例迁移到 air.providers.claude.* 或 air.providers.codex.*。
v1.x 升级提示
v2.0.0 合并了 MCP 与 WebUI 端口,顶层 mcpPort 字段与 --mcp-port 参数已移除。升级后的配置示例如上,mcpPort 如有残留不会报错但会被忽略。