Redis是一个开源的高性能内存数据库,常用于缓存,消息中间件等应用场景。由于Redis本身没有认证授权机制,因此如果网络服务不受保护,就会受到攻击。本文从以下几个方面讲述了如何防止Redis被攻击:
一、禁止外部连接
在Redis配置文件中,我们可以禁止外部的网络访问,修改bind 127.0.0.1来只允许本机访问,同时禁止外部访问端口号。
# 找到redis.conf文件
$ vim /etc/redis/redis.conf
# 进行编辑
bind 127.0.0.1
# port 6379 # 禁止外部访问
二、设置密码
设置Redis的密码非常重要,可以使用requirepass配置选项来设置,例如:
# 找到redis.conf文件
$ vim /etc/redis/redis.conf
# 进行编辑
requirepass yourpassword
注意:在设置密码之后,需要每次启动Redis时,都要用命令行输入AUTH来认证。
三、防止暴力破解
Redis也支持设置密码最大重试次数,通过maxclients来防止暴力破解,可以通过以下配置来控制:
$ vim /etc/redis/redis.conf
# 禁止一分钟内超过50次的认证错误
maxclients 50
四、使用一个非标准的端口
Redis使用默认的6379端口进行连接,因此可以考虑改用其他的端口号,来降低攻击者对Redis服务的侦测成功率。
# 找到redis.conf文件
$ vim /etc/redis/redis.conf
# 改用端口 6380
port 6380
五、使用防火墙
防火墙可以让Redis受到外部访问的保护,过滤掉一些不需要的服务请求,例如:
# 打开防火墙
# Centos7
systemctl start firewalld
# 防火墙开放端口6380
firewall-cmd –zone=public –add-port=6380/tcp –permanent
# 重启防火墙
systemctl restart firewalld
以上,就是本文讲的关于如何防止Redis服务被攻击的几个常见方法,通过禁止外部访问,设置密码,限制密码重试次数,使用非标准端口,以及使用防火墙等措施,有助于提高Redis服务的安全性。