首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

redis-保护好redis服务器,做好必要的安全设置

0x00 前言

运维不是维护好服务就好,更应该注意安全。

0x01 限制内网访问,或者只限制本机访问

只监听内网的IP,然后在iptables里面限制访问的主机:

在/etc/redis/redis.conf中配置如下:

bind 192.168.12.100

如果服务只需要本机访问就直接监听127.0.0.1的回环地址就可以了。

0x02 设置防火墙

如果需要其他机器访问,或者设置了slave模式,那就记得加上相应的防火墙设置,命令如下:

iptables -A INPUT -s 192.168.12.10/32 -p tcp --dport 6379 -j ACCEPT

0x03 禁止root用户启动redis

使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。edis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的。

useradd -s /sbin/nolog -M redis

setsid sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf # 使用root切换到redis用户启动服务

0x04 限制redis文件目录访问权限

设置redis的主目录权限为700,如果redis配置文件独立于redis主目录,权限修过为600,因为redis密码明文存储在配置文件中。

0x05 避免使用熟知的端口,降低被初级扫描的风险

在/etc/redis/redis.conf中配置如下:

找到port 6379这行,把6379改为9999,记得iptables对应的端口要修改

0x06 开启redis密码认证,并设置高复杂度密码

redis在redis.conf配置文件中,设置配置项requirepass, 开户密码认证。

redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为攻击者暴破。

0x07 禁用或者重命名危险命令

edis crackit漏洞就利用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_des327c4dee7dfsf

rename-command SHUTDOWN SHUTDOWN_des327c4dee7dfsf

rename-command FLUSHDB ""

rename-command FLUSHALL ""

上述配置将config,flushdb,flushall设置为了空,即禁用该命令,我们也可以命名为一些攻击者难以猜测,我们自己却容易记住的的名字。保存之后,执行/etc/init.d/redis-server restart 重启生效。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180207A1E22Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券