Redis 基本安全规范文档
温馨提示:我在一家手游的公司工作,因为经常用到redis,特为此整理文档(借鉴过大神的文章):
一.什么是redis(出自百度百科)?
1.信任的内网运行,绑定Redis监听的网络接口。
bind 192.168.1.100 10.0.0.1 172.16.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
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/