1. 修改默认配置:绑定IP与启用保护模式
将Redis绑定到本地IP(127.0.0.1)或内网IP,限制外部网络直接访问,在redis.conf中设置bind 127.0.0.1;启用保护模式(protected-mode yes),当未绑定IP且未设置密码时,拒绝非本地连接,防止未授权访问。
2. 设置强密码认证
在redis.conf中取消requirepass注释,设置复杂密码(包含大小写字母、数字、特殊字符,长度≥12位),例如requirepass Xh@9Lp2#Qz3$。修改后需重启Redis服务使配置生效,客户端连接时需通过AUTH 密码命令验证。
3. 禁用或重命名危险命令
通过rename-command指令禁用或重命名高风险命令,避免恶意使用:
FLUSHALL(清空所有数据)、FLUSHDB(清空当前数据库):rename-command FLUSHALL "";CONFIG(修改配置)、KEYS(遍历所有键):rename-command CONFIG "x89sKf21@Lm"、rename-command KEYS "y78tGh45#Pz";SHUTDOWN(关闭服务)为不可猜测的字符串:rename-command SHUTDOWN "z67uJk90*Qw"。4. 配置防火墙限制访问
使用ufw(Ubuntu)或iptables(CentOS)配置防火墙规则,仅允许受信任的IP地址访问Redis端口(默认6379):
sudo ufw allow from 192.168.1.100 to any port 6379(允许192.168.1.100访问),然后sudo ufw enable启用防火墙;sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 6379 -j ACCEPT(允许192.168.1.100),sudo iptables -A INPUT -p tcp --dport 6379 -j DROP(拒绝其他IP),最后sudo service iptables save保存规则。5. 使用SSL/TLS加密通信
生成SSL证书(密钥+证书文件),在redis.conf中启用SSL:
mkdir -p /etc/redis/ssl && cd /etc/redis/ssl,openssl req -x509 -newkey rsa:4096 -keyout redis.key -out redis.crt -days 365 -nodes(自签名证书);cat redis.key redis.crt > redis.pem;ssl on、ssl_cert_file /etc/redis/ssl/redis.pem、ssl_key_file /etc/redis/ssl/redis.pem。--tls参数连接(如redis-cli --tls -h 192.168.1.100 -p 6379 -a 密码)。6. 限制资源与连接数
通过maxclients参数限制最大客户端连接数(如maxclients 1000),防止资源耗尽攻击;调整timeout参数(如timeout 300),关闭空闲超过5分钟的连接,释放资源。
7. 定期更新Redis版本
保持Redis为最新稳定版本(如Redis 7.x),及时应用官方发布的安全补丁,修复已知漏洞(如缓冲区溢出、命令注入等)。可通过sudo apt update && sudo apt upgrade redis-server(Ubuntu)或sudo yum update redis(CentOS)更新。
8. 启用日志与监控
在redis.conf中配置详细日志记录,便于追踪异常活动:
notice(生产环境推荐):loglevel notice;logfile /var/log/redis/redis.log;syslog-enabled yes、syslog-ident redis、syslog-facility local0。9. 使用非root用户运行Redis
创建专用Redis用户(如redis),并修改Redis数据目录与配置文件的所属用户:
sudo useradd -r -s /sbin/nologin redis;sudo chown -R redis:redis /var/lib/redis(数据目录)、sudo chown redis:redis /etc/redis/redis.conf(配置文件);sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf。10. 备份与恢复策略
定期备份Redis数据(如每日增量备份、每周全量备份),使用BGSAVE命令(异步备份)或SAVE命令(同步备份)生成RDB文件,存储到安全位置(如远程服务器、云存储)。备份文件需加密(如使用GPG),防止泄露。