温馨提示×

Redis Ubuntu配置有哪些禁忌

小樊
37
2025-11-02 19:58:04
栏目: 云计算

1. 允许root用户直接运行Redis
Redis官方明确禁止以root用户身份运行,因为root权限过高,一旦Redis被攻破,攻击者可直接获取系统最高权限。应创建专用用户(如redis),并通过chown -R redis:redis /var/lib/redis修改数据目录归属,确保服务以低权限运行。

2. 远程访问未限制IP或未启用认证
默认情况下,Redis仅绑定本地回环地址(127.0.0.1),若需远程访问,需修改bind参数(如bind 0.0.0.0),但必须同步启用密码认证requirepass设置强密码)并配置防火墙(如ufw限制可信IP访问)。未限制IP会导致暴露在公网,易遭受暴力破解或未授权访问。

3. 禁用保护模式(protected-mode)且未设置密码
Ubuntu系统默认开启protected-mode yes,此时Redis仅接受本地连接。若为方便远程访问而禁用(protected-mode no),必须同时设置强密码,否则远程主机可直接连接无需认证,极大增加安全风险。

4. 忽略敏感命令的保护
Redis的FLUSHDB(清空当前数据库)、FLUSHALL(清空所有数据库)、CONFIG(修改配置)等命令若被恶意执行,可能导致数据丢失或配置泄露。应使用rename-command禁用或重命名这些命令(如rename-command FLUSHDB ""rename-command CONFIG "SECURE_CONFIG")。

5. 未启用持久化导致数据丢失
Redis默认开启RDB快照持久化(save 900 1等配置),若为提升性能而完全禁用持久化(删除所有save行并设置appendonly no),服务器重启后数据将全部丢失。应根据业务需求选择RDB(适合备份)或AOF(适合数据完整性)持久化策略。

6. 配置文件权限过于宽松
Redis配置文件(/etc/redis/redis.conf)包含敏感信息(如密码、绑定IP),若权限设置过宽(如chmod 644),可能导致其他用户读取密码或篡改配置。应将权限设置为600(仅所有者可读写),即chmod 600 /etc/redis/redis.conf

7. 忽略系统资源限制
未设置maxmemory(最大内存)会导致Redis占用全部系统内存,引发OOM(Out of Memory)错误,甚至导致系统崩溃。应根据服务器内存大小设置合理的maxmemory值(如maxmemory 2gb),并结合maxmemory-policy(如allkeys-lru)配置内存淘汰策略。

8. 未定期更新Redis版本
旧版本Redis可能存在未修复的安全漏洞(如CVE漏洞),若未定期通过apt update && apt upgrade redis-server更新,易遭受攻击。应订阅Redis官方安全公告,及时升级到最新稳定版本。

0