Redis安全加固策略:服务账号管理 & 开启redis密码认证 & 开启防护模式
-
- [1.1 服务账号管理](#1.1 服务账号管理)
-
- [1.1.1 检测方法](#1.1.1 检测方法)
- [1.1.2 加固参考配置操作](#1.1.2 加固参考配置操作)
- [1.2 开启redis密码认证](#1.2 开启redis密码认证)
-
- [1.2.1 检测方法](#1.2.1 检测方法)
- [1.2.2 加固参考配置操作](#1.2.2 加固参考配置操作)
- [1.3 开启防护模式](#1.3 开启防护模式)
-
- [1.3.1 检测方法](#1.3.1 检测方法)
- [1.3.2 加固参考配置操作](#1.3.2 加固参考配置操作)
|-----------------------------|
| 💖The Begin💖点点关注,收藏不迷路💖 |
1.1 服务账号管理
在Redis安全加固策略中,服务账号管理是至关重要的一环。通过有效的服务账号管理,可以限制对Redis数据库的访问权限,降低潜在的安全风险。
为Redis数据库创建专门的服务账号,避免使用通用账号或管理员账号来访问数据库。这样可以降低被攻击的风险,同时也方便进行权限管理和审计。
1.1.1 检测方法
执行以下命令查看redis的启动用户:
sql
ps -ef|grep redis-server|grep -v "grep"
判定依据:
redis进程的启动用户不为root则合规,否则不合规。
检查点:
redis服务进程运行账号。
如:
1.1.2 加固参考配置操作
1、停止redis数据库。
sql
# 停止redis数据库
systemctl stop redis
2、创建一个专门用于运行Redis的普通账号(redis)。
sql
# 创建普通账号,并设置密码
useradd redis
passwd redis

3、赋予普通账号redis的权限,将Redis相关文件夹的所有权更改为新创建的普通账号
sql
chown -R redis:redis /usr/local/bin/redis-*
chown -R redis:redis /var/lib/redis
chown -R redis:redis /var/log/redis/
chown -R redis:redis /usr/local/redis-7.0.9
注意:每个不同环境有关的文件可能不一样
,这里涉及的权限文件有:
1、/usr/local/bin/,下redis开头的文件:
这些文件是Redis数据库的一些常见可执行文件,每个文件的作用如下:
redis-benchmark: Redis性能测试工具,用于测试Redis服务器的性能。
redis-check-aof: 用于检查和修复Redis的AOF(Append-Only File)文件。
redis-check-rdb: 用于检查和修复Redis的RDB文件。
redis-cli: Redis的命令行客户端,用于与Redis服务器进行交互。
redis-sentinel: Redis的哨兵进程,用于监控和管理Redis主从复制和高可用性。
redis-server: Redis服务器进程,用于运行Redis数据库服务。
2、 数据存储目录 /var/lib/redis
3、日志文件目录 /var/log/redis/redis.log
4、配置文件目录:/usr/local/redis-7.0.9
4、root用户下更改Redis启动脚本
如果使用的是系统服务管理器(如systemd)来启动Redis,需要编辑对应的服务单元文件,将运行用户更改为新创建的普通账号。可以使用以下命令编辑Redis的systemd服务单元文件:
在[Service]模块添加以下内容:
sql
[Service]
User=redis
Group=redis

5、重新加载服务单元文件
重新加载Redis的systemd服务单元文件,使更改生效:
sql
systemctl daemon-reload

6、重启Redis服务
sql
systemctl restart redis

通过以上步骤,你已经成功将Redis数据库从root用户更改为普通账号启动。这样可以提高系统的安全性,降低潜在的风险。请确保在执行这些步骤之前备份重要数据,并在操作过程中小心谨慎。
1.2 开启redis密码认证
开启Redis密码认证可以提供以下几个重要的作用和好处:
1、安全性增强: 通过设置密码认证,只有知道密码的用户才能连接到Redis数据库。这可以防止未经授权的访问和恶意攻击。
2、数据保护: 密码认证可以确保只有授权用户能够对Redis数据库进行读写操作,从而保护数据库中的数据免受未经授权的访问和篡改。
3、合规性要求: 在一些安全要求较高的环境中,如金融、医疗等行业,密码认证是符合合规性要求的基本措施之一。
4、防止资源滥用: 通过密码认证,可以防止未经授权的用户滥用Redis服务器资源,如执行大量查询或写入操作,从而影响服务器性能。
5、远程访问控制: 如果Redis服务器可以被远程访问,启用密码认证可以限制只有知道密码的用户才能连接到服务器,增加远程访问的安全性。
未开启密码认证时,命令不带密码可以直接连接到Redis。
sql
redis-cli -h 127.0.0.1 -p 6379

1.2.1 检测方法
连接相关数据库,执行以下命令查看requirepass密码配置:
sql
redis:6379>CONFIG GET requirepass
或者查看相关配置文件是否存在requirepass配置
判定依据:requirepass密码设置较为复杂则为合规,否则为不合规。

1.2.2 加固参考配置操作
首先,找到并编辑Redis的配置文件,通常为redis.conf。
1、备份配置文件
Linux:
sql
cp /usr/local/redis-7.0.9/redis.conf /usr/local/redis-7.0.9/redis.conf.bak
Windows:
sql
copy 【安装路径】\etc\redis.conf 【安装路径】\etc\redis.conf.bak
2、编辑配置文件添加认证密码
sql
## 根据关键字requirepass检索,去掉前面的#注释,添加密码
requirepass 【password】

3、重新启动redis数据库,验证密码认证。
sql
systemctl restart redis
sql
redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> get k1
(error) NOAUTH Authentication required.
127.0.0.1:6379>

当再次不带密码连接时,出现了NOAUTH Authentication required错误,这是因为Redis服务器已经启用了密码认证,但在执行get k1命令时未提供正确的认证信息。
使用密码进行认证效果:
sql
redis-cli -h 127.0.0.1 -p 6379 -a 密码
[root@zyl-server ~]# redis-cli -h 127.0.0.1 -p 6379 -a Zyl##2024
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379>

1.3 开启防护模式
在Redis中,"protected mode"(防护模式)是一种安全特性,用于保护Redis实例免受未经授权的访问。
当Redis处于防护模式下时,只允许本地连接,而不允许外部网络连接。这有助于减少未经授权的访问和潜在的安全风险。
1.3.1 检测方法
1、查看配置文件或者连接数据库查询protected-mod参数是否设置为yes。
判定依据:
protected-mod参数设置为yes则为合规,否则为不合规。
1.3.2 加固参考配置操作
1、vi /usr/local/redis-7.0.9/redis.conf,修改配置文件添加以下内容:
sql
protected-mod yes

2、根据修改后的配置文件,重新启动redis数据库。
sql
systemctl restart redis
注:此项配置仅在3.2版本之后才可设置。

|---------------------------|
| 💖The End💖点点关注,收藏不迷路💖 |