iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >Redis数据库安全详解
  • 875
分享到

Redis数据库安全详解

2024-04-02 19:04:59 875人浏览 泡泡鱼
摘要

目录前言开放最小化很重要认证不可少防止管理员误操作也很重要担心网络被监听? 开启TLS之旅吧总结前言 本篇文章基于的Redis 的环境为: redis_version:7.0.5 文档内容均为学习Redis 官方文档心得

前言

本篇文章基于的Redis 的环境为: redis_version:7.0.5

文档内容均为学习Redis 官方文档心得.

Redis相信大家都或多或少都听说过吧,作为内存数据库的代表, 但是近些年Redis 被攻击的典范也是越来越多,我们将如何防护Redis 安全呢? 跟着我们的脚本,来看看这篇文章吧.

对于Redis而言,我们设置的方法大概有以下几种

  • 通过redis.conf 设置。
  • 在已经启动的Redis 中使用CONFIG SET 来设置。

如之前所述,安全方面归根结底,总结一句话就是:最好的安全设置就是最小化权限。

那我们来看下,Redis 有哪些安全设置呢?

开放最小化很重要

作为Redis 服务器而言, 应该仅允许受信任的客户端访问,其他访问都应该拒绝,因此也善用防火墙相当重要,当然这个防火墙不是在Redis 是做不了的,应该在Redis 所属的机器进行设置。

若该Redis 是自建于本地实体机中,那么应该考虑防火墙软件,例如: iptablesfirewalld 等。若是存在于各云厂商实例中(ECS ),那么应该善用云厂商提供的防火墙。

那我们Redis 在这一步就什么也不能做了么? 不是的,在Redis 配置中,有一个配置参数为bind ,该参数选项是将Redis对相应的网卡监听,若配置如下:

bind 127.0.0.1

则监听在本地的回环地址上,若该值为空,则监听所有的网卡(3.2版本提供的功能)。

若想监听在多个网卡上的话,ip 地址直接可以使用空格分开即可,例如:

bind 127.0.0.1 10.0.2.15

则该配置则是监听到127.0.0.1 以及 10.0.2.15 网卡上。

在已经启动的Redis 中,想查看Redis 监听到哪些网卡上,除了查看所属机器的网路状态外,还可以通过CONFIG GET bind 来获取。

除此之外,Redis还为我们提供了"保护模式",即配置: protected-mode ,默认为yes 。请不要关闭它,因为它能够检测到启动后的Redis 是否安全,其检测策略为:当Redis 没有设置密码的时候,从外部进行访问,这就会触发它的保护模式,即向访问用户提示信息:

Redis is running in protected mode because protected mode is enabled and no passWord is set for the default user.

当然网上很多博客提供的最快解决如上问题的方法是关闭其保护模式,请不要这么做.

认证不可少

接上一段落,若Redis 想从外部进行访问,除了关闭保护模式以外,还可以设置Redis 密码. 在Redis 中,通过配置requirepass 来设置密码,不过设置密码应当注意一下,Redis 密码不应该设置为若密码,建议设置为复杂密码.

原因如下:

  • 客户端在校验身份的时候,使用的是auth 命令,可以理解为是Redis 的普通命令,即能够被无限执行,换言之有被爆破的可能.
  • redis-cli可以通过加载客户端的redis.conf 文件来校验服务器, 不需要管理员记住密码.

如上所属,客户端在校验身份的时候,发送的是auth 命令,该命令可以理解为Redis 的普通命令,是没有被加密的, 若请求报文被监听了,也有泄密的可能. 所以尽可能的使用加密进行通信,即: SSL/TLS.

防止管理员误操作也很重要

Redis中有一些非常危险的命令,例如: FLUSHALL ,FLUSHDB ,该命令前者是清空所有的数据,后则是清空当前库的数据, 在日常工作中,如果误操作了,那后果不堪设想. 还有一些命令,运行后可能会导致系统阻塞,非常不建议使用,例如:KEYS ,HGETALL等.

