redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证。
1、初始化Redis密码:
在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数;比如:
Ps:需重启Redis才能生效
redis的查询速度是非常快的,外部用户一秒内可以尝试多达150K个密码;所以密码要尽量长(对于DBA没有必要必须记住密码);
2、不重启Redis设置密码:
查询密码(为什么查不到,因为命令行设置以后需要登陆一次):
密码验证:
再次查询:
PS:如果配置文件中没添加密码 那么redis重启后,密码失效;
3、登陆有密码的Redis:
在登录的时候的时候输入密码:
先登陆后验证:
auth命令跟其他redis命令一样,是没有加密的;阻止不了攻击者在网络上窃取你的密码;
最后
redis加一个密码访问是为了提供多一层的保护。如果防火墙或者用来保护redis的系统防御外部攻击失败的话,外部用户如果没有通过密码认证还是无法访问redis的。
同时有一个字段是bind,作用是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址),而不是redis允许来自其他计算机的IP地址。
比如:
附注:
bind 127.0.0.1的解释:(为什么只有本机可以连接,而其他不可以连接)
我们从ifconfig可以看出:lo网卡(对应127.0.0.1IP地址):是一个回环地址(Local Loopback),也就是只有本地才能访问到这个回环地址,而其他的计算机也只能访问他们自己的回环地址。
那么来自这个lo网卡的计算机只有本机,所以只有本机可以访问,而其他计算机不能访问。
bind 172.18.235.206的话,只要通过这个网卡地址(172.18.235.206)来的Redis请求,都可以访问redis。
总结
添加密码
查询密码
登陆访问
PS:其他用到redis的服务在配置了redis密码以后需要添加密码配置,然后重启。
引用