当前位置:首页 > 数据库 > MongoDB 安全配置

MongoDB 安全配置

2022年09月16日 09:57:57数据库4

前言

随着MongoDB使用人群企业越来越广泛,黑客的注意力也转移到了其中。比如去年很火热的MongoDB劫持事件,很多人对MongoDB的安全也越来越重视。今天,我们就简单总结一些MongoDB的安全防护。首先,关于这方面的内容,官方也有说明,参考如下链接:https://docs.mongodb.com/manual/administration/security-checklist/ ;

1、启用访问控制和强制认证

打开认证,创建认证用户:

  • 在admin数据库中,创建一个admin 用户
use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
  • 对具体的库进行授权
use reporting
db.createUser(
  {
    user: "reportsUser",
    pwd: "12345678",
    roles: [
       { role: "read", db: "reporting" },
       { role: "read", db: "products" },
       { role: "read", db: "sales" },
       { role: "readWrite", db: "accounts" }
    ]
  }
)

提示:在启动项中加入 --auth 或者在配置文件中加入 security.authorization: enabled。并且,MongoDB还可以使用外部系统进行认证,比如LADP等;

2、配置基于角色的访问控制

这里需要明确的是,MongoDB的基本安全分为两种,一种是认证,一种是鉴权。其实英语会说的比较明白点: authorization, authentication。

认证是作为用户登录的一种账号密码校验,类似MySQL 的 root/password ,在大部分应用中,一旦创建一个连接(用于连接池的),那么该连接只会做一次,所以大可不必担心因为认证而带来的开销。

鉴权是在数据库中的账号拥有的权限做鉴定,类似MySQL中的privilege。

3、基于TSL的双向认证

打开MongoDB 的TLS/SSl 的配置,社区版需要下载一个SSL版本,或者可以从社区版通过升级步骤升级到SSl版本,企业版自带SSL。

SSL 可以保证MongoDB的 所有连接(输入和输出的连接)都是加密的。

4、限制网络暴露

通过指定 bindip,以及Linux通过iptables来限制访问的IP地址等,并在生产线上关闭 MongoDB 的 HTTP 接口和 REST API来达到规避网络进口的安全问题。

iptables -A INPUT -s <ip-address> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d <ip-address> -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

5、创建MongoDB专门的运行用户

使用 mongodb 用户启动MongoDB,而不是使用 root 用户;

useradd -M mongodb -s /bin/nologin
sudo -u mongodb -s

6、使用安全配置项运行MongoDB

作者:Go_小易
来源链接:https://www.cnblogs.com/yangxiaoyi/p/7504080.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/41742.html

标签: MongoDB
分享给朋友:

“MongoDB 安全配置” 的相关文章

趣味编程|手写一个集成多数据源mongodb的 starter

趣味编程|手写一个集成多数据源mongodb的 starter

关注公众号“AI码师”领取2021最新面试资料一份,公众号内回复“源码”,获取本项目源码 【前言】 主演:老王(技术总监),小码(本猿) 老王:小码啊,我们项目中需要使用到mongodb,你集成下吧,完成了和我说下。...

springboot集成mongoDB遇到的一些坑

1.当mongoDB设置了账号密码时,且设置的db为admin(角色为root),此时登录且操作都是OK的,连接可视化工具进行各种操作也是ok的,但是springboot项目里面却是一直超时 原因:设置的账号密码是admin数据库的,然后连接的是自己的其他数据库(cloud...

mongodb二进制安装与yum安装

一.什么是mongodb       MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能 最丰富,最像关...

springboot整合mongodb changestream

前言 changestream是monggodb的3.6版本之后出现的一种基于collection(数据库集合)的变更事件流,应用程序通过db.collection.watch()这样的命令可以获得被监听对象的实时变更 想必对mysql主从复...

yum安装MongoDB

yum安装MongoDB

1.配置MongoDB的yum源 创建yum源文件: #cd /etc/yum.repos.d  #vim mongodb-org-4.0.repo  使用阿里云的源 [...

Centos 使用yum安装MongoDB 4.0

Centos 使用yum安装MongoDB 4.0

1.配置MongoDB的yum源 创建yum源文件: #cd /etc/yum.repos.d  #vim mongodb-org-4.0.repo  添加以下内容:(我们这里使用阿里云的源) [mngodb-org] nam...

Navicat for MongoDB 破解

Navicat for MongoDB 破解

Navicat for MongoDB是一款功能强大,直观的,易于使用MongoDB管理和开发的终极解决方案。Navicat for MongoDB为您提供了一个高度可用的GUI,以简化您的日常数据库任务。我们精心设...

Centos7下yum安装mongodb

  简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点...

MongodB数据库安装教程

MongodB数据库安装教程

MongodB数据库安装教程 1 官网下载msi安装文件 官网地址:[传送门](MongoDB Community Download | MongoDB) 阿里云盘:「mongodb-windows-x86_64-5.0.5-s...

Mongodb 安装

Mongodb 安装

ee@ubuntu:~$ curl http://downloads.mongodb.org/linux/mongodb-linux-i686-1.6.4.tgz > mongo.tgz % Total % Received % Xferd Average Sp...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。