基于上述情况,禁用某些命令来保证系统安全是非常有必要的, 好在Redis给我们提供了方法. 若想禁用某些命令,可以在其服务器redis.conf 配置文件中,使用rename-command 指令,例如:

rename-command FLUSHALL ""
rename-command FLUSHDB ""

若设置为空的话,则是禁止使用命令.修改配置,启动服务器后,若再使用这些命令,即会报错: ERR unknown command .

若并非想禁用命令,而是想重命名命令,那么将空字符串修改为重命名后的命令即可,例如:

rename-command KEYS FINDALL

设置后,即可使用FINDALL 来代替KEYS , 案例如下:

127.0.0.1:6379> set juejinNmae pdudo
OK
127.0.0.1:6379> FINDALL *
1) "juejinNmae"
127.0.0.1:6379> 

担心网络被监听? 开启TLS之旅吧

开启ssl/tls 后势必会降低Redis 的吞吐量,所以是否采用该配置主要还是看业务情况,若业务想要避免被抓包等,适合开启该设置,若仅在某一内网使用,那就没必要的.

Redis 6.0 以后启用了SSL/TLS ,但是注意, 若想使用SSL/TLS 的话,在编译的时候需要指定make BUILD_TLS=yes , 这里需要注意的是, 客户端和服务器都需要编译才行.

这里简单举个例子如何启动Redis吧.

证书生成

openssl genrsa -out ca.key 2048
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

数据库启动

redis-server --tls-port 6379 --port 0  --tls-cert-file ca.crt --tls-key-file ca.key  --tls-ca-cert-file ca.crt

客户端连接

redis-cli --tls --cert ca.crt --key ca.key  --cacert ca.crt

在使用SSL/TLS 后,我们需要禁用非TLS 端口并且开启SSL/TLS 端口后,可以直接设置:

port 0
tls-port 6379

这样的话,通过6379 连接,默认情况下是走的SSL/TLS

总结

安全一直是大家比较关心的话题,在Redis 中,我们不仅仅要防外部入侵, 还要知道, 技术人员的误操作也许破坏的更为严重, 始终需要记住, 权限最小化.不仅对外,也需要对内.

以上就是Redis数据库安全详解的详细内容,更多关于Redis数据库安全的资料请关注我们其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Redis数据库安全详解

