Redis 安全规范

TL;DR - Redis安全最佳实践

1.信任的内网运行,绑定Redis监听的网络接口。

bind 192.168.1.100 10.0.0.1

2.禁止root用户启动redis

useradd -M -s /sbin/nologin [username]

3.限制redis文件目录访问权限

chmod 700 /var/lib/redis   #假设这是你redis目录
chmod 600 /etc/redis/redis.conf  #假设这是你redis配置文件

4.避免使用默认端口

5.开启Redis密码认证,并设置高复杂度密码(需要重启redis才能生效)

vim /etc/redis/redis.conf  
requirepass ed4c39b015b0e46f079775474dbfd0a9a4ab278f63340a6d640999f25c68a932fef815

6.服务精细化授权

# 禁用或重命名危险命令(FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL等)
rename-command CONFIG CONFIG_b9fc8327c4dee7
rename-command SHUTDOWN SHUTDOWN_b9fc8327c4dee7
rename-command FLUSHDB ""
rename-command FLUSHALL ""
# 重启生效

7.防火墙屏蔽Redis端口

iptables -A INPUT -p tcp --dport 6379 -j DROP

8.禁止在Redis中存储敏感的明文数据

9.数据加密传输

spiped
参考:http://www.tarsnap.com/spiped.html

10.安全监控

11.Redis Cluster(同步)不支持密码问题 - 可忽略

12.Redis3.2.0的保护模式

如果Redis在启动时,未开启bind和密码设置功能,只能通过回环地址本地访问

13.定期更新

14.参考资料:

Redis Security
https://redis.io/topics/security
Redis CVE
https://www.cvedetails.com/vulnerability-list/vendor_id-15183/product_id-31837/year-2016/Pivotal-Software-Redis.html

Vulnerability Spotlight: Redis CONFIG SET client-output-buffer-limit Code Execution Vulnerability
http://blog.talosintelligence.com/2016/09/redis-vulnerability.html
Redis未授权访问漏洞
https://help.aliyun.com/knowledge_detail/37447.html
Redis CSRF 漏洞
https://yq.aliyun.com/articles/69183?spm=5176.8246799.0.0.rjoQtW
Redis CSRF 漏洞 POC
https://github.com/dxa4481/Damn-Vulnerable-Redis-Container
Redis EVAL Lua Sandbox Escape
http://benmmurphy.github.io/blog/2015/06/04/redis-eval-lua-sandbox-escape/
comments powered by Disqus

作者:Zer0d0y
微信关注:Zer0d0y
本文出处:https://www.zer0d0y.info/post/Securing_Redis/
本站评论使用Disqus,如果长时间无法加载,请切换至“自由”互联网。
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。