温馨提示×

Redis在Debian上的安全配置有哪些

小樊
50
2025-11-15 13:40:38
栏目: 云计算

Redis 在 Debian 上的安全配置清单

一 网络与访问控制

  • 将服务绑定到本地或内网接口,避免暴露在公网。编辑 /etc/redis/redis.conf:设置仅监听本地 bind 127.0.0.1 ::1;如确需远程,仅绑定内网地址(如 bind 192.168.1.100),并确保有严格的网络边界控制。
  • 保持或启用 protected-mode yes,在未设置密码且允许远程时,保护模式会限制仅本地访问,降低误暴露风险。
  • 通过防火墙限制来源:如使用 ufw 仅允许应用网段访问 6379/tcp,或采用 iptables 对来源网段放行、其余拒绝。
  • 如需加密传输,启用 TLS/SSL(Redis 6.0+):配置 tls-port 6379(或另设端口)、tls-cert-filetls-key-filetls-ca-cert-file,客户端使用 TLS 连接。

二 身份与命令安全

  • 设置强密码认证:在 redis.conf 配置 requirepass <强密码>;如部署 Redis 6.0+,使用 ACL 做细粒度授权,例如:
    • 只读用户:ACL SETUSER reader on >reader123 allkeys +get +scan +ping
    • 读写用户:ACL SETUSER writer on >writer123 allkeys +set +get +del
  • 禁用或重命名高危命令,降低被滥用风险:
    • 直接禁用:rename-command FLUSHALL “”rename-command FLUSHDB “”rename-command CONFIG “”
    • 保留但改名:rename-command KEYS “JOYAPNXRPmcarcR4ZDgC”(示例为不可猜测字符串)
  • 避免将 requirepass/masterauth 等敏感信息以明文形式暴露给客户端或日志;必要时通过重命名或访问控制限制 CONFIG 等敏感命令的使用。

三 系统与文件权限

  • 使用专用的 redis 系统用户运行服务,禁止以 root 直接启动:创建用户(如 adduser --system --group --no-create-home redis),并在服务单元或配置中指定 User=redis / Group=redis
  • 收紧关键文件与目录权限:配置文件 chmod 600 /etc/redis/redis.conf;数据目录 chmod 700 /var/lib/redis,确保仅 redis 用户可读写。
  • 如启用 Unix 域套接字,设置严格的权限(如 unixsocketperm 700),仅允许受控用户访问。

四 运行与运维安全

  • 保持 Redis 版本更新:执行 sudo apt update && sudo apt upgrade redis-server,及时获取安全修复。
  • 变更配置后按序重启并验证:sudo systemctl restart redis-server,使用 sudo systemctl status redis-server 检查运行状态。
  • 建立备份与恢复机制,定期备份 RDB/AOF 数据;启用监控与日志审计,关注异常连接与命令执行。
  • 避免在生产环境使用 Snap 安装(隔离但存在性能与运维限制),优先 APT 或可控的源码部署。

五 最小化配置示例 redis.conf 片段

# 网络与监听
bind 192.168.1.100
protected-mode yes
port 6379
# 如需TLS,取消注释并配置证书路径
# tls-port 6380
# tls-cert-file /etc/redis/redis.crt
# tls-key-file /etc/redis/redis.key
# tls-ca-cert-file /etc/redis/ca.crt

# 身份与命令
requirepass YourStrongP@ssw0rd!
# ACL 示例(Redis 6+)
# ACL SETUSER reader on >reader123 allkeys +get +scan +ping
# ACL SETUSER writer on >writer123 allkeys +set +get +del
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""

# 系统与文件(配合系统权限设置)
# unixsocket /run/redis.sock
# unixsocketperm 700

提示:以上为关键项示例,完整配置请结合业务与合规要求调整,变更前在测试环境验证,变更后及时备份并滚动重启。

0