MongoDB提供了一系列组件来提升数据的安全性 。数据安全在MongoDB中是最重要的——因此它利用这些组件来减少曝光面 。下面是10个可以用来改善你个人或云中MongoDB服务器安全的小提示 。
1. 启用auth — 即使在可信赖网络中部署MongoDB服务器时启用auth也是项好的安全实践 。当你的网络受攻击时它能够提供“深层防御” 。编辑配置文件来启用auth
auth = true
2.不要把生产环境的数据库暴露在Internet上-限制对数据库的物理访问是安全性的非常重要的一个措施 。如果没有必要,就不要把生产环境的数据库暴露在Internet上 。如果攻击者不能物理地连接到MongoDB服务器这种情形大打折扣,那么数据就不会比现在更安全 。如果你把服务部署在亚马逊web服务(AWS)上,那么你应当把数据库部署在虚拟私有云(VPC)的私有子网里 。有关这方面的更多信息请阅读博客文章"在私有云(VPC)里部署MongoDB" 。
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 安全性的 10 个方法】
推荐阅读
- 石家庄,秋茶品质普遍提升 价格同比基本持平
- 安溪县力促茶叶质量提升 打造放心茶
- 湖北恩施,茶叶专家助力25万亩茶园安全过冬
- 景宁县制定惠明茶统实物标准样 全面提升产品档次
- 女人如何在短时间内提升颜值,变美、变漂亮
- 茶叶地域公共品牌建设助力提升遵义茶知名度
- “理解法、串联法、故事法”——提升职场记忆力,反应快人一倍
- 大力提升茶业发展水平成遵义农业现代化最闪亮名片
- 广西梧州市抽样监测茶叶基地茶叶原料质量安全
- 如何提高Web服务器安全性