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

news2024/11/18 15:30:43

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💖点点关注,收藏不迷路💖

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

静态时序分析:SDC约束命令set_case_analysis详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 目录 指定值 指定端口/引脚列表 简单使用 set_case_analysis命令用于对电路进行特定模式的设定,例如对于一个工作在正常模式下的芯片,…

Springboot 项目读取yaml的配置文件信息给静态方法使用,以及通过配置 ResourceBundle 类读取config.properties

读取yaml 的配置文件 配置文件信息 iot_saas_tenement:user_id: 7........8d9bprivate_key: MII.......qQbj_url: http://4.....5:8088project_name: iot_s.......rojectdevice_name: te.....ice 创建一个类 ProxyProperties 读取配置文件信息,并对外提供get方法 …

零基础如何快速入门伦敦金交易

伦敦金交易是金融市场中备受关注的一种投资方式。对于想要学习如何炒伦敦金并快速开始交易的人来说,本文将为您提供一份全面而详细的指南。无论您是初学者还是有经验的交易者,本文都将帮助您了解伦敦金交易的基本知识,并提供一些实用的技巧和…

linux环境安装cuda toolkit

1 全新安装 如果环境中没安装过cuda版本, 这种情况下比较简单。 直接在https://developer.nvidia.com/cuda-toolkit-archive选择对应版本下载安装即可。 如下为安装cuda toolkit 11.8. 2 环境中已经存在其他版本 这种情况下比较复杂一些。 首先要确认最高支持的…

Grid-Based Continuous Normal Representation for Anomaly Detection 论文阅读

Grid-Based Continuous Normal Representation for Anomaly Detection 论文阅读 摘要简介方法3.1 Normal Representation3.2 Feature Refinement3.3 Training and Inference 4 实验结果5 总结 文章信息: 原文链接:https://arxiv.org/abs/2402.18293 源码…

06 OpenCV增加图像的对比度

文章目录 理论API代码 理论 图像变换可以看作如下&#xff1a; 像素变换 – 点操作邻域操作 – 区域 调整图像亮度和对比度属于像素变换-点操作 API saturate_cast(value)确保值大小范围为0~255之间Mat.at(y,x)[index]value 给每个像素点每个通道赋值 代码 #include <…

学习:吴恩达:什么是神经元?神经网络如何工作?

学习-吴恩达《AI for everyone》2019 深度学习非技术解释 第2部分 可选.zh_哔哩哔哩_bilibili 深度学习Deep learning 人工神经网络Artificial Neural network 什么是神经网络&#xff1f; 只有一个神经元 4个神经元的神经网络 神经网路的绝妙之处 神经网路的绝妙之处就在…

matplotlib从起点出发(14)_Tutorial_imshow_origin_extent

0 总述 imshow()允许你将图像&#xff08;将进行颜色映射——基于norm和cmap——的2D数组或将按原样使用的3D RGB(A)的数组&#xff09;渲染到数据空间中的矩形区域。最终渲染中图像的方向由原点和范围关键字参数&#xff08;以及生成的AxesImage实例上的属性&#xff09;和Ax…

GVIM常见命令

一、模式之间的切换 二、退出保存 &#xff1a;q 不保存就退出vim &#xff1a;w 保存但不退出vim &#xff1a;wq 保存并退出vim 三、打开侧边栏 如下所示&#xff1a; 在命令模式下输入vt打开侧边栏目录&#xff0c;输入r更新目录 四、光标的移动 不仅是括号&#xff0c;b…

19. 学习人工智能如何从阅读论文中获取一手信息,并推荐一些技术论文

本文为 「茶桁的 AI 秘籍 - BI 篇 第 19 篇」 文章目录 Hi&#xff0c;你好。我是茶桁。 上节课给大家预告了&#xff0c;今天这节课咱们来看一篇论文。我们之前几节课中讲解的内容其实是在一些论文里面有使用到的。 我们先看一下论文的内容&#xff0c;讲讲 ALS。 就像我上节…

力扣34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)

Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 题目描述思路复杂度Code 题目描述 思路 Problem: 二分查找常用解题模板&#xff08;带一道leetcode题目&#xff09; 直接套用上述中的寻找左、右边界的二分查找模板即可 复杂度 时间复杂度: O ( l o g n )…

Shellcode ---> 脚本命令入门

今天来浅讲一下shellcode&#xff0c;开始之前&#xff0c;先来乐一乐&#xff0c;哈哈哈哈哈哈哈哈哈哈哈哈 以下的命令你们都别乱用 &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01…

if-else if-else 语句

if-else if -else语句 定义&#xff1a;是多条件分支语句&#xff0c;即根据多个条件来控制程 序执行的流程。 语法格式&#xff1a; if (表达式) { 若干语句 } else if (表达式) { 若干语句 } … … else { 若干语句 }

云轴科技ZStack与华东师范大学共建产教融合基地

近日&#xff0c;上海云轴信息科技有限公司&#xff08;云轴科技ZStack&#xff09;与华东师范大学上海国际首席技术官学院宣布&#xff0c;共同打造产教融合基地&#xff0c;以促进人才培养与产业需求的全方位融合。这一举措旨在深化教育与产业的合作关系&#xff0c;培养更多…

【Ansys Fluent Web 】全新用户界面支持访问大规模多GPU CFD仿真

基于Web的技术将释放云计算的强大功能&#xff0c;加速CFD仿真&#xff0c;从而减少对硬件资源的依赖。 主要亮点 ✔ 使用Ansys Fluent Web用户界面™&#xff08;UI&#xff09;&#xff0c;用户可通过任何设备与云端运行的仿真进行远程交互 ✔ 该界面通过利用多GPU和云计算功…

Unity AI生成全景图制作天空盒

现在的AI很强大。 其中&#xff0c;有这样一个网站&#xff0c;通过输入提示词&#xff0c;选择某种风格就可以为你生成360全景图。 网页链接 一、生成全景图 打开网页后&#xff0c;如图&#xff1a; 勾选&#xff0c;点击CONFIRM。 点击GET STARTED&#xff0c;进入主页。…

JavaScript 基本数据类型的详解

JavaScript的基本数据类型 以下都是JS内置的几种类型 数据类型描述number数字&#xff0c;不区分整数和小数string字符串类型booleantrue 真, false 假undefined表示未定义的值null只有唯一的值 null&#xff0c;表示空值 number 数字类型 JavaScript 中不区分整数和浮点数&…

使用mysqld --install命令时出现MSVCR120.dll文件丢失错误

Visual C 2013 and Visual C Redistributable Package https://support.microsoft.com/en-us/help/3179560/update-for-visual-c-2013-and-visual-c-redistributable-package 进去之后先找到自己的版本&#xff0c;x64还是x86&#xff0c;下载 vcredit &#xff0c;进行安装即…

Sora核心之一:可变时长、分辨率、尺寸

Overview 一、总览二、摘要三、引言四、方法4.1、架构改动4.2、训练改变4.3、NaViT的效率 NaViT 一、总览 题目: Patch n’ Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution 机构&#xff1a;Google DeepMind 论文: https://arxiv.org/pdf/2307.06304…

AG32 MCU 如何进入低功耗模式

默认情况下&#xff0c;微控制器(MCU)在系统复位或电源复位后处于运行模式。当CPU不需要持续运行时&#xff0c;可以使用几种低功耗模式来节省功耗。这是由用户选择的模式&#xff0c;给出了低功耗&#xff0c;短启动时间和可用的唤醒源之间的最佳妥协。 AG32VF 系列MCU具有以下…