安全设置
YunyiRADIUS 内置了多层安全防护机制。
系统安全配置
进入「系统管理 → 安全设置」:
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 密码最小长度 | 用户密码最小字符数 | 6 |
| 密码复杂度 | 是否要求大小写+数字 | 否 |
| 登录失败锁定 | 连续失败后锁定次数 | 5 |
| 锁定时间 (分钟) | 自动解锁时间 | 15 |
| Token 有效期 | JWT Token 过期时间 | 120 分钟 |
| 验证码重发间隔 | 短信验证码重发间隔 | 60 秒 |
数据加密
字段级加密
以下敏感字段使用 AES-256-GCM 加密存储:
| 字段 | 加密位置 | 说明 |
|---|---|---|
| 用户密码 | radius_user.password | 认证时透明解密 |
| NAS 共享密钥 | net_nas.secret | RADIUS 认证时解密 |
| SMS AccessKey Secret | sms_config.ali_access_secret | 发送短信时解密 |
| SMS SecretKey | sms_config.tc_secret_key | 发送短信时解密 |
加密密钥从 Web.Secret 派生,每个部署实例使用唯一的加密密钥。
密码哈希
管理员密码使用 bcrypt 哈希存储,不可逆。
访问控制
RBAC 权限模型
系统内置角色:
| 角色 | 权限 |
|---|---|
| super (超级管理员) | 全部权限 |
| admin (管理员) | 除系统设置外的大部分权限 |
| read (只读) | 仅查看权限 |
可以创建自定义角色,精确控制每个 API 端点的读/写权限。
JWT 认证
- Cookie 存储(HttpOnly + SameSite=Lax,生产 HTTPS 环境下自动标记为 Secure)
- 自动刷新机制
- 登出即失效
- 令牌上下文隔离:管理后台令牌与用户门户令牌分别携带
aud=admin/aud=portal声明,且管理 API 强制校验aud。门户(用户)令牌无法调用管理接口,管理令牌也不能用于门户上下文,从机制上杜绝跨上下文越权访问。
IP 速率限制
| 端点类型 | 限制 |
|---|---|
| 登录接口 | 5 次/3 分钟 |
| 公开短信验证码接口 | 5 次/3 分钟(按客户端 IP 限流,防短信轰炸) |
| 敏感操作 (充值/退款) | 5 次/秒/秒 bursts |
| 备份/恢复 | 5 次/秒 |
| 短信测试 | 5 次/秒 |
安全响应头
系统对所有 HTTP 响应注入以下安全头部,防护点击劫持、MIME 嗅探与来源泄露:
| 响应头 | 取值 | 防护目标 |
|---|---|---|
| X-Frame-Options | DENY | 禁止被嵌套进 <iframe>,防点击劫持 |
| X-Content-Type-Options | nosniff | 禁止 MIME 类型嗅探 |
| Referrer-Policy | no-referrer | 不向第三方泄露来源 URL |
| Content-Security-Policy | default-src 'self'(脚本/样式/连接均限定同源) | 降低 XSS 与资源注入风险 |
| Strict-Transport-Security | max-age=31536000; includeSubDomains(仅 HTTPS 生效) | 强制 HTTPS,防降级攻击 |
PII 脱敏
- 用户列表等批量视图中,手机号等敏感字段以掩码展示(如
138****8000)。 - 仅在编辑详情页返回完整明文,便于运维操作,且不影响业务功能。
请求体限制
- 服务端对请求体大小设上限(默认 8MB),超限返回 413,缓解大负载导致的资源耗尽风险。
系统备份
导出备份
在「系统管理 → 备份恢复」点击「导出备份」下载完整系统配置 JSON 文件。
⚠️ 备份文件中的用户密码和 NAS 密钥会被脱敏处理(替换为
***REDACTED***),确保备份文件泄露不会暴露凭据。
恢复备份
上传之前导出的 JSON 备份文件恢复系统配置。恢复时:
- 用户密码使用占位符(保留原值不受影响)
- NAS 设备、节点、策略等配置会被还原
- 不会覆盖管理员账号
安全最佳实践
- 生产环境更换默认密钥:
Web.Secret与 LicenseapiSecret均须显式配置,切勿使用内置默认值(未配置apiSecret时系统会跳过对外部 License 服务的调用并告警,而非使用硬编码回退) - 启用 HTTPS:配置 TLS 证书保护传输安全
- 管理端口隔离:管理端口 (1816) 仅内网访问
- 定期备份:定时导出系统配置
- 审计日志:关注操作日志中的异常行为
- RADIUS 端口防火墙:仅允许 NAS 设备 IP 访问 1812/1813
- 定期更新:及时升级到最新版本获取安全补丁