温馨提示×

Redis在Debian上的安全配置建议

小樊
33
2025-12-07 06:42:03
栏目: 云计算

Redis 在 Debian 上的安全配置建议

一 基础网络与访问控制

  • 将服务仅暴露在内网:在 /etc/redis/redis.conf 设置 bind 127.0.0.1 或内网 IP,避免使用 bind 0.0.0.0 监听所有地址。
  • 修改默认端口:将 port 6379 改为非默认端口(如 6380),降低被扫描概率。
  • 启用保护模式:保持 protected-mode yes,当未设置 bind 或密码时,拒绝外部访问。
  • 限制来源 IP:使用 ufw 仅允许可信网段访问 Redis 端口,例如:sudo ufw allow from 192.168.1.0/24 to any port 6379/tcp
  • 服务管理:Debian 使用 systemd,确保配置 supervised systemd 以便正确托管与监控。
    以上做法可显著降低暴露面与暴力尝试风险。

二 身份鉴别与命令防护

  • 设置强密码:在 requirepass 配置高强度口令(长度≥12位,包含大小写、数字与符号),客户端需 AUTH 后操作。
  • 精细化权限:Redis 6.0+ 使用 ACL 为不同用户分配最小权限,例如只读用户仅授予 +get +scan +ping
  • 禁用或重命名危险命令:对 FLUSHALL、FLUSHDB、CONFIG、SHUTDOWN 等进行重命名或禁用,防止误操作与滥用。
  • 动态配置需谨慎:虽然可通过 CONFIG SET 临时修改配置,但请尽快落盘到 redis.conf 并重启或持久化,避免重启后失效。
    上述措施能显著提升未授权访问门槛与误操作防护能力。

三 加密传输与端口管理

  • 启用 TLS/SSL:在 redis.conf 配置 tls-port 6379tls-cert-filetls-key-filetls-ca-cert-file,强制客户端使用加密通道传输数据。
  • 端口策略:若启用 TLS,建议仅开放 TLS 端口,并关闭明文端口;或在内网强制走 TLS,外网直接阻断。
  • 云与安全组:在 云厂商安全组/本机防火墙 同步放行策略,仅允许可信来源访问对应端口。
    TLS 能有效降低明文数据被窃听与中间人攻击的风险。

四 内存、持久化与日志监控

  • 内存与淘汰:设置 maxmemory(如不超过物理内存的 70%)与 maxmemory-policy allkeys-lru,防止 OOM
  • 持久化策略:结合业务选择 RDBAOF。示例 RDB:save 900 1300 1060 10000;AOF 建议开启 appendonly yesappendfsync everysec 平衡性能与安全。
  • 日志与审计:配置 logfile /var/log/redis/redis.log 与合适的 loglevel,并定期审计异常连接与命令。
  • 慢查询:开启 slowlog-log-slower-than 10000(单位微秒,约 10ms)与 slowlog-max-len 128,定位性能瓶颈与异常查询。
  • 连接与超时:设置 timeout(如 300 秒)与 tcp-keepalive 300,回收空闲连接、保持链路健康。
    这些设置有助于数据可靠性、可观测性与可用性。

五 快速检查清单与常用命令

  • 配置核对:确认 bindportprotected-moderequirepass/ACLrename-commandTLS 等关键项已按策略设置并生效。
  • 服务与自启:使用 sudo systemctl enable --now redis-server 启动并随系统启动;变更后用 sudo systemctl restart redis-server 生效。
  • 连通性测试:本地测试 redis-cli -h 127.0.0.1 -p 6379 -a <密码>;远程测试需通过内网或 TLS 且来源 IP 在白名单内。
  • 防火墙与云策略:核对 ufw安全组 仅放行必要来源与端口。
  • 备份与更新:定期备份 RDB/AOF 与配置,执行 sudo apt update && sudo apt upgrade redis-server 获取安全修复。
    以上步骤可作为上线前与日常运维的快速自检清单。

0