Redis安全加固策略:服务账号管理 开启redis密码认证 开启防护模式

Redis安全加固策略:服务账号管理 & 开启redis密码认证 & 开启防护模式

    • 1.1 服务账号管理
      • 1.1.1 检测方法
      • 1.1.2 加固参考配置操作
    • 1.2 开启redis密码认证
      • 1.2.1 检测方法
      • 1.2.2 加固参考配置操作
    • 1.3 开启防护模式
      • 1.3.1 检测方法
      • 1.3.2 加固参考配置操作


💖The Begin💖点点关注,收藏不迷路💖

1.1 服务账号管理

在Redis安全加固策略中,服务账号管理是至关重要的一环。通过有效的服务账号管理,可以限制对Redis数据库的访问权限,降低潜在的安全风险。

为Redis数据库创建专门的服务账号,避免使用通用账号或管理员账号来访问数据库。这样可以降低被攻击的风险,同时也方便进行权限管理和审计。

1.1.1 检测方法

执行以下命令查看redis的启动用户:

ps -ef|grep redis-server|grep -v "grep"

判定依据: redis进程的启动用户不为root则合规,否则不合规。

检查点: redis服务进程运行账号。

如:
在这里插入图片描述

1.1.2 加固参考配置操作

1、停止redis数据库。

# 停止redis数据库

systemctl stop redis

2、创建一个专门用于运行Redis的普通账号(redis)。

# 创建普通账号,并设置密码
useradd redis

passwd redis

在这里插入图片描述

3、赋予普通账号redis的权限,将Redis相关文件夹的所有权更改为新创建的普通账号

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]模块添加以下内容:

[Service]

User=redis
Group=redis

在这里插入图片描述
5、重新加载服务单元文件

重新加载Redis的systemd服务单元文件,使更改生效:

systemctl daemon-reload

在这里插入图片描述

6、重启Redis服务

systemctl restart redis

在这里插入图片描述

通过以上步骤,你已经成功将Redis数据库从root用户更改为普通账号启动。这样可以提高系统的安全性,降低潜在的风险。请确保在执行这些步骤之前备份重要数据,并在操作过程中小心谨慎。

1.2 开启redis密码认证

开启Redis密码认证可以提供以下几个重要的作用和好处:

1、安全性增强: 通过设置密码认证,只有知道密码的用户才能连接到Redis数据库。这可以防止未经授权的访问和恶意攻击。

2、数据保护: 密码认证可以确保只有授权用户能够对Redis数据库进行读写操作,从而保护数据库中的数据免受未经授权的访问和篡改。

3、合规性要求: 在一些安全要求较高的环境中,如金融、医疗等行业,密码认证是符合合规性要求的基本措施之一。

4、防止资源滥用: 通过密码认证,可以防止未经授权的用户滥用Redis服务器资源,如执行大量查询或写入操作,从而影响服务器性能。

5、远程访问控制: 如果Redis服务器可以被远程访问,启用密码认证可以限制只有知道密码的用户才能连接到服务器,增加远程访问的安全性。

未开启密码认证时,命令不带密码可以直接连接到Redis。

redis-cli -h 127.0.0.1 -p 6379

在这里插入图片描述

1.2.1 检测方法

连接相关数据库,执行以下命令查看requirepass密码配置:

redis:6379>CONFIG GET requirepass

或者查看相关配置文件是否存在requirepass配置

判定依据:requirepass密码设置较为复杂则为合规,否则为不合规。

在这里插入图片描述

1.2.2 加固参考配置操作

首先,找到并编辑Redis的配置文件,通常为redis.conf。

1、备份配置文件

Linux:

cp  /usr/local/redis-7.0.9/redis.conf  /usr/local/redis-7.0.9/redis.conf.bak

Windows:

copy 【安装路径】\etc\redis.conf 【安装路径】\etc\redis.conf.bak

2、编辑配置文件添加认证密码

## 根据关键字requirepass检索,去掉前面的#注释,添加密码
requirepass 【password】

在这里插入图片描述

3、重新启动redis数据库,验证密码认证。

systemctl restart redis
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命令时未提供正确的认证信息。

使用密码进行认证效果:

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,修改配置文件添加以下内容:

protected-mod yes

在这里插入图片描述

2、根据修改后的配置文件,重新启动redis数据库。

systemctl restart redis

注:此项配置仅在3.2版本之后才可设置。

在这里插入图片描述


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图神经网络实战——基于DeepWalk创建节点表示

图神经网络实战——基于DeepWalk创建节点表示 0. 前言1. Word2Vec1.1 CBOW 与 skip-gram1.2 构建 skip-gram 模型1.3 skip-gram 模型1.4 实现 Word2Vec 模型 2. DeepWalk 和随机行走3. 实现 DeepWalk小结系列链接 0. 前言 DeepWalk 是机器学习 (machine learning, ML) 技术在图…

【NR 定位】3GPP NR Positioning 5G定位标准解读(三)

目录 前言 5 NG-RAN UE定位架构 5.1 架构 5.2 UE定位操作 5.3 NG-RAN定位操作 5.3.1 通用NG-RAN定位操作 5.3.2 OTDOA定位支持 5.3.3 广播辅助信息支持 5.3.4 NR RAT相关定位支持 5.4 NG-RAN中与UE定位相关的元素功能描述 5.4.1 用户设备(UE) …

寻址错题本

