首页 > 数据库 >redis安全篇

redis安全篇

时间:2024-01-18 10:11:58浏览次数:39  
标签:rename www redis db 安全 command 26379

redis被攻击,作为突破口,服务器惨遭毒手的事太常见了。

大多数云服务器被攻击,都是redis,mongodb等数据库被入侵。

因此修改端口,密码,以及注意bind运行地址,是必须。

思考是否要暴露redis到公网。

1.设置密码、端口

配置

[root@db-51 ~]#cat /opt/redis_6379/conf/redis_6379.conf 
daemonize yes
bind 127.0.0.1 10.0.0.51
port 26379
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log

dir /www.yuchaoit.cn/redis/data/

save 900 1
save 300 10
save 60 10000
dbfilename www.yuchaoit.cn_redis_dump.rdb

appendonly yes

appendfilename "www.yuchaoit.cn_appendonly.aof"

dir /www.yuchaoit.cn/redis/data/
appendfsync everysec
appendonly yes
appendfilename "www.yuchaoit.cn_appendonly.aof"
aof-use-rdb-preamble yes 
requirepass chaoge666

启动

[root@db-51 ~]#redis-server /opt/redis_6379/conf/redis_6379.conf 
[root@db-51 ~]#netstat -tunlp|grep redis
tcp        0      0 10.0.0.51:26379         0.0.0.0:*               LISTEN      2857/redis-server 1 
tcp        0      0 127.0.0.1:26379         0.0.0.0:*               LISTEN      2857/redis-server 1 
[root@db-51 ~]#

密码验证

玩法1

[root@db-51 ~]#redis-cli -h 127.0.0.1 -p 26379
127.0.0.1:26379> ping
(error) NOAUTH Authentication required.
127.0.0.1:26379> auth chaoge666
OK
127.0.0.1:26379> 
127.0.0.1:26379> ping
PONG
127.0.0.1:26379>

玩法2

[root@db-51 ~]#redis-cli -h 127.0.0.1 -p 26379 -a 'chaoge666' dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 3

[root@db-51 ~]#redis-cli -h 10.0.0.51 -p 26379 -a 'chaoge666' dbsize
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 3
[root@db-51 ~]#

2.redis远程连接(python)

1.windows安装python3
C:\Users\Sylar>where python
C:\Users\Sylar\AppData\Local\Programs\Python\Python39\python.exe
C:\Users\Sylar\AppData\Local\Microsoft\WindowsApps\python.exe

C:\Users\Sylar>where pip
C:\Users\Sylar\AppData\Local\Programs\Python\Python39\Scripts\pip.exe




2.测试代码

# 安装python操作redis的模块
pip install redis


# 测试代码 cat test_redis.py
import redis
conn=redis.StricRedis(host='10.0.0.51',port=26379,password='chaoge666',db=0)
conn.set('name','www.yuchaoit.cn')
print(conn.get('name'))

# 执行结果

$ python test_redis.py
b'www.yuchaoit.cn'

# 至此确认远程连接,读写数据成功。
[root@db-51 /www.yuchaoit.cn/redis/data]#redis-cli -h 127.0.0.1 -p 26379 -a 'chaoge666' get name 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
"www.yuchaoit.cn"

3.禁用危险命令

背景

最近安全事故濒发啊,前几天发生了“ 顺丰高级运维工程师的删库事件”,今天又看到了PHP工程师在线执行了Redis危险命令导致某公司损失400万..

什么样的Redis命令会有如此威力,造成如此大的损失?

具体消息如下:

据云头条报道,某公司技术部发生2起本年度PO级特大事故,造成公司资金损失400万,原因如下:

由于PHP工程师直接操作上线redis,执行键 wxdb(此处省略)cf8 这样的命令,导致redis锁住,导致CPU飙升,引起所有支付链路卡住,等十几秒结束后,所有的请求流量全部挤压到了rds数据库中,使数据库产生了雪崩效应,发生了数据库宕机事件。

该公司表示,如再犯类似事故,将直接开除,并表示之后会逐步收回运维部各项权限。

看完这个消息后,我心又一惊,为什么这么低级的问题还在犯?为什么线上的危险命令没有被禁用?这事件报道出来真是觉得很低级......

且不说是哪家公司,发生这样的事故,不管是大公司还是小公司,我觉得都不应该,相关负责人应该引咎辞职!

对Redis稍微有点使用经验的人都知道线上是不能执行keys *相关命令的,虽然其模糊匹配功能使用非常方便也很强大,在小数据量情况下使用没什么问题,数据量大会导致Redis锁住及CPU飙升,在生产环境建议禁用或者重命名!

还有哪些危险命令?

Redis的危险命令主要有以下几个:

  • keys

客户端可查询出所有存在的键。

  • flushdb

删除当前所选数据库的所有键。此命令永远不会失败。

删除Redis中当前所在数据库中的所有记录,并且此命令从不会执行失败。

  • flushall

删除所有现有数据库的所有键,而不仅仅是当前选定的数据库。此命令永远不会失败。

