一.简介

Redis 因配置不当存在未授权访问漏洞,可以被攻击者恶意利用。

在特定条件下,如果Redis以root身份运行,黑客可以给root账号写入SSH公钥文件,直接通过 SSH 登录受害服务器,从而获取服务器权限和数据。一旦入侵成功,攻击者可直接添加账号用于 SSH 远程登录控制服务器,给用户的Redis运行环境以及Linux主机带来安全风险,如删除、泄露或加密重要数据,引发勒索事件等。

在 Redis 客户端,测试Redis是否设置密码:

[root@linkops ~]# redis-cli -h 10.16.10.2
redis 10.16.10.2:6379> keys *
1) "1"`

从登录结果可以看出,该 Redis 服务对公网开放,且未启用认证

二.加固方案

1.禁止监听在公网

指定 Redis 服务使用的网卡

默认情况下,Redis监听127.0.0.1。如果仅仅是本地通信,请确保监听在本地。

这种方式可以在一定程度上缓解 Redis 未授权访问的风险(例外情况下,如果 Redis 以 root 用户运行,攻击者借助已有的 webshell,就可以利用该Redis来反弹shell以实现提权)。

[root@linkops ~]# vim redis.conf
bind 192.168.1.100 10.0.0.1

每次修改配置文件,都要重启redis才会加载最新配置。

2.修改默认6379端口

[root@linkops ~]#
port 6377

3.设置防火墙策略

如果正常业务中 Redis 服务需要被其他服务器来访问,可以通过iptables策略,仅允许指定的IP来访问Redis服务。

iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT

4.账号与认证

redis.conf 中找到 requirepass 字段,去掉其注释,并在后面填上需要的密码。Redis 客户端也需要使用此密码来访问 Redis 服务。

[root@linkops ~]# vim redis.conf
requirepass www.dgstack.cn12332@@#$%@!%

5.服务运行权限最小化,使用root切换到redis用户启动服务

[root@linkops ~]# useradd -s /sbin/nolog -M redis
[root@linkops ~]# su redis
[root@linkops ~]# sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf

6.禁用或者重命名危险命令

Redis无权限分离,其管理员账号和普通账号无明显区分。攻击者登录后可执行任意操作,因此需要隐藏以下重要命令:

FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL

另外,在Redis 2.8.1及Redis 3.x(低于 3.0.2)版本下存在EVAL 沙箱逃逸漏洞,攻击者可通过该漏洞执行任意Lua代码。

xiug修改配置将设置为空,即禁用该命令;也可设置为一些复杂的、难以猜测的名字。

[root@linkops ~]# vim config/flushdb/flushall
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS ""
rename-command SHUTDOWN ""
rename-command DEL ""
rename-command EVAL ""

然后重启redis,重命名为"" 代表禁用命令,如想保留命令,可以重命名为不可猜测的字符串,如:

rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC

7.打开保护模式

redis默认开启保护模式。要是配置里没有指定bind和密码,开启该参数后,redis只能本地访问,拒绝外部访问。

[root@linkops ~]# vim redis.conf
protected-mode yes

8.安全补丁

定期关注最新软件版本,并及时升级Redis到最新版,防止新漏洞被恶意利用。

Reids安全加固的更多相关文章

  1. MongoDB数据库未授权访问漏洞及加固

    1.漏洞危害 开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增删改高危动作)而且可以远程访问数据库. 2.漏洞成因 在刚安装完毕的 ...

  2. CentOS 6.5 安全加固及性能优化 (转)

    通过修改CentOS 6.5 的系统默认设置,对系统进行安全加固,进行系统的性能优化. 环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5- ...

  3. ionic ios 友盟多渠道/自动签名/加固之腾讯云。乐固

    之前写了一篇文章主要是介绍使用gradle进行多渠道分发处理的文章--链接:http://www.cnblogs.com/happen-/p/6029387.html 最近在做app上线的处理,发现某 ...

  4. app加固

    为什么要加固APP? 答:因为黑客通过反编译APK得到源码后,会在应用中插入代码,获取利益,比如添加广告,盗取用户账号.密码,后台定制活动等.   反编译的方法? 反编译是指apk文件通过反编译工具( ...

  5. Android动态方式破解apk终极篇(加固apk破解方式)

    一.前言 今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为: 第一篇:如何使用Eclipse动态调试smali源码 第二篇:如何使用IDA动态调试SO文件 现在要说的就是最后一篇了,如何应 ...

  6. Discuz论坛安全加固浅析

    [51CTO专稿]Discuz! 论坛以其功能完善.效率高效.负载能力,深受被大多数的网站喜爱和青睐.无独有隅,笔者所维护的论坛就是用discuz! 来构建的,从接手时候的7.2到现在x2.0,经历了 ...

  7. 基于御安全APK加固的游戏反外挂方案

    一. 前言 随着移动互联网的兴起,移动游戏市场近几年突然爆发,收入规模快速增长.根据第三方数据统计,国内移动游戏2015年市场规模已达514.6亿.由于手游市场强势兴起,而且后续增长势头会愈加猛烈.火 ...

  8. Windows服务器安全加固实战(Windows Server 2008 R2和Windows Server 2012)

    最近我们立方技术工作室在使用阿里云的过程中,发现服务器安全性也不是很高,而服务端的安全软件都很贵.为了为朋友们提供更加有效的解决方案,我们决定身体力行,高筑墙,大幅度提升服务器的安全防护级别! 主机安 ...

  9. android加固系列—2.加固前先要学会破解,调试内存值修改程序走向

    [版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5138585.html] 因公司项目需要对app加固,经过本人数月的研究,实现了一套完整的仿第三 ...

随机推荐

  1. Github webhooks 自动部署博客文章,使用总结【含视频】

    作者:小傅哥 博客:https://bugstack.cn 原文:https://mp.weixin.qq.com/s/VtTHUfyiITNSoGy052jkXQ 沉淀.分享.成长,让自己和他人都能 ...

  2. layui使用html+servlet+ajax实现登录验证

    我们一般使用的都是form表单提交到Servlet来实现前端和后端的交互的.这次我使用的是ajax提交数据,实现登录操作. 首先我们需要的是一套layui模板,这里用到layui的js和css界面. ...

  3. [atAGC022D]Shopping

    称0到$L$的方向为左,同时为了方便,可以假设$0<t_{i}\le 2L$ 当我们确定是进入店中的方向,根据这个店的位置以及购物时间,不难确定出来时火车经过0或$L$的次数,由于$0<t ...

  4. [noi109]排队

    题目要求其实相当于要让大于和小于m的数的个数都不超过n/2,因此当要对一个数处理时,要么把它改成m,要么不作修改,根据这个贪心就可以完成了. 1 #include<bits/stdc++.h&g ...

  5. Java 单例模式大乱斗

    1. 饿汉模式 线程安全 public class SingleInstance1 { private static SingleInstance1 single=new SingleInstance ...

  6. 一文明白CDN加速是个啥

    作者:IT王小二 博客:https://itwxe.com 不知不觉三个月没更新了,这三个月诸事繁忙啊!最近没那么忙了,开始恢复更新. 一.CDN简介 CDN(Content Delivery Net ...

  7. [GYCTF2020]Easyphp

    知识点 反序列化pop链 反序列化字符逃逸 解题过程 www.zip 备份文件获取源码 审计代码构造pop链 <?php Class UpdateHelper{ public $id; publ ...

  8. JDK中Lambda表达式的序列化与SerializedLambda的巧妙使用

    前提 笔者在下班空余时间想以Javassist为核心基于JDBC写一套摒弃反射调用的轻量级的ORM框架,过程中有研读mybatis.tk-mapper.mybatis-plus和spring-boot ...

  9. 十一. Go并发编程--singleflight

    一.前言 1.1 为什么需要Singleflight? 很多程序员可能还是第一次听说,本人第一次听说这个的时候以为翻译过来就是程序设计中被称为的是 "单例模式". google之后 ...

  10. 洛谷 P4484 - [BJWC2018]最长上升子序列(状压 dp+打表)

    洛谷题面传送门 首先看到 LIS 我们可以想到它的 \(\infty\) 种求法(bushi),但是对于此题而言,既然题目出这样一个数据范围,硬要暴搜过去也不太现实,因此我们需想到用某种奇奇怪怪的方式 ...