zoukankan      html  css  js  c++  java
  • MongoDB安全策略

    MongoDB安装启动详解

    一,修改启动端口

    mongo的默认端口为27017 如果启用的是27017端口并且在公网上很容易被人攻击,所以第一点我们要修改端口

    sudo ./mongod --dbpath=/data/db --fork --port 29089 --logpath=/data/logs
    

    我们现在启动的是29089端口

    启动shell

    $ ./mongo
    

    image

    报错:

    Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
    

    这是是因为我们修改了端口,而默认连接的是27017的端口,所以我们进入shell时也要指定启动服务似的端口

    $ ./mongo --port 29089
    

    这样就可以进入了

    image

    二,用户认证

    mongodb默认是没有管理账户的,需要开发人员添加管理员账户,在启动mongo服务时添加身份认证才可以进入数据库,所以我们需要做两点:

    • 添加管理员
    • 启动服务时时添加 auth 指令

    mogodb 默认有两个数据库:
    在我们初次安装并启动mongo服务后,进入shell管理可以看到已存在两个数据库,在执行show dbs时 会显示以下两个数据库

    • admin
    • local

    我们要在admin里添加用户以便在进入数据库时认证,我是在mac下操作,以下都是mac下的命令,下面演示整个用户添加和认证的过程

    1.检查mongo服务是否开启

     $ ps -ef | grep mongo
     
    

    image

    未找到mongo启动进程

    2.启动mongo服务

    $ cd /usr/local/bin
    $ ./mongod --dbpath=/data/db --fork --port 29089 --logpath=/data/logs
    

    image

    成功启动mongo

    3.进入shell管理后台

    $ cd /usr/local/bin
    $ ./mongo --port 29089
    

    image

    4.查看当前所有数据库

    $ show dbs
    

    image

    除了admin,local数据库其他都是我业务上使用后建立的数据库,可以看到我们直接就访问到数据库并且可以操作

    5.在admin库里添加管理员用户

    $ use admin
    $ db.getUsers();
    
    

    image

    使用admin数据库并检查是否存在用户

    6 创建用户

    $ db.createUser({user:"leinov",pwd:"123456",roles:["root"]})
    
    db.getUsers();
    

    image

    db.createUser()创建一个用户,并分配角色,我们创建里一个超级管理员,这个角色可以对本机mongo实例内的所有数据库做有效的读写操作,关于db.createUser()方法参考官方文档 https://docs.mongodb.com/manual/reference/method/db.auth/

    7 重新启动服务并添加认证auth

    $ sudo ./mongod --dbpath=/data/db --fork --port 29089  --logpath=/data/logs --auth
    

    在启动命令后面加上auth这样在进入数据库时就会开启认证

    8.重新进入shell后台

    $ ./mongo--port29089
    $ show dbs
    

    image

    提示没有权限查看数据库list

    9.切换到admin数据库验证

    $ use admin
    $ db.auth({user:"leinov",pwd:"123456"})
    

    db.auth()方法是验证用户的操作方法,返回值为0/1 1为验证成功
    image

    10.再次查看数据库

    $ show dbs
    

    image

    完成端口修改和用户认证基本上就可以保证数据库的安全了,我自己的mongo也被黑了,网上其实还有很多裸奔的mongo数据库,所以一定要给自己的mongo修改端口添加用户认证保证安全。

    image

    3.0后的mongo很多方法都有变化,具体参考官方文档 https://docs.mongodb.com/

  • 相关阅读:
    PHP中GBK和UTF8乱码解决方案
    Ubuntu下的PHP开发环境架设
    Windows 7 IE主页被篡改,如何修复?
    提高代码质量:如何编写函数
    PhpStorm 10 破解方法
    PHP 常用的header头部定义汇总
    kindle 退出演示模式
    好程序与差程序Good Programming, Bad Programming
    如何让你的一天能有26小时?不完全是开玩笑
    毕业若干年,才知道自己原来认为的很多都是错的想法的成熟
  • 原文地址:https://www.cnblogs.com/leinov/p/7345328.html
Copyright © 2011-2022 走看看