Ubuntu Redis安全配置指南
在开始安全配置前,需完成以下前置操作:
sudo apt update && sudo apt upgrade -y
sudo apt install redis-server -y
/etc/redis/redis.conf),修改bind参数:
bind 127.0.0.1
192.168.1.100),而非0.0.0.0(完全开放):bind 127.0.0.1 192.168.1.100
sudo ufw allow from 10.0.0.5 to any port 6379 proto tcp # 允许指定IP
sudo ufw deny in to any port 6379 proto tcp # 拒绝其他IP
redis.conf中找到requirepass参数,取消注释并设置强密码(包含大小写字母、数字、特殊字符,长度≥12位):requirepass sTr0ng@RedisP@ss2025!
foobared)或弱密码(如123456)。sudo systemctl restart redis-server
redis-cli -h 127.0.0.1 -p 6379
AUTH sTr0ng@RedisP@ss2025!
yes),禁止非本地连接:protected-mode yes
bind(绑定可信IP)和防火墙使用,而非关闭保护模式。redis.conf中注释或关闭相关参数:# save 900 1 # 关闭RDB快照
# appendonly no # 关闭AOF日志
redis.conf中设置maxclients参数,限制最大连接数(如10000):maxclients 10000
sudo useradd -r -s /bin/false redis
sudo mkdir -p /var/lib/redis
sudo chown redis:redis /var/lib/redis
sudo chmod 750 /var/lib/redis
user redis
sudo systemctl restart redis-server
redis.conf中修改port参数(如16379),并更新防火墙规则:port 16379
sudo ufw allow 16379/tcp
ufw(Uncomplicated Firewall),操作简便。sudo ufw allow 6379/tcp
sudo ufw enable
sudo ufw status verbose
requirepass,实现更细粒度的权限控制(如读、写、管理命令权限)。redis.conf中启用ACL并配置用户权限:aclfile /etc/redis/users.acl
/etc/redis/users.acl文件,定义用户及权限(示例):user admin on >AdminPass123 ~* +@all # 管理员用户,拥有所有权限
user app_user on >AppPass456 ~cache:* +get +set # 应用用户,仅能访问cache:*键,支持get/set
sudo systemctl restart redis-server
redis-cli -h 127.0.0.1 -p 6379
AUTH admin AdminPass123
检查Redis服务状态:
sudo systemctl status redis-server
(状态应为active (running))
测试密码认证:
redis-cli
AUTH sTr0ng@RedisP@ss2025!
SET test_key "Hello Redis"
GET test_key
(应返回"Hello Redis")
测试IP访问限制:
10.0.0.10)尝试连接,应收到Connection refused错误。journalctl -u redis-server或/var/log/redis/redis-server.log查看异常连接或操作。/var/lib/redis),防止数据丢失。redis.conf中重命名或禁用高危命令(如FLUSHALL、CONFIG):rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG"
通过以上配置,可显著提升Ubuntu环境下Redis的安全性,防范常见的未授权访问、数据泄露等风险。