1. 启用强密码认证
在Redis配置文件(/etc/redis.conf)中,找到requirepass指令(默认被注释),取消注释并设置复杂密码(包含大小写字母、数字和特殊字符,长度不少于12位)。例如:requirepass YourSecurePassword@2025。修改后重启Redis服务使配置生效:sudo systemctl restart redis。密码认证是防止未授权访问的第一道防线,能有效阻断非法客户端的连接尝试。
2. 限制网络访问范围
通过bind指令限制Redis仅监听特定IP地址,降低暴露风险。若仅需本地访问,设置为bind 127.0.0.1;若需允许特定远程IP(如内网服务器),可添加对应IP:bind 127.0.0.1 192.168.1.100。同时,确保protected-mode设置为yes(默认值),该模式会在未绑定IP或未设置密码时拒绝远程连接。修改配置后重启Redis服务。
3. 配置防火墙规则
使用CentOS默认的firewalld工具,仅允许信任的IP地址或网络访问Redis默认端口(6379/TCP)。操作步骤:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'(将192.168.1.0/24替换为你的可信网段);sudo firewall-cmd --reload。iptables,可添加规则:sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 6379 -j ACCEPT(允许指定IP),再拒绝其他所有流量:sudo iptables -A INPUT -p tcp --dport 6379 -j DROP,最后保存规则:sudo service iptables save。4. 使用SSL/TLS加密通信
为防止数据在传输过程中被窃取或篡改,建议启用SSL/TLS加密。步骤如下:
openssl req -x509 -newkey rsa:4096 -keyout /etc/redis/redis.key -out /etc/redis/redis.crt -days 365 -nodes(按提示填写信息,-nodes表示不加密私钥);redis.conf中添加ssl on、ssl_cert_file /etc/redis/redis.crt、ssl_key_file /etc/redis/redis.key;sudo systemctl restart redis。--ssl参数(如redis-cli --ssl -h <host> -p 6379 -a <password>)。5. 禁用危险命令与模块
通过rename-command指令禁用高风险命令,防止恶意使用。例如:
FLUSHDB(清空当前数据库):rename-command FLUSHDB "";FLUSHALL(清空所有数据库):rename-command FLUSHALL "";KEYS(遍历所有键,可能导致性能问题):rename-command KEYS "SAFE_KEYS"(重命名后可限制使用权限)。redis.conf中通过loadmodule指令注释或删除相关行,避免模块引入的安全漏洞。6. 以普通用户身份运行Redis
避免以root用户运行Redis,降低系统被入侵后的影响范围。步骤如下:
sudo useradd -r -s /sbin/nologin redis(-r表示系统用户,-s指定无登录shell);sudo chown -R redis:redis /var/lib/redis(假设数据目录为/var/lib/redis);/usr/lib/systemd/system/redis.service,将User=root改为User=redis;sudo systemctl daemon-reload && sudo systemctl restart redis。7. 定期更新Redis版本
及时关注Redis官方安全公告(如GitHub Releases页面),升级到最新稳定版本,修复已知漏洞。使用yum更新命令:sudo yum update redis,升级前备份数据(/var/lib/redis目录)和配置文件(/etc/redis.conf),避免数据丢失。
8. 启用监控与日志记录
通过日志记录Redis的操作和异常,便于及时发现安全事件。在redis.conf中设置:
loglevel notice(记录常规操作和警告);logfile /var/log/redis/redis.log(确保目录存在且Redis用户有写入权限:sudo mkdir -p /var/log/redis && sudo chown redis:redis /var/log/redis)。