redis未授权访问防护,设置密码

Redis未授权访问是服务器被入侵的高发原因之一。
默认配置下Redis不需要密码即可连接,如果6379端口直接暴露在公网,攻击者通过一条命令就能读写你的数据,甚至写入定时任务拿到服务器权限。
本文会从零开始,教你通过设置密码、绑定内网地址、关闭危险命令和防火墙规则四层防护,彻底解决这个问题。
整个过程不依赖图形界面,SSH登录服务器即可完成,适合所有Linux发行版。

加固前先确认现状

动手之前,先看看当前Redis是否处于裸奔状态。
登录服务器后执行下面两条命令:

ps -ef | grep redis
netstat -anp | grep 6379

第一条命令确认Redis进程存在,第二条命令查看6379端口监听情况。
如果第二行输出中有 0.0.0.0:6379 或 *:6379,说明Redis正在监听所有网卡,公网IP可以直接访问,这就是典型的未授权访问风险。

第一步:修改Redis配置文件设置密码

Redis的配置文件通常位于 /etc/redis/redis.conf,或 /etc/redis.conf。
使用 vim 打开:

vim /etc/redis/redis.conf

找到被注释掉的 # requirepass foobared 这一行,按 i 进入编辑模式,去掉 # 并把默认值改成一个强密码:

requirepass 这里改成你的强密码

密码建议使用字母、数字、特殊符号混合,长度超过16位。
改完后保存退出(Esc,输入 :wq)。

同时把监听地址改为只允许本机和内网访问,找到 bind 行,改成:

bind 127.0.0.1 内网IP

如果你不确定内网IP,可以先用 ip addr 命令查看。
如果只有一个网卡且不想有外网访问风险,直接写成 bind 127.0.0.1 最安全。
改完后重启Redis:

systemctl restart redis

重启后执行 systemctl status redis 确认启动正常。

第二步:用防火墙禁止外网访问6379端口

即使Redis配置了密码,也建议从网络层拦掉外网访问。
下面以 iptables 和 firewalld 为例。

CentOS / RHEL 使用 firewalld:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="内网IP" port port="6379" protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="6379" protocol="tcp" reject'
firewall-cmd --reload

上面第一条放行你的内网IP,第二条拒绝其他所有来源访问6379。
注意两条规则有顺序,先放行后拒绝。

Ubuntu / Debian 使用 ufw:

ufw allow from 内网IP to any port 6379 proto tcp
ufw deny 6379/tcp
ufw reload

如果服务器使用云厂商安全组,还需要登录云控制台,在安全组规则里删除或拒绝 0.0.0.0/0 对6379端口的入方向放行,只保留内网来源IP。

第三步:禁用危险命令和重命名高危指令

即使有密码,也建议关闭或重命名 FLUSHALL、CONFIG、EVAL 这类高危命令,防止密码泄露后数据被一键清空或配置被篡改。
在配置文件末尾追加:

rename-command CONFIG ""
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command EVAL ""

如果业务确实需要这些命令,可以把空引号改成自定义的名字,例如 rename-command FLUSHALL "mkredisflush",这样只有你知道。
修改后再次重启Redis。

常见疑问:未授权访问是怎么发生的

很多人以为Redis装在服务器上就安全,实际漏洞往往出在两点:一是Redis默认绑定 0.0.0.0,公网IP能直达;
二是配置文件里没有设置密码,老版本Redis甚至没有默认认证。
攻击者用 redis-cli -h 你的IP -p 6379 ping 检测,返回 PONG 就直接进来了。
所以上面三步缺一不可:密码保证认证,绑定内网缩小暴露面,防火墙兜底网络层。

验证加固效果

设置完后必须实际验证,不能只看配置。
先在本机测试密码认证:

redis-cli -h 127.0.0.1 -p 6379 ping

如果输出 NOAUTH Authentication required.,说明密码已生效。
带密码连接:

redis-cli -h 127.0.0.1 -p 6379 -a 你设置的密码 ping

输出 PONG 就代表认证通过。

再检查端口监听状态:

netstat -anp | grep 6379

确认监听地址里没有 0.0.0.0:6379。
最后,拿着你的公网IP加上6379端口,用一个在线端口扫描工具或在自己的另一台电脑上执行 telnet 你的公网IP 6379,如果连接超时或提示拒绝,说明外网访问已被阻断。

最容易踩的几个坑

修改配置后忘记重启Redis。 配置不会自动生效,重启前先执行 redis-cli -a 密码 ping 确认当前状态,再 systemctl restart redis。

bind 127.0.0.1 后本机连接正常,但内网其他机器连不上。 这是正常现象,因为Redis只监听了本机地址。
如果业务方需要从内网其他服务器访问,必须把 bind 改成服务器内网IP,并且防火墙放行该IP地址。

宝塔面板用户修改配置后重启失败。 宝塔的Redis配置文件在 /www/server/redis/redis.conf,
并且面板有“是否启用密码保护”开关,
建议先用面板关闭保护再改配置文件,
避免权限冲突。

如果你正在处理Redis未授权访问防护、设置密码或禁止外网访问6379端口的问题,建议先完整执行本文前两步,再用第三步加固危险命令。
排查异常时优先检查配置文件和防火墙规则,Redis重启失败通常和 bind 或 rename-command 语法有关,回看一下这两处就能快速定位。

分享到:
上一篇
API接口返回详细错误堆栈给公网,泄露代码路径信息关闭
下一篇
虚拟化平台Proxmox VE web管理口安全加固
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意