欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis安全保障

程序员文章站 2022-07-14 19:06:52
...

1、可信的环境

 

Redis 的安全设计实在“Redis 运行在可信环境”这个前提下做出的。在生产环境运行时不能允许外界直接连接到 Redis 服务器上,而应该通过应用程序进行中转,运行在可信的环境中是保证 Redis 安全的重要方法。

 

Redis 的默认配置会接收来自任何地址发送来的请求,即在任何一个拥有公网 IP 的服务器上启动 Redis 服务器,都可以被外界直接访问到。要更改这一设置,在配置文件中修改 bind 参数,如只允许本机应用连接 Redis,可将 bind 参数改成:

 

bind 127.0.0.1

 

bind 参数只能绑定一个地址,如果想更*地设置访问规则需要通过防火墙来完成。

 

2、数据库密码

 

可以通过配置文件中的 requirepass 参数为 Redis 设置一个密码。如:requirepass password1234

 

客户端每次连接到 Redis 时都需要发送密码,否则 Redis 会拒绝执行客户端发来的命令。AUTH password1234

 

由于 Redis 性能极高,并且输入错误密码后 Redis 并不会进行主动延迟,所以攻击者可以通过穷举法破解 Redis 的密码(1秒内能够尝试十几万个密码),因此在设置时一定要选择复杂的密码。

 

配置 Redis 复制的时候如果主数据库设置了密码,需要在从数据库的配置文件中通过 masterauth 参数设置主数据库的密码,以使从数据库连接主数据库时自动使用 AUTH 命令认证。

 

3、命名命令

 

Redis支持在配置文件中将命令重命名,比如将FLASHALL命令重命名成一个比较复杂的名字,以保证只有自己的应用可以使用该命令。

 

rename-command FLASHALL abcdihetyqwpoxsa14adjy

 

如果希望直接禁用某个命令可以将命令重命名成空字符串:rename-command FLASHALL“ ”

 

无论设置密码还是重命名命令,都需要保证配置文件的安全性,否则就没有任何意义了。