盒子
盒子
文章目录
  1. 安装Mongodb
  2. 简单使用
  3. MongoDB 的未授权访问漏洞
    1. 解决方法
      1. 开启 MongoDB授权

Mongodb安装笔记

Mongodb初探

本文主要讲述ubuntu下安装Mongodb的简明教程

安装Mongodb

执行命令:

1
2
3
4
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

简单使用

MongoDB默认数据存储位置:/var/lib/mongodb,日志文件存储位置:/var/log/mongodb,配置文件位置:/etc/mongod.conf,可在配置文件中修改数据存储位置和日志文件存储位置。MongoDB默认的端口号为:27017。

  • 启用mongodb:sudo service mongod start
  • 停用mongodb:sudo service mongod stop
  • 重启mongodb:sudo service mongod restart

MongoDB 的未授权访问漏洞

未授权访问漏洞成因:Mongodb 在启动的时候提供了很多参数,如日志记录到哪个文件夹,是否开启认证等。造成未授权访问的根本原因就在于启动Mongodb的时候未设置 —auth 也很少会有人会给数据库添加上账号密码(默认空口令,它像一张白纸,需要管理员自己去涂写账号),使用默认空口令这将导致任何人无需进行账号认证就可以登陆到数据服务器。

解决方法

  • 使用 iptables 控制端口 27017 (默认端口) 的访问;
  • auth 模式下运行 mongodb;

开启 MongoDB授权

  1. 添加一个管理员用户

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    > use admin
    > db.createUser(
    {
    user: "root",
    pwd: "YOUR PASSWORD",
    roles:
    [
    {
    role: "userAdminAnyDatabase",
    db: "admin"
    }
    ]
    }
    )
  2. 授权模式下运行 mongod

  • 先停止服务:$ sudo service mongod stop

  • 编辑/etc/mongod.conf文件, 找到 #auth=true , 去掉注释。

  • 重新运行服务:$ sudo service mongod start

  • 登录:mongo admin -u 用户名 -p 密码 --port 端口号