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

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的认证。

(0)

相关推荐

  • MongoDB安全配置详解

    0x00 MongoDB权限介绍 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库,需以--auth参数启动. 2.在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息.当admin.system.users一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以--auth

  • MongoDB安全及身份认证(实例讲解)

    前面的话 本文将详细介绍MongoDB安全相关的内容 概述 MongoDB安全主要包括以下4个方面 1.物理隔离 系统不论设计的多么完善,在实施过程中,总会存在一些漏洞.如果能够把不安全的使用方与MongoDB数据库做物理上的隔离,即通过任何手段都不能连接到数据库,这是最安全的防护.但,通常这是不现实的.一些重要的数据可能会保存下来,放置到物理隔离的机房中 2.网络隔离 许多公司的开发机处于内网环境中.即使数据库存在漏洞,外部环境也没有机会利用,因为根本无法访问内网 3.防火墙隔离 可以利用防火

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

    MongoDB提供了一系列组件来提升数据的安全性.数据安全在MongoDB中是最重要的--因此它利用这些组件来减少曝光面.下面是10个可以用来改善你个人或云中MongoDB服务器安全的小提示. 1. 启用auth-即使在可信赖网络中部署MongoDB服务器时启用auth也是项好的安全实践.当你的网络受攻击时它能够提供"深层防御".编辑配置文件来启用auth. 复制代码 代码如下: auth = true 2.不要把生产环境的数据库暴 露在Internet上-限制对数据库的物理访问是安全

  • apache .htaccess文件详解和配置技巧总结

    一..htaccess的基本作用 .htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令.       .htaccess主要的作用有:URL重写.自定义错误页面.MIME类型配置以及访问权限控制等.主要体现在伪静态的应用.图片防盗链.自定义404错误页面.阻止/允许特定IP/IP段.目录浏览与主页.禁止访问指定文件类型.文件密码保护等.       .htaccess的用途范围主要针对当前目录. 二.启用.htaccess的配置启用.htaccess,需要修改http

  • 提高iOS开发的小技巧和思路小结 (二)

    前言 之前跟大家分享过一篇<提高iOS开发的小技巧和思路>,但是里面整理的不够全面,通过最近这段时间的整理学习,又整理了一些小技巧和思路分享给大家,下面话不多说了,来看看详细的介绍吧. 一.如何让你的app在后台持续运行一段时间 iOS的app在按下home键的时候,只有不到五秒钟的时间去处理保存或者是清楚资源的工作,这里提供一种办法.(这是在唐巧的书上面学习的) 产品经理的需求:如果app的本地持久化的额图片超过了100mb,需要去清除. 我之前的做法是在程序启动的时候去做这个事情,很显然效

  • MongoDB日常使用的技巧与注意事项汇总

    前言 这是一篇日常使用MongoDB时候遇到的问题的解决技巧的文章,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.查找数组字段不为空的记录 查找数据中数组字段不为空的记录. 举个例子:有以下Mongo文档, { "id" : "581c060f2b436c05aafb1632", "commit_history" : [ "581c20d52b436c05aafb1633", "581c21c

  • CentOS 7下MongoDB的安装配置详解

    一.Mongodb安装 以下安装步骤以dp用户执行 1. 下载mongodb 3.4.2的安装包: "mongodb-linux-x86_64-rhel70-3.4.2.tgz",放在-/software下. 2. 解压该文件包: $ cd -/software $ tar -xf mongodb-linux-x86_64-rhel70-3.4.2.tgz 得到文件夹 mongodb-linux-x86_64-rhel70-3.4.2/,其中的bin文件夹包含Mongodb的所有可执行

  • 分享50个提高PHP执行效率的技巧

    1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号). 2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 3.$row['id'] 的速度是$row[id]的7倍. 4.echo 比 print 快,并且使用echo的多重参数(译注:

  • C/C++中提高查找速度的小技巧

    前言 当看到题目是在一个数组中查找某一个元素,或是在一个字符串中查找某个字符,我们一般都会写出如下代码.但这样的代码虽然简洁明了,但在数组元素很多的情况下,并不是一个很好的解决方案,今天我就来分享一个提高查找速度的小技巧. //在一个int数组中查找某个元素 int find(int A[],int n,int element) { for( int i = 0; i < n; i++ ) { if( A[i] == element ) return i; } return -1; } //在一

  • CentOS系统下MongoDB安装及配置教程

    一.准备工作: 运行yum命令查看MongoDB的包信息 复制代码 代码如下: [root@vm ~]# yum info mongo-10gen (提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含MongoDB的相关资源,所以要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件,以下分别是针对centos 64位和32位不同的系统的MongoDB yum 源配置内容: 我们这里就将该

  • centos7下安装java及环境变量配置技巧

    现在我们常见的一些关于Linux的系统很多,但是使用的更多的一般都是CentOS和Ubuntu,今天我就来记录一下关于centos下java的安装和环境变量的配置. 首先使用xshell连接到centos7,我使用的是centos7 *64位,所以一切的配置安装都按照的是centos7来进行的,当然其他版本的centos的操作也类似,如果有需要的,请自行百度哈. 本次安装环境: centos7 64位 jdk1.8 64位 xshell免费版 win10*64位 一.首先进来,需要检查自带的op

  • MongoDB数据库安装配置、基本操作实例详解

    本文实例讲述了MongoDB数据库安装配置.基本操作.分享给大家供大家参考,具体如下: 1.简介 NO SQL:NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是对不同于传统的关系数据库管理系统(RDBMS)的统称.NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. RDBMS NOSQL - 高度组织化结构化数据 - 结构化查询语言(SQL) - 数据和关系都存储在单独的表中. - 数据操纵语言,数据定

随机推荐