• MongoDB 安全配置


    前言

    随着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

  • 相关阅读:
    audiojs 音频插件使用教程
    JavaScrip 原生多文件上传及预览 兼容多浏览器
    node操作mongdb的常用函数示例
    D3基础---比例尺
    D3基础---简介和数据
    前端性能优化和规范
    CSS代码优化(转载)
    CSS基础知识---浮动,定位和盒模型
    CSS基础知识
    用户样式,作者样式和浏览器默认样式
  • 原文地址:https://www.cnblogs.com/yangxiaoyi/p/7504080.html
Copyright © 2020-2023  润新知