十个提高MongoDB安全性的配置技巧

所属分类: 数据库 / MongoDB 阅读数: 160
收藏 0 赞 0 分享

MongoDB提供了一系列组件来提升数据的安全性。数据安全在MongoDB中是最重要的——因此它利用这些组件来减少曝光面。下面是10个可以用来改善你个人或云中MongoDB服务器安全的小提示。 

1. 启用auth-即使在可信赖网络中部署MongoDB服务器时启用auth也是项好的安全实践。当你的网络受攻击时它能够提供“深层防御”。编辑配置文件来启用auth。

复制代码 代码如下:

auth = true

 
2.不要把生产环境的数据库暴 露在Internet上-限制对数据库的物理访问是安全性的非常重要的一个措施。如果没有必要,就不要把生产环境的数据库暴露在Internet上。如果 攻击者不能物理地连接到MongoDB服务器这种情形大打折扣,那么数据就不会比现在更安全。如果你把服务部署在亚马逊web服务(AWS)上,那么你应 当把数据库部署在虚拟私有云(VPC)的私有子网里。

3.使用防火墙-防火墙的使用可以限制允许哪些实体连接MongoDB服务器。最佳的措施就是仅仅允许你自己的应用服务器访 问数据库。如果你把无法部署在亚马逊web服务(AWS)上,你可以使用"安全组“功能限制访问权限。如果你把服务部署在不支持防火墙功能的提供商的主机 上,那么你可以亲自使用"iptables"对服务器进行简单的配置。请参考mongodb的文档,实现对你所面对的具体环境配置iptables。

4.使用key文件建立复制服务器集群-指定共享的key文件,启用复制集群的MongoDB实例之间的通信。如下给配置文件中增加keyfile参数。复制集群里的所有机器上的这个文件的内容必须相同。

复制代码 代码如下:

keyFile = /srv/mongodb/keyfile

 
5.禁止HTTP状态接口- 默认情况下Mongodb在端口28017上运行http接口,以提供“主”状态页面。在生产环境下推荐不要使用此接口,最好禁止这个接口。使用"nohttpinterface"配置设置可以禁止这个http接口。
复制代码 代码如下:

nohttpinterface = true

 
6.禁止REST接口-在生产环境下建议不要启用MongoDB的REST接口。这个接口不支持任何认证。默认情况下这个接口是关闭的。如果你使用的"rest"配置选项打开了这个接口,那么你应该在生产系统中关闭它。
复制代码 代码如下:

rest = false

7.配置bind_ip- 如果你的系统使用的多个网络接口,那么你可以使用"bind_ip"选项限制mongodb服务器只在与该配置项关联的接口上侦听。默认情况下mongoDB绑定所有的接口。

复制代码 代码如下:

bind_ip = 10.10.0.25,10.10.0.26

 
8. 启用SSL- 如果你没有使用SSL,那么你在MongoDB客户端和MongoDB服务器之间的传输的数据就是明文的,容易受到窃听、篡改和“中间人”攻击。如果你是 通过像internet这样的非安全网络连接到MongoDB服务器,那么启用SSL就显得非常重要。

9.基于角色进行认证- MongoDB支持基于角色的认证,这样你就可以对每个用户可以执行的动作进行细粒度的控制。使用基于角色的认证组建可以限制对数据库的访问,而不是所有的用户都是管理员。更多的信息请参考有关角色的文档。

10.企业级MongoDB与kerberos- 企业级mongodb继承了kerberos认证。有关这方面的更多信息请参考mongodb文档。基于用户名/密码的系统本身就是不安全的,因此如果可能的话,请使用基于kerberos的认证。

更多精彩内容其他人还在看

MongoDB使用小结:一些不常见的经验分享

最近一年忙碌于数据处理相关的工作,跟MongoDB打交道极多,以下为实践过程中的Q&A,后续会不定期更新补充
收藏 0 赞 0 分享

MongoDB使用小结 一些常用操作分享

本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell、pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程,需要的朋友可以参考下
收藏 0 赞 0 分享

深究从MongoDB的ObjectId中获取时间信息

MongoDB默认使用_id字段作为主键,类型为ObjectId。ObjectId的生成有一定的规则,详情可以查看这篇文章MongoDB深究之ObjectId
收藏 0 赞 0 分享

Mongodb中MapReduce实现数据聚合方法详解

Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据。接下来通过本文给大家介绍Mongodb中MapReduce实现数据聚合方法详解,感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

MongoDB 学习笔记(一)-MongoDB配置

MongoDB 是一个基于分布式文件存储的数据库。接下来通过本文给大家介绍MongoDB 学习笔记(一)MongoDB配置的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB快速翻页的方法

这篇文章主要为大家详细介绍了MongoDB快速翻页的方法,通过实例学习在MongoDB中翻阅数据的不同方式,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

MongoDB快速入门笔记(六)之MongoDB删除文档操作

这篇文章主要介绍了MongoDB快速入门笔记(六)之MongoDB删除文档操作 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB快速入门笔记(六)之MongoDB的文档修改操作

这篇文章主要介绍了MongoDB快速入门笔记(六)之MongoDB的文档修改操作的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码

MongoDB 是一个基于分布式文件存储的数据库。接下来通过本文给大家介绍MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码,感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

MongoDB快速入门笔记(三)之MongoDB插入文档操作

这篇文章主要介绍了MongoDB快速入门笔记(三)之MongoDB插入文档操作 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多