直接设置Redis密码:在redis.conf文件中添加requirepass your_strong_password_here,然后重启Redis服务器。使用命令行临时设置:redis-cli CONFIG SET requirepass "yourpassword"。绑定IP地址:bind 127.0.0.1 只允许本地访问。禁用危险命令:rename-command CONFIG '' rename-command FLUSHALL ''。开启Redis持久化:save 900 1 并配置AOF日志。使用防火墙限制端口6379访问。
基础密码配置
Redis 默认是没有密码的,这是最大的安全隐患。编辑 redis.conf 文件,找到 # requirepass foobared 这一行,去掉注释并修改密码,例如 requirepass MySuperSecurePassword123! 。密码要足够复杂,包含大小写字母、数字和特殊字符,至少12位。修改后,重启 Redis 服务:systemctl restart redis。
防护技巧
1. 永远不要将 Redis 暴露在公网,使用 bind 127.0.0.1 绑定本地地址。2. 配置防火墙:iptables -A INPUT -s 你的内网IP -p tcp --dport 6379 -j ACCEPT,其余拒绝。3. 使用 TLS 加密连接,尤其在云环境。4. 定期轮换密码,并监控登录日志。5. 部署 Sentinel 或 Redis Cluster 时,确保所有节点都设置密码且一致。
最佳实践分享
在生产环境中,结合使用 ACL(Access Control List,从Redis 6.0开始):ACL SETUSER myuser on >mypassword ~* +@all,然后 AUTH myuser mypassword 登录。这样可以限制用户权限,只允许特定命令。避免使用 root 运行 Redis,创建专用用户。启用 protected-mode yes,默认保护模式。
常见攻击防护
Redis 未设密码易遭挖矿病毒攻击,黑客用 masscan 扫描开放端口后注入恶意负载。防护:立即设置强密码,关闭远程访问。使用 fail2ban 监控失败登录并封禁IP。更新到最新Redis版本,修复已知漏洞。
云环境配置
AWS ElastiCache 或阿里云 Redis:创建实例时必选认证模式,选择密码认证或 IAM 认证。设置安全组只允许 VPC 内访问。定期审计访问日志,发现异常立即处理。
监控与审计
集成 Prometheus + Grafana 监控 Redis 认证失败次数。日志配置:loglevel notice,查看 /var/log/redis/redis.log 中的认证错误。脚本自动化检查:if redis-cli -a wrongpass ping; then echo "密码泄露"; fi。
FAQ
Q: Redis密码设置后如何连接?
A: 使用 redis-cli -h host -p 6379 -a yourpassword。
Q: 忘记密码怎么办?
A: 编辑redis.conf注释掉requirepass,重启后重设。
Q: Redis Cluster怎么统一密码?
A: 所有节点redis.conf设置相同requirepass,并用ACL同步。
Q: 密码强度要求是什么?
A: 至少12位,混合字符,避免字典词。