--- sidebar_position: 8 title: 安全最佳实践 description: ZHub 安全配置和最佳实践指南 --- # 安全最佳实践 ZHub 安全配置和最佳实践指南,帮助您构建安全的分布式系统。 ## 认证和授权 ### 启用权限验证 **服务端配置**: ```ini # app.ini - 生产环境配置 [service] auth=1 # 生产环境必须开启连接授权 ``` :::warning 重要安全提醒 **生产环境强烈建议开启权限验证**: - 关闭权限验证 (`auth=0`) 意味着任何客户端都可以无限制访问所有主题 - 即使在内网环境,也存在内部威胁、误操作、配置错误等风险 - 仅在完全隔离的开发测试环境可考虑关闭权限验证 ::: **客户端配置**: ```java // 使用认证令牌连接 ZHubClient zhub = new ZHubClient( "127.0.0.1:1216", "group1", "app1", "your-secure-token" ); ``` ### 权限配置 **最小权限原则**: ```yaml # auth.yml users: - id: 1 username: "user-service" password: "secure-password" status: "active" groups: ["user-service"] reads: ["user.*"] # 只读用户相关主题 writes: ["user.*"] # 只写用户相关主题 - id: 2 username: "order-service" password: "secure-password" status: "active" groups: ["order-service"] reads: ["order.*", "user.basic.*"] # 只读订单和用户基础信息 writes: ["order.*"] # 只写订单相关主题 ``` **权限隔离**: ```yaml # 不同团队权限隔离 groups: - name: "user-team" description: "用户服务团队" reads: ["user.*"] writes: ["user.*"] - name: "order-team" description: "订单服务团队" reads: ["order.*", "user.basic.*"] writes: ["order.*"] - name: "admin-team" description: "管理员团队" reads: ["*"] writes: ["*"] ``` ## 网络安全 ### 网络隔离 **内网部署**: ```ini # app.ini - 只监听内网地址 [service] watch=192.168.1.100:711 # 管理端口只监听内网 addr=192.168.1.100:1216 # 服务端口只监听内网 ``` **防火墙配置**: ```bash # 只允许内网访问 iptables -A INPUT -p tcp --dport 1216 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 711 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 1216 -j DROP iptables -A INPUT -p tcp --dport 711 -j DROP ``` ## 监控 ### 基础监控 **服务状态监控**: ```bash # 检查服务状态 curl http://127.0.0.1:711/_/info # 检查权限配置 curl http://127.0.0.1:711/auth/reload ``` ## 最佳实践 ### 安全配置检查清单 - [ ] 启用认证和授权 (`auth=1`) - [ ] 配置最小权限原则 - [ ] 实施网络隔离 - [ ] 启用访问日志 - [ ] 定期安全审计 ### 定期维护 - 定期检查权限配置 - 定期更新认证令牌 - 监控服务状态和连接情况