本文链接: https://www.lsjlt.com/news/120932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis数据库安全详解
    目录前言开放最小化很重要认证不可少防止管理员误操作也很重要担心网络被监听 开启TLS之旅吧总结前言 本篇文章基于的Redis 的环境为: redis_version:7.0.5 文档内容均为学习Redis 官方文档心得....
    99+
    2024-04-02
  • Redis数据库的安装和配置教程详解
    目录1.Redis安装1.1.Linux环境安装Redis1.2.Windows环境安装Redis2.Redis客户端安装2.1.Redis自带的命令行客户端2.2.安装Redis图...
    99+
    2024-04-02
  • Linux安装配置MariaDB数据库全程详解
    MariaDB在很多方面强于MySQL,在Linux下如何安装MariaDB数据库成为大家比较头疼的一个问题,下面用实例为大家讲解下MariaDB是采用Maria存储引擎的MySQL分支版本,在很多方面强于...
    99+
    2024-04-02
  • Redis数据库安装部署及基本操作详解
    Redis数据库概述 Redis是一个开源的、使用c语言编写NoSQL数据库,它是基于内存运行并支持持久化,采用key-value(键值对)的存储形式, 是目前分布式结构中不可或缺...
    99+
    2024-04-02
  • Spring Boot整合 NoSQL 数据库 Redis详解
    目录引言一、环境准备二、构建Spring Boot项目三、引入Redis依赖四、Reds相关配置五、添加Redis配置类六、测试一下引言 在日常的开发中,除了使用 Spring Bo...
    99+
    2024-04-02
  • 【MySQL数据库】最全安装过程及配置详解
    🧛‍♂️iecne个人主页::iecne的学习日志 💡每天关注iecne的作品,一起进步 💪一起学习,必看iecne 🐳希望大家多多支持🥰一起进步呀...
    99+
    2023-08-16
    mysql 数据库 服务器
  • Windows系统安装redis数据库
    一、Redis简介 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集...
    99+
    2024-04-02
  • 阿里云数据库安全问解析
    随着云计算技术的快速发展,越来越多的企业选择将数据库迁移到云上,其中阿里云作为国内领先的云计算服务提供商,其数据库服务受到了广泛的关注。然而,最近有关阿里云无法登陆数据库的安全问题引发了人们的担忧。本文将对这一问题进行详细的解析,以期为用户...
    99+
    2023-11-18
    阿里 数据库
  • 阿里云数据库Redis价格表全面解析
    随着云计算技术的发展,数据库服务成为了众多企业和个人的必备选择。阿里云作为国内知名的云服务提供商,其数据库服务得到了广泛的认可和使用。特别是Redis,作为一款高性能、开源的内存数据库,已经成为了众多企业数据处理的重要工具。本文将详细解析阿...
    99+
    2023-12-09
    阿里 价格表 数据库
  • 数据库安全的挑战
    数据库安全 数据库是许多现代组织的关键组成部分,它们存储和管理着诸如财务数据、个人信息和保密业务计划等敏感信息。然而,随着数据库的普及,它们也成为恶意行为者的目标,这些恶意行为者试图利用漏洞获取敏感信息的访问权限。因此,数据库安全对于各种规...
    99+
    2023-10-22
  • MySQL数据库安全配置
    这篇文章主要讲解了“MySQL数据库安全配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库安全配置”吧!1、前言  MySQL是完全网络化的...
    99+
    2024-04-02
  • 数据库安全解决方案有哪些
    1. 访问控制:限制不同用户或角色的访问权限,确保只有授权用户才能访问敏感数据。2. 数据加密:使用加密技术对数据进行加密,确保即使...
    99+
    2023-06-08
    数据库安全解决方案 数据库
  • Linux服务器安装redis数据库
    redis简单介绍remote dictionary server(redis) 是一个由salvatore sanfilippo写的key-value存储系统。redis是一个开源的使用ansi c语言编...
    99+
    2024-04-02
  • 阿里云数据库安全解决方案
    ...
    99+
    2024-01-19
    阿里 安全解决方案 数据库
  • MySQL8.0数据库超详细安装教程全过程
    1、官网下载MySQL8.0地址:MySQL :: Download MySQL Installer (Archived Versions) 2、 双击安装包进行安装 3、自定义安装 4、选择MySQL Server8.0  5、创建...
    99+
    2023-09-01
    mysql 数据库 java
  • Redis如何实现数据库读写分离详解
    前言 Redis是一种NoSQL的文档数据库,通过key-value的结构存储在内存中,Redis读的速度是110000次/s,写的速度是81000次/s,性能很高,使用范围也很广。Redis是一个key-...
    99+
    2024-04-02
  • Redis的数据安全性如何保障
    Redis的数据安全性可以通过以下措施来保障: 访问控制:Redis允许用户通过密码认证和IP白名单等方式限制访问权限,防止未授...
    99+
    2024-04-02
  • Redis怎么实现数据的安全性
    Redis可以通过以下方式来实现数据的安全性: 配置密码保护:可以在Redis的配置文件中设置密码,只有在输入正确的密码后才能访...
    99+
    2024-05-07
    Redis
  • 详解redis缓存与数据库一致性问题解决
    数据库与缓存读写模式策略 写完数据库后是否需要马上更新缓存还是直接删除缓存? (1)、如果写数据库的值与更新到缓存值是一样的,不需要经过任何的计算,可以马上更新缓存,但是如果对于那...
    99+
    2024-04-02
  • 数据库安全知识介绍
    数据库系统是在操作系统平台之上的最重要的系统软件,数据库系统的安全可以说是十分重要的。曾经有句话这样说:如果网络遍地是金钱,那么金钱就在数据库服务器中。随着无纸化业务环境的不断扩大,人们在数据库中存储着越...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作