最近Redis刚爆出一个安全性漏洞,我的服务器就“光荣的”中招了。黑客攻击的基本方法是:
- 扫描Redis端口,直接登录没有访问控制的Redis
- 修改Redis存盘配置:config set dir /root/.ssh/; config set dbfilename /root/.ssh/authorized_keys
- 添加key:crackit,将其值设置为新的公钥。然后就可以为所欲为了。
不影响客户端程序的修复办法:
- 重命名config命令:rename-command CONFIG DO_NOT_USE_CONFIG
- 重启Redis
现在,我们就来认识一下Redis安全性方面的一些知识。
首先,Redis从设计上来说是用来被可信的客户端访问的,这就意味着不适于暴露给外部环境里的非可信客户端访问。最佳的实践方法是在Redis前面加一个访问控制层,校验用户请求。
其次,Redis本身提供了一些简单的配置以满足基本的安全控制。
- ip绑定。如果不需要直接对外提供服务,bind 127.0.0.1就行了,切忌bind 0.0.0.0!
- 端口设置。修改默认的6379,一定程度上避免被扫描。
- 设置密码。Redis的密码是通过requirepass以明文的形式配置在conf文件里的,所以要尽可能得长和复杂,降低被破解的风险。
- 重命名或禁用某些高危操作命令。向config、flushall、flushdb这些操作都是很关键的,不小心就会导致数据库不可用。可以在配置文件中通过rename-command重命名或禁用这些命令。
零一积流|IT参考 原创文章,转载请注明出处: http://www.it-refer.com/2015/11/17/redis-security-config