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的安全性,防范常見的未授權訪問、數據泄露等風險。