许可
按功能模块和受管主机数分四档。默认离线激活,一张 .lic 绑定一台 IPA 服务器;未激活时管理台只读。
档位
许可按功能模块和受管主机数两条轴分档,不按用户数计费。
| 项目 | 专业版 | 企业版 | 试用 |
|---|---|---|---|
| 定位 | 纯 Linux,全功能 | Windows AD 与 Linux 统一身份 | POC |
| 受管主机上限 | 100 | 1000,可按需上调 | 20 |
| IPA 服务器数 | 1 | 不限 | 1 |
| 有效期 | 1 年 | 1 年 | 14 天 |
| 主机访问控制、密码策略、用户 SSH 公钥、证书签发 | 含 | 含 | 含 |
| 内置 DNS、自动挂载、证书身份映射、Kerberos 票据策略 | 含 | 含 | 含 |
| AD 域信任 | 不含 | 含 | 含 |
所有档位都包含且不受许可影响的功能:用户、主机、组、Sudo、RBAC、OTP、多 master 复制、备份恢复。
受管主机指加入域的主机数(ipa host-add 创建的对象),不含 AD 侧的机器。IPA 服务器数指安装了 IDMatrix 管理台的 FreeIPA 服务器,每台各需一张 .lic;不安装管理台的纯 FreeIPA replica 不占名额。
未激活与越界时的行为
| 状态 | 管理台 | API 与命令行 | 已加入域的主机 |
|---|---|---|---|
| 未激活、过期、指纹不符、被吊销 | 红色横幅。所有页面可查看,不可修改 | 写操作返回 403,错误码 4300 LicenseReadOnly | 登录、sudo、SSH 全部正常 |
| 已激活但操作的模块不在许可内 | 该模块的导航项隐藏 | 写操作返回 403,错误码 4301 LicenseModuleLocked | 正常 |
| 受管主机数达到上限 | ipa host-add 报错 | 服务端拒绝新增主机 | 正常 |
| 30 天内到期 | 黄色横幅提示剩余天数 | 正常 | 正常 |
许可只控制管理员能修改的内容。已下发到主机的策略、已签发的 Kerberos 票据、已签的证书不受影响,域本身不因许可过期停止服务。证书自动续期同样不受影响(1.0.2 起;更早版本在缺少证书签发模块时续期失败)。
三层如何配合
| 层 | 位置 | 作用 |
|---|---|---|
| 校验 | idmatrix-license.timer 每日执行 | 本地验签 .lic(签名、到期、主机指纹),写入 /var/lib/idmatrix-license/status.json |
| 闸门 | httpd 中 /ipa 的 WSGI 入口 | 每个 JSON-RPC 请求先读取 status.json:只读态拒绝所有写操作,模块态拒绝未授权模块的写操作。FreeIPA 自身的服务主体(certmonger 续证、replica 通信)不经过闸门 |
| 硬顶 | FreeIPA 服务端插件 | host_add 时统计受管主机,超过 max_managed_hosts 直接拒绝 |
三层都以 status.json 为准。手动刷新状态不需要等每日 timer:sudo systemctl start idmatrix-license.service。
激活
默认离线,IPA 服务器不需要联网。
在管理台的 IPA Server 下打开 License Activation,复制主机指纹(64 位十六进制),发送给 Reallysec。
收到 .lic 文件后在同一页上传。服务端先验签再落盘:损坏的文件、其他机器的文件、无效内容都不会覆盖现有许可。
执行 cat /var/lib/idmatrix-license/status.json 确认 valid 为 true,mods 为购买的模块,expiry 为到期日。
激活后管理台横幅消失,此前隐藏的导航项出现,不需要刷新。命令行等价操作:
curl -sk -X POST https://<FQDN>/ipa/modern-ui/license/install --data-binary @<客户>.lic
# {"ok":true,"status":{...}}指纹由 /etc/machine-id 派生。重装系统、更换机器、克隆虚拟机、把备份恢复到另一台机器都会改变指纹,许可失效,需用新指纹重新签发。备份恢复到同一台机器不受影响。
续期、扩容、升档
三者是同一个动作:Reallysec 对同一个指纹重签一张 .lic,修改到期日、主机上限或模块,在 License Activation 页上传覆盖。指纹不变,不需要重装或重启。管理台的门控在上传后立即重算。
在线模式
默认离线模式没有心跳、没有远程吊销、没有宽限期,到期即只读。需要远程吊销或心跳监控的客户可切换到在线模式,前提是 IPA 服务器能访问 license.reallysec.com:443,且由 Reallysec 签发在线 token 而不是 .lic。
编辑 /etc/systemd/system/idmatrix-license.service:
Environment=IDMATRIX_LICENSE_SERVER=https://license.reallysec.com
Environment=IDMATRIX_LICENSE_TOKEN=<在线 token>
Environment=IDMATRIX_LICENSE_GRACE_DAYS=3sudo systemctl daemon-reload && sudo systemctl start idmatrix-license.service
cat /var/lib/idmatrix-license/status.jsonIDMATRIX_LICENSE_GRACE_DAYS 是无法连接许可服务器后继续有效的天数,默认 3,网络不稳定的环境设为 7。只在在线模式生效。
排障
| 横幅或现象 | 原因与处理 |
|---|---|
| 未激活 | 未上传 .lic,或 /var/lib/idmatrix-license/ 下没有该文件 |
| 未授权在此服务器 | 指纹不符,机器更换过或 machine-id 变化。重新签发 |
| 已到期 | 续期 |
上传返回 许可证文件为空或过大 | curl --data-binary @ 的路径错误,读到了空文件 |
| 激活后某个页面仍不显示 | 该模块不在 mods 中。查看 status.json,不是缓存问题 |
日志中查不到 LicenseModuleLocked | 闸门拒绝时不写 httpd 日志。判断是否被拦截只看 status.json 的 valid 和 mods |
| 修改 service 的 env 不生效 | 缺少 daemon-reload 与 systemctl start;timer 每天只执行一次 |