Mongodb安全防护
1.Mongodb未授权访问
描述
MongoDB 是一个基于分布式文件存储的数据库。默认情况下启动服务存在未授权访问风险,用户可以远程访问数据库,无需认证连接数据库并对数据库进行任意操作,存在严重的数据泄露风险。
加固建议
可以使用以下方法修复:
1.限制mongodb监听范围: 打开配置文件<mongod.conf>,设置bind_ip=<ip>,如果配置文件为yaml格式,则在net选项下设置bindIp: <ip1,ip2...>;其中<ip>,<ip1,ip2...>为指定的一个或多个IP地址,如mongodb只需在本地使用,则建议绑定本地ip127.0.0.1;
2.开启登录认证并增加认证用户: 若还没有用户,则登录mongodb客户端,创建新用户及密码。然后打开配置文件<mongod.conf>,设置auth=true,如果配置文件为yaml格式,则在security选项下设置authorization:enabled;
3. 设置完成后重启mongodb服务。
2.确保将新条目附加到日志文件的末尾
描述
默认情况下,新的日志条目将在重新启动mongod或Mongols服务后覆盖旧条目。 启用systemLog.logAppend设置会导致新条目附加到日志文件的末尾,而不是在mongos或mongod实例重新启动时覆盖日志的现有内容。 允许旧条目被新条目覆盖而不是将新条目附加到日志末尾可能会破坏出于各种目的所需的旧日志数据。
加固建议
编辑配置文件<conf_path>/mongod.conf将systemLog下的logAppend设置为true。
3.确保日志记录捕获尽可能多的信息
描述
SystemLog.quiet选项停止记录信息,例如:
?连接事件
?身份验证事件
?复制同步活动
?运行一些可能有影响的命令的证据(例如:drop,dropIndexes,
验证)
应尽可能记录此信息。 此检查仅适用于Enterprise
版本。
使用SystemLog.quiet可以解决问题并进行调查
安全事件要困难得多。
加固建议
编辑<conf_file>/mongod.conf文件中将SystemLog下的quiet设置为False以禁用它。
4.确保MongoDB使用非默认端口
描述
更改MongoDB使用的端口使攻击者更难找到数据库并将其作为目标。 标准端口用于自动攻击,并由攻击者用于验证服务器上正在运行的应用程序。
加固建议
将MongoDB服务器的端口更改为27017以外的数字
5.确保MongoDB仅侦听授权接口上的网络连接
描述
确保MongoDB在受信任的网络环境中运行涉及限制MongoDB实例侦听传入连接的网络接口。 MongoDB应删除任何不受信任的网络连接。 此配置阻止来自不受信任网络的连接,只允许授权和受信任网络上的系统尝试连接到MongoDB。 如果未配置,则可能导致从不受信任的网络到MongoDB的未授权连接。
加固建议
1、如果服务只允许本机访问,编辑MongoDB的配置文件<conf_path>/mongod.conf,在net区块下配置bindIp,将此项的值设置为:127.0.0.1(仅允许本机访问),并重启MongoDB服务。
2、如业务需要设置为跨服务器访问,可通过安全组配置访问规则,防止服务暴露到互联网上,然后忽略此项
6.确保在不需要时禁用服务器端脚本
描述
MongoDB支持为某些服务器端操作执行JavaScript代码:mapReduce,group和$ where。 如果不使用这些操作,则应禁用服务器端脚本。 如果不需要服务器端脚本并且未禁用,则会带来不必要的风险,即攻击者可能会利用不安全的编码。
加固建议
编辑<conf_file>/mongod.conf文件中将security下的javascriptEnabled:设置为false以禁用它。
7.确保正确设置了数据库文件权限
描述
MongoDB数据库文件需要使用文件权限进行保护。这将限制未经授权的用户访问数据库。
加固建议
将数据库文件的所有权设置为mongodb用户,并使用以下命令删除其他权限:
chmod 600 /var/lib/mongodb
sudo chown mongodb:mongodb /var/lib/mongodb
以上命令为默认数据库文件路径,请根据实际环境修改为正确数据库文件路径。
8.确保正确设置了密钥文件权限
描述
密钥文件用于分片群集中的身份验证。 在密钥文件上实现适当的文件权限将防止对其进行未经授权的访问。保护密钥文件可加强分片集群中的身份验证,并防止对MongoDB数据库的未授权访问。
加固建议
将keyFile所有权设置为mongodb用户,并通过执行以下命令删除其他权限:
chmod 600 <keyfile_path>/keyfile
sudo chown mongodb:mongodb <keyfile_path>/keyfile
9.确保使用非特权的专用服务帐户运行MongoDB
描述
MongoDB服务不应使用特权帐户(如“root”)运行,因为这会不必要地将操作系统暴露在高风险之下。 使用非特权专用服务帐户限制数据库访问MongoDB不需要的操作系统的关键区域。 这还将减少通过操作系统上受损的特权帐户进行未经授权访问的可能性。
加固建议
1.创建用于执行MongoDB数据库活动的专用用户。
2.将数据库数据文件,密钥文件和SSL私钥文件设置为只能读取 由mongod/mongos用户提供。
3.将日志文件设置为只能由mongod/mongos用户写入,并且只能由root读取。
4.切换至该专用用户,并重启MongoDB
10.确保为MongoDB数据库启用了身份验证
描述
此设置可确保所有客户端,用户和/或服务器都需要进行身份验证
在被授予访问MongoDB数据库之前。
无法对客户端,用户和/或服务器进行身份验证可以启用对服务器的未授权访问
MongoDB数据库可以防止跟踪操作返回其源。
加固建议
编辑MongoDB配置文件,在security区块下配置 authorization: enabled
Mongodb安全防护的更多相关文章
- 每天200亿次查询 – MongoDB在奇虎360【转】
100多个应用,1,500多个实例,每天200亿次查询 奇虎是中国最大的安卓移动发布平台.奇虎也是中国最顶尖的病毒软件防护公司,同时为网络以及移动平台提供产品.自从2011年成为MongoDB的用户之 ...
- MongoDB安全及身份认证
前面的话 本文将详细介绍MongoDB安全相关的内容 概述 MongoDB安全主要包括以下4个方面 1.物理隔离 系统不论设计的多么完善,在实施过程中,总会存在一些漏洞.如果能够把不安全的使用方与Mo ...
- mongodb数据库禁止外网访问以及添加账号
未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...
- 从MongoDB里面取得json格式的数据,然后存为本地的json文件,然后再从json读取变为dict
帮宣传下彩印网(www.caiyin.com) 有印刷,广告等等方面的需求就找这个网站吧,没错的. 天气预报在MongoDB中的天气预报的存储方式是: /* 1 */ { "_id" ...
- MongoDB 安全配置
前言 随着MongoDB使用人群企业越来越广泛,黑客的注意力也转移到了其中.比如去年很火热的MongoDB劫持事件,很多人对MongoDB的安全也越来越重视.今天,我们就简单总结一些MongoDB的安 ...
- mongodb禁止外网访问以及添加账号
未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...
- WebApp 安全风险与防护课堂开课了!
本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 2018 网络安全事故频发,从数据泄露.信息窃取,到 DDOS 攻击.勒索 ...
- MongoDB之Replica Sets环境搭建
最近学习MongoDB,这两天在搭建复制集的时候碰到了不少问题,也踩了好多坑,现在在这里记录下来,以供自己和他人参考 (因为本人是初学者,所以遇到的问题也会比较初级,所以本文也比较适合初学者查阅) 背 ...
- MongoDB安全事件的防范与反思
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 近段时间来,全球范围内数以万计的MongoDB实例被攻击,作为旨在为用户提供最优MongoDB云服务的网易蜂 ...
随机推荐
- Go iota 原理和源码剖析
iota 是 Go 语言的一个保留字,用作常量计数器.由于 iota 具有自增特性,所以可以简化数字增长的常量定义. iota 是一个具有魔法的关键字,往往令初学者难以理解其原理和使用方法. 本文会从 ...
- 【Sass/SCSS】预加载器中的“轩辕剑”
[Sass/SCSS]预加载器中的"轩辕剑" 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 随着前端 ...
- 设计模式学习-使用go实现观察者模式
观察者模式 定义 适用场景 优点 缺点 代码实现 不同场景的实现方式 观察模式和发布订阅模式 参考 观察者模式 定义 观察者模式(Observer Design Pattern)定义了一种一对多的依赖 ...
- kafka数据清理
Kafka将数据持久化到了硬盘上,允许你配置一定的策略对数据清理,清理的策略有两个,删除和压缩. 数据清理的方式 删除 log.cleanup.policy=delete启用删除策略直接删除,删除后的 ...
- 利用opencv进行简易的拍照并处理照片
今天用python写了一个调用摄像头拍照并对图片进行素描化或动漫化的小demo. 首先我的环境是:PyCharm+python3.8+opencv-python(4.4.0.42) 我们分析一下思路, ...
- SpringCloud升级之路2020.0.x版-39. 改造 resilience4j 粘合 WebClient
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 要想实现我们上一节中提到的: 需要在重试以及断路中加一些日志,便于日后的优化 需要定义重试 ...
- [gym101981F]Frank
在本题中,每一步是独立的,因此即可以看作从$s$移动到$t$的期望步数(对于每一对$s$和$t$都求出答案) 令$f_{i,j}$表示当$s=i$且$t=j$时的答案,则有$f_{i,j}=\begi ...
- [ARC117E]Zero-Sum Ranges 2
令$sum_{i}=\sum_{j=1}^{i}a_{j}$,即要求其满足: 1.$sum_{0}=sum_{2n}=0$且$\forall 1\le i\le 2n,|sum_{i}-sum_{i- ...
- idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错
找到 .idea\workspace.xml: 找到<component name="PropertiesComponent">,在里面添加<property n ...
- python3使用concurrent执行多进程任务
技术背景 随着计算机技术的发展,诸如GPU和超算平台等越来越发达,这些技术的本质其实并没有带来算法上的革新,之所以能够提升计算的速度和规模,很大程度上是因为分布式和并行计算的优势.这里我们介绍一个简单 ...