指令寻址 顺序寻址 通过程序计数器PC自动加1,形成下一条指令的指令地址。 跳跃寻址 通过转移类指令实现跳转到指定的代码段或者子程序。 数据寻址 直接寻址 形式地址A就是操作数的地址EA,执行阶段访问一次存储器。 所以当我们需要取得实际的值(操作数)的时候: 第一步:…

项目实战 MySQL读写分离【构建主从结构数据库(查从库)(增删改主库)】【ShardingJDBC实现读写分离】

项目实战 MySQL读写分离 1. MySQL主从复制1.1 介绍1.2 搭建1.2.1 准备工作1.2.3 从库配置 2. 读写分离案例2.2 ShardingJDBC介绍 转自-黑马 在前面基础功能实现的过程中,我们后台管理系统及移动端的用户,在进行数据访问时,都是直接操作数据库…

MYSQL---日志

1.日志的概述 日志是MySQL数据库的重要组成部分。日志文件中记录着MySQL数据库运行期间发生的变化;也就是说用来记录MySQL数据库的客户端连接状况、SQL语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因&#xff0…

自定义类型(结构体、枚举、联合体)内存大小的计算方法

内存对齐 为什么会存在内存对齐? 大部分参考资料是这么说的: 平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。性能原…

LeetCode---386周赛

题目列表 3046. 分割数组 3047. 求交集区域内的最大正方形面积 3048. 标记所有下标的最早秒数 I 3049. 标记所有下标的最早秒数 II 一、分割数组 这题简单的思维题,要想将数组分为两个数组,且分出的两个数组中数字不会重复,很显然一个数…

Apache Flink连载(三十七):Flink基于Kubernetes部署(7)-Kubernetes 集群搭建-2

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录

BUGKU 网站被黑

打开环境,什么都没发现,使用蚁剑扫描一下,发现shell.php,打开 使用BP抓包,进行爆破 得到密码:hack 进去得到flag

Vins-Moon配准运行

Vins-Moon运行 源码地址电脑配置环境配置编译适配Kitti数据集运行结果Euroc数据集kitti数据集 evo评估(KITTI数据)输出轨迹(tum格式)结果 源码地址 源码链接:https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git 电脑配置 Ubuntu 18.…

2024年不容错过的行业峰会盛宴,引领未来商业潮流!

随着全球经济的不断演变和科技的日新月异,行业峰会成为了企业领袖、创新者和投资者们洞察未来趋势、交流前沿思想的重要平台。 2024年,一系列引人瞩目的行业峰会即将拉开帷幕,它们将汇聚全球精英,共同探讨各行业的未来发展之路。…

ssm637教材管理系统

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1研究背…

day02-JavaScript-Vue

文章目录 1 JavaScript1.1 介绍 1.2 引入方式1.3 基础语法1.3.1 书写语法1.3.2 变量1.3.3 数据类型和运算符 1.4 函数1.4.1 第一种定义格式1.4.2 第二种定义格式 1.5 JavaScript对象1.5.1 基本对象1.5.1.1 Array对象语法格式特点属性和方法 1.5.1.2 String对象语法格式属性和方…

unity学习(45)——选择角色菜单——客户端处理服务器的数据

1.已知客户端ReceiveCallBack中已经收到来自服务器返回的数据包。 2.问题是客户端MessageManager中的Update并没有拆解该数据包 ,因该是因为脚本没有挂载。 挂在SelectMenu场景中的Camera上即可。 挂载后成功达到目地 其中Update中的List是一个起到全局效果的static…

[GYCTF2020]EasyThinking --不会编程的崽

看标题就知道,这大概率是关于thinkphp的题目。先尝试错误目录使其报错查看版本号 thinkphp v6.0.0,在网上搜索一下,这个版本有一个任意文件上传漏洞。参考以下文章。 https://blog.csdn.net/god_zzZ/article/details/104275241 先注册一个账…

【python】遵守 robots.txt 规则的数据爬虫程序

程序1 编写一个遵守 robots.txt 规则的数据爬虫程序涉及到多个步骤,包括请求网页、解析 robots.txt 文件、扫描网页内容、存储数据以及处理异常。由于编程语言众多,且每种语言编写爬虫程序的方式可能有所不同,以下将使用 Python 语言举例&am…

javascript中对包含关系判断介绍

本文将为您详细讲解 JavaScript 中对包含关系的判断,包括数组、字符串等,并提供相应的代码例子。 1. 数组包含关系判断 在 JavaScript 中,数组包含关系判断通常使用 Array.prototype.includes() 方法。这个方法返回一个布尔值,表示…

手撕经典数据结构——堆

堆的函数主要有,插入,删除,查看堆顶元素。 建堆主要依靠插入函数。 我们需要定义一个数组,int类型长度和int类型容量。 在操作过程中我们需要用到查看父亲节点函数,查看左孩子节点函数,查看右孩子节点函数和…

[GXYCTF2019]BabyUpload1 -- 题目分析与详解

目录 一、题目分析 1、判断题目类型: 2、上传不同类型的文件进行测试: 二、题目详解 1、写出.htaccess文件: 2、.htaccess 文件配合 .jpg 上传: 3、利用 中国蚁剑/中国菜刀 获取flag: 一、题目分析 1、判断题目…

2024.03.01作业

1. 基于UDP的TFTP文件传输 #include "test.h"#define SER_IP "192.168.1.104" #define SER_PORT 69 #define IP "192.168.191.128" #define PORT 9999enum mode {TFTP_READ 1,TFTP_WRITE 2,TFTP_DATA 3,TFTP_ACK 4,TFTP_ERR 5 };void get_…