设置 Redis 安全连接的介绍(redis密码设置密码)
Redis 是一款基于内存的高性能键值数据库,能够实现高性能读写,特别是在短时间内数据量大,访问量少情况。网络通信安全一直是Redis的重要安全要素之一,在生产部署过程中,如果不用采取特别的安全措施,攻击者很有可能通过网络攻击的方式攻破Redis的防护,获取重要数据。因此,设置 Redis 安全连接尤其重要。
一般采用两种措施来保证Redis网络连接的安全性:不进行明文传输的加密手段和IP地址限制,来限制客户端访问Redis服务。
首先提出的是采取TLS安全传输层,也就是SSL/TLS来解决Redis的网络安全问题;其次是利用iptables工具,来限制指定IP访问Redis服务。
1. TLS安全传输层:采用TLS安全传输层来解决Redis网络安全问题,客户端和服务端之间可以安全传输,可以通过ssl-cert help.sh脚本来生成SSL Ca证书,再增加参数在redis.conf中配置,如下:
tls-port 6380 // 这个参数如果这个端口已经被占用,改成另外的端口即可
tls-cert-file /etc/redis/ssl/redis-ca.crt
tls-key-file /etc/redis/ssl/redis-ca.pem
tls-ca-cert-file /etc/redis/ssl/ca.crt
2. IP地址限制:使用DenyHosts和IPTABLES来限制客户端访问Redis服务,有两种方式可以禁止其他IP地址访问Redis:
a) 使用DenyHosts工具,采用允许访问IP列表的方式,可以把指定IP封禁一段时间,但是该工具在 Redis 6.0 以前的版本中只支持白名单且要以root权限运行;
b) 采用iptables 工具,Linux系统上安装了iptables工具,可以设置允许服务端接收的源IP,让其他的IP地址都不让访问,写法如下:
iptables -A INPUT -s 192.168.0.0/24 -p tcp –dport 6379 -j ACCEPT // 允许192.168.0.0/24来允许访问Redis服务
iptables -A INPUT -p tcp -s 0/0 –dport 6379 -j DROP // 禁止其他所有IP访问Redis服务
上述是Redis安全连接的两种场景,TLS安全传输层可以保证客户端与服务端之间的安全传输,IP 地址限制可以控制指定IP访问 Redis。实施Redis安全连接后,可以很好的防止攻击获取Redis中的数据,达到对Redis的网络安全防护。