redis安全相关设置

作者 : 开心源码 本文共2008个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共140人阅读

安全是任何生产环境最基本的问题之一。然而,由于Redis的设计思想是它将部署在所有用户端都可信的环境中,所以其本身在安全方面只提供了非常有限的功可以。Redis最初的设计思想更侧重于优化极限性可以和简洁性,而没有考虑支持完整的身份验证和访问控制。尽管Redis安全大部分依赖于Redis之外(操作系统,防火墙等)的机制,但我们依然能做少量工作来保护Redis服务器免受非法的访问和攻击。

常见安全设置

接下来,我们看看如何通过恰当的网络配置来加固Redis。由于公网上任何不受信任的用户端都能访问,所以将Redis生产服务暴露在公网上是不明智的。因而,我们必需配置Redis绑定到属于受信网络中的IP地址上,具体步骤如下所示:

1、 修改配置文件中的bind和port来升级绑定的IP地址和端口:

bind 127.0.0.1 192.168.0.3

port 36379

2、 升级主从配置和Sentinel配置中的相应参数:

slaveof 192.168.0.3 36379

sentinel monitor mymaster 192.168.0.3 36379

此外,我们还能让Redis不监听任何网络接口,而监听Unix域套接字。这样,只有拥有套接字访问权限的本地用户端才能访问Redis。

1、 在配置文件中设置unixsocket和unixsocketperm参数,而后将port设为0,使redis只监听套接字:

port 0

unixsocket /var/run/redis/redis.sock

unixsocketperm 766

2、 能用redis-cli –s 连接到监听在unix套接字上的redis服务器:

redis-cli –s /var/run/redis/redis.sock

redis /var/run/redis/redis.sock

通过密码验证来保护redis通常是一个良好的实践。Redis提供了一个非常简单的验证机制来防止未经受权的访问。我们能给整个redis服务器设置一个密码,让所有用户端在通过密码进行身份验证后才可以执行命令。

1、 要设置redis服务器的密码,只要在配置文件的requirepass部分中增加明文密码就可:

requirepass foobared

2、 要访问一个启使用了身份验证的redis服务器,需要用auth命令:

redis-cli

auth foobared

3、 假如redis服务器启使用了主从复制,则需要将主实例的密码增加到所有从实例的配置文件中:

masterauth foobared

redis还支持将某些命令重命名。假如我们将某些诸如config或者flushdb的危险命令重命名为难猜测的名称,那么用户端将几乎不可可以执行这些命令。假如需要更高的安全性,我们也能将这些命令完全禁使用。

1、 要重命名命令,在redis的配置文件中增加rename-command参数就可:

rename-command config fdsfdsfdsf3r2fd3fsewdfdsf

2、 要完全禁使用某个命令,只要要将其重命名为空字符串就可:

Rename-command config “”

工作原理

为了加强redis的安全性,我们看了三个配置项。如前所述,强烈建议不要向公网暴露redis。假如redis服务器不得不通过公网访问,那么用一个不同于默认端口6379的端口号可以够稍微降低端口扫描带来的风险。

Redis的身份验证密码以明文保存在配置文件中。因而,我们应该严格设置redis配置文件的访问权限,以防止非管理员访问。此外,由于服务器和用户端之间的通信是未加密的,所以auth命令中的密码可可以会被嗅探器嗅探到,故而redis的密码机制应该被认为是最后一道防线。

Redis主实例中的密码选项不会被从实例继承,因而我们必需分别为从实例设置密码。即便服务器已被攻破的情况下,重命名或者禁使用危险命令也能在肯定程度上组织高风险的操作。但是,因为重命名的配置也保存在redis的配置文件中,所以必需用严格的访问权限来保护配置文件。

Redis保护模式

Redis保护模式能在配置文件中设置protected-mode yes来启使用。假如redis服务器启使用了保护模式,且同时被配置为监听所有接口(在配置文件中没有bind参数),且禁使用了密码验证,那么redis只会响应来自本地回环接口和unix套接字的查询;来自其它接口的查询会被拒绝。

保护模式在默认情况下是启使用的,除非redis必需监听所有接口且网络环境是安全的,否则即便禁使用了密码验证也不应禁使用保护模式。在操作系统中,我们能采使用其余的预防措施来保护redis。一种措施是,不适使用root权限的使用户运行redis而用有权限的专门使用户来运行redis。同时,这个使用户应该在ssh登录中禁使用。另一种措施是,在操作系统的防火墙中设置白名单,只允许受新人的IP地址访问redis。

redis安全相关设置

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » redis安全相关设置

发表回复