Redis在CentOS上的安全配置
小樊
39
2025-11-23 19:24:08
Redis 在 CentOS 上的安全配置清单
一 基础网络与访问控制
- 仅监听必要接口:在 /etc/redis/redis.conf 设置 bind 127.0.0.1(仅本机)或绑定内网私有 IP;如确需远程,务必仅开放到受控来源。
- 启用保护模式:保持 protected-mode yes,在未设置 bind 或未配置密码时禁止外部访问。
- 变更默认端口:将 port 6379 改为非默认端口(如 16379),并同步更新防火墙放行规则。
- 防火墙精细化放行(推荐):使用 firewalld 新建专用区域并仅允许受控客户端网段访问 Redis 端口。
- 示例(仅本地):保持 bind 为 127.0.0.1,无需额外放行;示例(受控远程):
- 新建区域并放行端口:
- sudo firewall-cmd --permanent --new-zone=redis
- sudo firewall-cmd --permanent --zone=redis --add-port=6379/tcp
- 仅允许可信来源:
- sudo firewall-cmd --permanent --zone=redis --add-source=CLIENT_PRIVATE_IP
- 使配置生效:sudo firewall-cmd --reload
上述做法可在不影响其他服务的前提下,最小化 Redis 的暴露面。
二 身份与命令层面加固
- 强密码认证:在 /etc/redis/redis.conf 设置 requirepass <强密码>;重启后使用 redis-cli 验证 AUTH。
- 重命名或禁用高危命令:通过 rename-command 将 FLUSHDB、FLUSHALL、KEYS、CONFIG、SHUTDOWN、DEBUG 等重命名为随机字符串或禁用,防止滥用。
- 最小权限运行:确保 Redis 以 redis 用户运行,避免使用 root 启动服务。
- 示例(重命名):
- rename-command FLUSHDB “”
- rename-command CONFIG “RANDOM_9a8b7c”
这些手段能有效降低未授权访问与破坏性命令执行的风险。
三 文件与进程权限
- 数据目录权限:确保 /var/lib/redis 归属 redis:redis,权限 750/770,防止非授权读取持久化数据。
- 配置文件权限:确保 /etc/redis/redis.conf 归属 redis:redis,权限 600,避免密码泄露。
- 示例:
- sudo chown -R redis:redis /var/lib/redis
- sudo chmod 770 /var/lib/redis
- sudo chown redis:redis /etc/redis.conf
- sudo chmod 600 /etc/redis.conf
- 重启使变更生效:sudo systemctl restart redis
严格的文件权限是防止本地提权与信息泄露的关键环节。
四 加密传输与系统层加固
- 加密传输:在不受信网络中,部署 SSL/TLS 代理(如 stunnel、HAProxy)或在支持的情况下启用 Redis 原生 SSL/TLS,对客户端与服务器之间的流量进行加密。
- 系统加固:
- 保持 Redis 版本更新,及时修补安全漏洞。
- 启用 SELinux/AppArmor 并遵循最小权限原则;如 SELinux 处于 enforcing 模式,确保 Redis 端口(如 6379/tcp)具有正确的端口类型(如 redis_port_t)。
- 配置日志与监控:设置 loglevel notice、合理的 logfile 路径,并接入监控告警,及时发现异常连接与命令执行。
以上措施可显著提升在不可信网络与多租户环境下的整体安全性。
五 快速验证与回滚
- 本地连通与鉴权:
- redis-cli ping → 应返回 PONG
- redis-cli -a <your_password> ping → 正常返回 PONG
- 远程连通性(若已放行):
- redis-cli -h <redis_ip> -p -a <your_password> ping
- 防火墙与端口检查:
- sudo firewall-cmd --list-all(或查询指定 zone:sudo firewall-cmd --zone=redis --list-all)
- 回滚建议:保留一份 /etc/redis/redis.conf.bak;变更前先停机备份,变更后逐项验证,出现异常可快速还原并重启服务。
通过分层验证(本机、远程、防火墙、鉴权)可确保配置按预期生效且风险可控。