Debian Redis安全策略制定指南
通过requirepass参数配置强密码(建议包含大小写字母、数字和特殊字符,长度≥12位),强制客户端连接时提供密码验证。例如:
requirepass Complex@Pass2024
修改后需重启Redis服务使配置生效:sudo systemctl restart redis-server。
通过bind指令指定Redis仅监听内网IP或特定IP地址,避免暴露在公网。例如:
bind 192.168.1.100 127.0.0.1
若需允许远程访问,需结合防火墙规则进一步限制访问源。
通过rename-command将高风险命令(如FLUSHALL、CONFIG、DEBUG)重命名为难以猜测的名称或直接禁用(设置为空字符串)。例如:
rename-command FLUSHALL ""
rename-command CONFIG secure_config
此操作可防止未授权用户执行破坏性操作。
使用ufw或firewalld配置防火墙,仅允许信任的IP地址访问Redis端口(默认6379)。例如,使用ufw允许特定IP:
sudo ufw allow from 192.168.1.100 to any port 6379/tcp
或设置默认拒绝策略(需提前放行必要端口):
sudo ufw default deny incoming
sudo ufw enable。
从Redis 6.0开始支持SSL/TLS加密,需提前安装OpenSSL并生成证书(可使用Redis自带的gen-test-certs.sh脚本),然后在redis.conf中配置:
tls-port 6379
tls-cert-file /path/to/cert.pem
tls-key-file /path/to/key.pem
tls-ca-cert-file /path/to/ca.crt
启用后,客户端需通过--tls参数连接Redis。
Redis 6.0+支持ACL,可为不同用户分配细粒度权限(如只读、读写、管理)。例如:
ACL SETUSER reader on >reader123 ~* +get +scan +pingACL SETUSER writer on >writer123 ~* +get +set +delACL LIST命令查看当前用户权限,确保最小权限原则。避免以root用户运行Redis,降低权限提升风险。操作步骤:
sudo adduser --system --no-create-home --group redissudo chown -R redis:redis /var/lib/redissudo chown redis:redis /var/log/redis/redis-server.logredis.conf中的supervised参数为systemd,并重启服务:supervised systemdsudo systemctl daemon-reloadsudo systemctl restart redis-server。修改Redis默认端口(6379)可减少自动化扫描攻击,降低被发现概率。在redis.conf中设置:
port 16379
修改后需同步更新防火墙规则,允许新端口访问。
保持Redis和Debian系统为最新版本,及时修复安全漏洞。使用以下命令更新:
sudo apt update && sudo apt upgrade -y
更新后重启Redis服务:sudo systemctl restart redis-server。
定期检查Redis日志(默认路径/var/log/redis/redis-server.log),识别异常连接或命令(如大量FLUSHALL、未授权访问尝试)。可通过tail命令实时查看:
sudo tail -f /var/log/redis/redis-server.log
或配置日志轮转(如logrotate)防止日志文件过大。
通过BGSAVE(异步)或SAVE(同步)命令定期备份Redis数据,存储到安全位置(如异地服务器、云存储)。例如:
redis-cli bgsave
备份文件默认存储在dir参数指定的目录(通常为/var/lib/redis),需确保备份文件权限正确:
sudo chown redis:redis /var/lib/redis/dump.rdb。