删除Redis中所有数据库中的所有记录,不只是当前所在数据库,并且此命令从不会执行失败。

  • config

客户端可修改Redis配置。

怎么禁用或重命名危险命令?

看下redis.conf默认配置文件,找到SECURITY区域,如以下所示。

1)禁用命令

rename-command KEYS     ""

rename-command FLUSHALL ""

rename-command FLUSHDB  ""

rename-command CONFIG   ""


2)重命名命令

rename-command KEYS     "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

rename-command FLUSHALL "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

rename-command FLUSHDB  "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

rename-command CONFIG   "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

上面的XX可以定义新命令名称,或者用随机字符代替。

经过以上的设置之后,危险命令就不会被客户端执行了。

实践

修改配置文件,加入限制参数
rename-command KEYS     "www.yuchaoit.cn"
rename-command FLUSHALL "FFTRLZL7fmI="
rename-command FLUSHDB  "XA4z7FKXag0="
rename-command CONFIG   "CIxG1pYpVis="

标签:rename,www,redis,db,安全,command,26379
From: https://www.cnblogs.com/sxy-blog/p/17971888

相关文章

  • 从python 单机版爬虫 scrapy 到 分布式scrapy-redis 爬虫用最简单的步骤创建实例
    scrapy是很强大的模块化爬虫框架,具有很高的灵活性,使用频率很高,使用该框架能大大提高开发效率,scrapy-redis是在scrapy框架开发了组件,替换队列部分,实现多台服务器并行运行爬虫,提高爬取速度。下面是用最简单的例子从建立普通scrapy爬虫,然后数据保存mysql,最后简单替换几行就能使用s......
  • 密码产品推介 | 沃通安全电子签章系统(ES-1)
    产品介绍沃通安全电子签章系统(ES-1)是一款基于密码技术、完全自主研发的商用密码产品,严格遵循国家密码管理局制定的相关标准,可为企业和个人提供安全、合规的电子签章功能服务。产品的主要用途是为各类文书、合同、表单等电子文件提供合法、有效的电子签章,以确保文件的真实性、完整性......
  • 全面剖析文件外发管控——为企业数据安全保驾护航
    文件外发控制是一个企业数据安全保护措施中的重要环节。在企业的日常运营中,文件外发控制可以在很大程度上保护企业核心数据的安全,防止因文件外发而导致的敏感信息泄露。在企业涉及合同、研发、财务等多个敏感领域的情况下,文件外发控制的重要性不言而喻。此外,文件外发控制还可以有......
  • Redis - Search
                        ......
  • 智能反截屏控制:数据安全防护新利器
    在现代数字化企业中,数据安全已成为关键业务需求。尽管企业在数据保护方面投入了大量资源,但截图泄露敏感信息仍然是难以防范的风险。智能反截屏控制技术为企业提供了全新的数据保护解决方案,通过实时保护敏感内容,大大降低了截图泄露的风险。智能反截屏控制技术通过以下方式实现:智......
  • 云图说丨安全云脑:开箱即用的安全运营体验
     本文分享自华为云社区《【云图说】第300期安全云脑——开箱即用的安全运营体验》,作者:阅识风云。安全云脑(SecMaster)是华为云原生的新一代安全运营中心。为了协助用户在海量日志中高效感知安全事件、快速闭环安全事件,安全云脑将华为云多年的“修炼”成果融合到服务中,用户开箱即可......
  • Redis实战篇
    实战篇Redis优秀博客黑马点评项目学习笔记(15w字详解,堪称史上最详细,欢迎收藏)-CSDN博客Redis实战篇|Kyle'sBlog(cyborg2077.github.io)开篇导读hutol工具使用对象bean和JsonStr互转//功能:javabean转jsonstr用途:存入到redisStringjsonstr=JSONUtil.toJsonSt......
  • 信息安全认证 | CISP考试说明
    注册信息安全专业人员(CertifiedInformationSecurityProfessional,简称“CISP"),是由中国信息安全测评中心依据中编办赋予的职能,建立和发展的一整套完整的信息安全保障人才培训体系。CISP证书是国家对信息安全专业人员能力的最高认可。01证书价值1.权威性CISP是由中国信息安全测评......
  • 开发测程序 放到生产的电脑,跑不起来 安全中心,杀毒软件
    360杀毒软件和Windows自带安全中心。无法成功完成操作,因为文件包含病毒或潜在的垃圾软件。 一个意外错误使你的无法重命名该文件。如果你继续收到此错误,可以使用错误代码来搜索相关此问题的帮助。  ......
  • 信管知识梳理(五)信息系统安全技术
    一、信息安全的有关概念1.1信息安全属性秘密性:指信息不被未授权者知晓的属性完整性:信息是正确的、真实的、未被篡改的、完整无缺的属性可用性:信息能够随时正常使用的属性1.2信息系统安全的层次设备安全:设备的稳定性:不出故障的概率设备的可靠性:正常执行任务的概率设......