当前位置:首页 > 问答 > 正文

Redis安全 白名单设置 Redis白名单部署与IP访问控制,redis白名单ip配置方法

Redis安全防护实战:手把手教你配置IP白名单访问控制

场景引入
凌晨3点,运维小张被报警短信惊醒——公司Redis数据库突然出现大量可疑的FLUSHDB操作,调查发现,某台测试服务器因配置疏漏暴露在公网,被黑客扫描到6379端口后直接入侵,这种本可避免的安全事故,其实只需要一个简单的防护措施:Redis IP白名单


为什么必须设置Redis白名单?

Redis默认监听0.0.0且无密码时(常见于测试环境),相当于向全网敞开大门,黑客只需两步就能攻破:

  1. 通过nmap扫描开放6379端口的服务器
  2. 使用redis-cli -h 目标IP直接连入

白名单的核心作用

  • 仅允许受信任的IP访问Redis服务
  • 即使密码泄露,陌生IP依然无法连接
  • 符合企业级安全合规要求

3种白名单配置方案(附操作命令)

方案1:Linux防火墙(推荐)

通过iptables/firewalld实现网络层防护,性能损耗最低:

# 清空旧规则(谨慎操作)
iptables -F
# 允许特定IP访问6379端口
iptables -A INPUT -p tcp --dport 6379 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 6379 -s 10.0.0.2 -j ACCEPT
# 拒绝其他所有访问
iptables -A INPUT -p tcp --dport 6379 -j DROP
# 永久保存规则(CentOS)
service iptables save

适用场景:生产环境多服务器互通

Redis安全 白名单设置 Redis白名单部署与IP访问控制,redis白名单ip配置方法


方案2:Redis配置文件绑定

修改redis.conf限制监听IP(需重启服务):

# 只允许本地和指定IP连接
bind 127.0.0.1 192.168.1.100
# 必须设置密码才更安全
requirepass YourStrongPassword123

注意

  • 多个IP用空格分隔
  • 修改后执行redis-cli config rewrite生效

方案3:TCP Wrapper双保险

结合hosts.allow/deny做应用层过滤:

# /etc/hosts.allow 添加
redis-server: 192.168.1.100, 10.0.0.2
# /etc/hosts.deny 添加
redis-server: ALL

优势:无需重启Redis服务,修改即时生效


避坑指南

  1. 云服务器特殊配置

    Redis安全 白名单设置 Redis白名单部署与IP访问控制,redis白名单ip配置方法

    • 阿里云/腾讯云需同步配置安全组规则
    • AWS Security Group需放行客户端IP
  2. 动态IP处理技巧

    # 通过脚本自动更新白名单(示例)
    */10 * * * * /usr/bin/curl -s api.getip.com | xargs -I {} iptables -A INPUT -p tcp --dport 6379 -s {} -j ACCEPT
  3. 紧急恢复通道
    保留一个跳板机IP作为应急入口,避免误封后无法连接


验证白名单是否生效

# 从非白名单IP测试连接(应被拒绝)
redis-cli -h 目标服务器IP -p 6379
(error) NOAUTH Authentication required. # 看到这个说明至少密码生效
(如果直接超时则网络层拦截成功)
# 查看当前连接IP
redis-cli client list | awk '{print $2}'

最后建议

  • 生产环境建议方案1+方案2组合使用
  • 每月定期审计白名单IP清单
  • 重要数据额外启用Redis ACL功能(6.0+版本支持)

通过以上配置,你的Redis服务将告别"裸奔"状态,黑客扫描到端口也只能望而却步,安全无小事,现在就去检查你的Redis配置吧!

发表评论