管理
安全与隐私
面板、被控和主控如何受到保护,以及 3R Monitor 会向服务器以外发送什么。
安全
面板
- 密码用 PBKDF2-SHA256(31 万次迭代)保存。15 分钟内同一用户失败超过 5 次,或同一 IP 失败超过 10 次,登录会被暂时锁定。
- 会话 Cookie 为 HttpOnly 和 SameSite,HTTPS 下另加 Secure。所有修改操作都要求 CSRF 头,面板会发送严格的安全响应头(内容安全策略、禁止嵌入框架、不发送 Referer)。
- 分享链接只能调用只读接口,并可以隐藏细节;它的密钥不会通过 Referer 头泄露。
- 面板能从公网访问时,请使用 HTTPS。见 HTTPS。
被控
- 被控只有出站连接,不监听任何端口。
- 每台服务器都有独立的密钥。可以随时在面板中重新生成密钥或删除服务器;删除服务器即吊销其密钥。
- 被控不以 root 运行(从 1.1.0 起)。它以非特权用户
3rmonitor-agent运行:不能读取/etc/shadow,也不能修改任何东西。它通过adm和systemd-journal组读取系统日志,通过安装脚本添加的只读 ACL(用setfacl)读取 Web 访问日志。 - 少数需要 root 的操作交给一个小型 root 辅助程序
3rmonitor-helper完成。它只通过一个本地 socket 接受几种固定的请求,而这个 socket 只有 root 和3rmonitor-agent能打开:需要 root 的采集(端口背后的进程、证书、Web 服务器检查、Docker)、黑名单防火墙、被控更新和 AI 操作。AI 操作、防火墙规则和更新都由它自己从主控获取,所以被攻破的被控无法把自己伪造的内容交给它。 - 只有在你为某台服务器开启黑名单之后,才会修改那台服务器的防火墙,而且只改 3R Monitor 自己的表或链。
- 被控更新只来自你的主控,而且从 1.1.1 起只安装 3R Soft 签过名的程序:发布包里的校验和清单用 3R Soft 的发布私钥签了名(
SHA256SUMS.sig),被控在运行新程序之前,会核对这份签名(必须是它要更新到的那个版本的)和程序的 SHA-256。所以就算主控被人控制了,也推不了它自己的程序到你的服务器,也不能把被控降级到旧版本。 - 国家规则和大网段永远不拦 SSH,几乎会拦掉所有人的规则由服务器自己拒绝。见防止把自己锁在外面。
主控
- 主控以非特权用户
3rmonitor运行,并且在严格的 systemd 隔离里(3rmonitor-master.service.d/hardening.conf):只能写自己的数据目录,碰不到设备和内核设置,也不能借 setuid 程序提权。系统不支持时,安装脚本会去掉它。 - 一键更新在由 root 更新服务安装之前,会按 3R Soft 的 Ed25519 签名和 SHA-256 校验两次,而且要管理员确认以后才安装。只接受 3R Soft 发布的、比当前版本新的版本。root 更新服务只在自己的 update 目录里读写。
AI 操作
AI 分析默认关闭。AI 值守在服务器上执行操作时:
- 辅助程序做最后一道检查。 它自己从主控获取操作内容(被控只转交操作编号),用同样的规则再检查一遍,核对批准,然后执行并把结果发回。它不相信主控给出的风险等级。
- 恶意命令不管怎么写都会被拒绝,高风险命令永远不会执行:只会展示给你。
- 每一项操作都由主控签名,你批准的每一项修复都会用你的通行密钥对其确切内容签名。服务器只接受 root 在这台服务器上确认过的钥匙,所以即使主控被攻破,也无法批准、修改或添加操作。见通行密钥。
- 一次批准只能使用一次,并且要在一小时内使用;操作内容有任何改动,辅助程序都会拒绝执行。
- 只经过 AI 审查员批准的修复,在每台服务器上也有次数限制:同一个修复每小时 3 次,24 小时内 20 次。
- 不属于纯只读命令的诊断在沙盒中执行:临时的非特权用户、只读文件系统,最多 120 秒和 256 MB,只能访问你允许的网段。
- 一个负责审查的 AI(审查员)会检查每一项修复和每一个在沙盒中执行的诊断。日志、网页和命令输出中的文字都只当作数据,绝不当作指令。
- 在服务器上,root 说了算:
sudo 3rmonitor ai off(什么都不执行)或ai read(只允许诊断)。
隐私
3R Monitor 运行在你自己的服务器上,不会向 3R Soft 发送任何监控数据。
| 谁发起连接 | 连接到 | 发送什么 |
|---|---|---|
| 被控 | 只连接你的主控 | 本服务器的监控数据 |
| 被控(仅在本机找不到公网 IP 时) | https://1.1.1.1/cdn-cgi/trace | 不发送任何内容,只读取本机的公网 IP。设置 public_ip = off 或写死 IP 即可避免。 |
| 主控(仅在没有设置地图位置、且本机找不到公网 IP 时) | https://1.1.1.1/cdn-cgi/trace | 不发送任何内容,只读取主控的公网 IP,用来在地图上定位。在 设置 → 地图 里填好主控坐标即可避免。 |
| 主控 | OSV.dev、CVE Program、NVD、CISA KEV、endoflife.date | 只有软件名称和版本号。可在 设置 → 漏洞检查 中关闭。 |
| 主控 | DB-IP | 每月下载一次国家库。可在 设置 → 地图 中关闭。 |
| 主控 | 3rsoft.com.pa,每 6 小时一次 | 已安装的版本号、操作系统和架构,用于检查更新。可在 系统 → 软件更新 中关闭。 |
| 主控(仅在开启 AI 分析时) | 你配置的模型服务商 | 要分析的监控数据,其中服务器名称、主机名、IP、域名、监控项和分组名称、用户名和邮箱地址都替换成代号。见 AI 分析。可在 AI 分析 → 设置 中关闭。 |
| 主控 | 你的 SMTP 服务器,以及你的监控项地址 | 告警邮件,以及检测请求 |
访问日志中的访客 IP 只在本机离线查询,只保存在主控上。AI 的 API 密钥和生成代号用的密钥也只保存在主控上。
报告安全问题
如果发现 3R Monitor 的安全问题,请私下发邮件到 security@3rsoft.com.pa,修复发布之前请不要公开。请写明版本号(3rmonitor version)、影响的是主控、被控还是安装脚本、复现步骤以及你预计的影响。请不要对不属于你的服务器进行会造成干扰或破坏数据的测试。
只有最新版本会收到安全修复。被控会自动从主控更新,所以升级主控即可。