使用教程中心
提示:本教程将帮助您了解系统的安全机制,确保您的数据和服务器安全。
SSH密钥管理
系统使用SSH密钥对进行服务器连接认证,比密码认证更安全可靠。
密钥生成
添加服务器时,系统会自动生成SSH密钥对:
- 公钥:用于添加到目标服务器的authorized_keys文件中
- 私钥:由系统加密存储,用于SSH连接认证
- 密钥类型:使用RSA-4096或ED25519算法
密钥轮换
为了提高安全性,建议定期轮换SSH密钥:
- 进入服务器详情页面
- 点击"轮换密钥"按钮
- 系统会生成新的密钥对
- 将新的公钥添加到目标服务器
- 测试连接确保正常
注意:密钥轮换后,旧的公钥将失效,请确保及时更新目标服务器上的公钥。
密钥加密存储
系统使用AES-256加密算法对SSH私钥进行加密存储:
- 加密密钥由环境变量SSH_KEY_ENCRYPTION_KEY提供
- 加密密钥长度必须为32字节
- 私钥仅在内存中解密,不写入磁盘
- 连接断开后立即清除内存中的私钥
数据加密
系统在多个层面实施数据加密,确保数据安全。
传输加密
所有数据传输都使用加密协议:
- SSH协议:使用SSH-2协议进行服务器连接,支持多种加密算法(AES、ChaCha20等)
- SFTP协议:使用SFTP进行文件传输,确保传输安全
- HTTPS协议:Web界面使用HTTPS,防止中间人攻击
- WebSocket:WebSocket连接使用WSS协议
存储加密
敏感数据在存储时进行加密:
- SSH私钥:使用AES-256加密
- 用户密码:使用bcrypt哈希算法
- JWT令牌:使用HMAC-SHA256签名
- 注册密钥:使用随机生成并加密存储
访问控制
系统实施严格的访问控制机制,确保只有授权用户才能访问相应资源。
用户认证
系统使用JWT令牌进行用户认证:
- 访问令牌:有效期7天,用于API请求认证
- 刷新令牌:有效期30天,用于刷新访问令牌
- 令牌存储:存储在HttpOnly Cookie中,防止XSS攻击
- 令牌验证:每次API请求都会验证令牌有效性
权限控制
系统基于角色的访问控制(RBAC):
| 权限 | 普通用户 | VIP用户 | 管理员 |
|---|---|---|---|
| 服务器数量 | 3台 | 10台 | 无限制 |
| 存储空间 | 10GB | 100GB | 无限制 |
| 并发任务 | 1个 | 2个 | 10个 |
| 用户管理 | - | - | ✓ |
| 系统配置 | - | - | ✓ |
资源隔离
系统确保用户之间的资源隔离:
- 用户只能访问自己的服务器和备份文件
- 备份文件按用户ID和服务器ID分层存储
- 所有API请求都验证用户权限
- 文件路径验证防止目录遍历攻击
安全最佳实践
遵循以下安全最佳实践,确保系统安全:
服务器安全
- 使用强密码或SSH密钥认证
- 定期更新系统和软件包
- 禁用root远程登录(如可能)
- 配置防火墙规则,只开放必要端口
- 定期检查系统日志,发现异常行为
- 使用fail2ban防止暴力破解
账户安全
- 使用强密码(至少8位,包含大小写字母、数字和特殊字符)
- 定期更换密码
- 不要在多个网站使用相同密码
- 启用双因素认证(如系统支持)
- 不要在公共设备上保存登录状态
- 及时退出登录
备份安全
- 定期备份重要数据
- 备份文件存储在安全位置
- 定期测试备份恢复流程
- 保留多个备份版本
- 备份敏感数据时考虑加密
- 定期清理过期备份
网络安全
- 使用HTTPS访问Web界面
- 不要在公共WiFi上进行敏感操作
- 使用VPN访问远程服务器
- 定期检查网络流量异常
- 配置网络隔离和访问控制列表
常见安全问题
如何防止SSH密钥泄露?
采取以下措施防止SSH密钥泄露:
- 定期轮换SSH密钥
- 使用强加密算法(RSA-4096或ED25519)
- 为私钥设置密码保护(如可能)
- 限制authorized_keys文件权限(600)
- 监控SSH登录日志,发现异常立即处理
备份文件是否安全?
系统采取多种措施确保备份文件安全:
- 备份文件按用户和服务器分层存储,确保隔离
- 文件路径验证防止目录遍历攻击
- 定期清理过期备份
- 支持备份文件加密(可选)
- 详细的操作日志记录
如何保护JWT令牌安全?
系统采取以下措施保护JWT令牌:
- 令牌存储在HttpOnly Cookie中,防止XSS攻击
- 使用强密钥进行签名
- 设置合理的过期时间
- 支持令牌刷新机制
- 每次请求都验证令牌有效性
系统如何防止SQL注入?
系统使用Prisma ORM,自动防止SQL注入:
- 使用参数化查询
- 自动转义特殊字符
- 类型安全的查询构建器
- 输入验证和过滤
下一步
了解安全设置后,您可以: