Redis安全规范----checklist-创新互联
Redis安全规范—-check list.
创新互联建站成立于2013年,我们提供高端重庆网站建设、网站制作、网站设计、网站定制、成都全网营销推广、微信平台小程序开发、微信公众号开发、seo优化排名服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都火锅店设计企业提供源源不断的流量和订单咨询。1.信任的内网运行,尽量避免有公网访问
在/etc/redis/redis.conf中配置如下: bind 127.0.0.1
2.绑定redis监听的网络接口
如果服务器有多个IP,可限定redis server监听的IP,通过redis配置项bind,可同时绑定多个IP
3.设置防火墙
如果需要其他机器访问,或者设置了slave模式,那就记得加上相应的防火墙设置,命令如下:
iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT
4.禁止root用户启动redis
设置一个单独的redis账户很有必要,redis crackit就利用到了root用户的特性来重置authorized_keys。首先创建一个redis账户,然后通过该账户启动。
setsid sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf
启动之后应该如下:
root@kali:~# ps -elf|grep redis 1 S redis 14720 1 0 80 0 - 8979 - 08:40 ? 00:00:00 /usr/bin/redis-server /etc/redis/redis.conf` `
5.限制redis文件目录访问权限
设置redis的主目录权限为700,如果redis配置文件独立于redis主目录,权限修过为600,因为redis密码明文存储在配置文件中.
6.避免使用熟知的端口,降低被初级扫描的风险
在/etc/redis/redis.conf中配置如下
找到port 6379这行,把6379改为8888
7.开启redis密码认证,并设置高复杂度密码
redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。
redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为***者暴破。
root@kali:~# redis-cli -h 192.168.10.2 redis 192.168.10.2:6379> keys * (error) ERR operation not permitted redis 192.168.10.2:6379> auth @nsF0cus!@# OK
root@kali:~# echo -e "xxlegend"|sha256sum b59869cac63a67e7ee97e6923a75811ff58bd4936ed3be3480b46145d43ae335`
8.禁用或者重命名危险命令
这个漏洞就利用config/save两个命令完成*** 。 因redis无用户权限限制,建议危险的命令,使用rename配置项进行禁用或重命名,这样外部不了解重命名规则***者,就不能执行这类命令。涉及到的命令:
FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME, DEBUG, EVAL`
以下示例:redis.config文件禁用FLUSHDB、FLUSHALL两个命令;重命名CONFIG、SHUTDOWN命令,添加一个特殊的后缀。 这样redis启动后,只能运行CONFIG_b9fc8327c4dee7命令,不能执行CONFIG命令。
rename-command CONFIG CONFIG_b9fc8327c4dee7 rename-command SHUTDOWN SHUTDOWN_b9fc8327c4dee7 rename-command FLUSHDB “” rename-command FLUSHALL “”
上述配置将config,flushdb,flushall设置为了空,即禁用该命令,我们也可以命名为一些***者难以猜测,我们自己却容易记住的的名字。保存之后,执行/etc/init.d/redis-server restart 重启生效。
9.禁止redis中存储敏感的明文数据
Redis设计旨在提供高性能的KV服务,至少目前在权限访问控制和数据持久化方面比较弱化。所以禁止在Redis中存储或缓存敏感的明文数据
10.安全监控
建立蜜罐网络,有***尝试时,可及时发现
监控redis安全状态,cmdstat_auth cmdstat_flushdb/flushall监控报警
题外话:
redis cluster不支持密码问题
redis 原生cluster模式最新3.2版本都不支持开启密码认证,导致内网使用只能无密码,只能通过前面其他安全设置来保证内网redis cluster的安全性
针对之前redis版本,默认无bind和密码设置存在很大安全风险,redis 3.2版本提出新特性protected mode,如果redis在启动时,未开启bind和密码设置,只能通过本地回环地址本地访问,如果尝试远程访问redis,会提示一下信息:
DENIED Redis is running protected mode because protected mode is enabled,
no bind address was specified, no authentication password is requested to clients.
In this mode connections are only accepted from the loopback interface.
当然也可直接执行CONFIG SET protected mode no关闭保护模式
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:Redis安全规范----checklist-创新互联
文章地址:http://azwzsj.com/article/dgigdg.html