MongoDB-3.2 安装及认证配置

0x00 前言

  前段时间学习mongodb,安装mongodb最新版3.2.X,然后安全配置。网上搜索都是低版本的设置,坑太多,写下了做个笔记备用

0x01 安装

我的系统是:Ubuntu 14.04
看得懂英文的直接参考:mongodb官网安装教程(其实不需要懂英语)

  • 添加key:
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

  • 创建mongodb文件清单:
    echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

  • 更新源
    sudo apt-get update
  • 若安装最新版:
    sudo apt-get install -y mongodb-org
  • 若安装指定版本(修改对应版本号):
    sudo apt-get install -y mongodb-org=3.2.0 mongodb-org-server=3.2.0 mongodb-org-shell=3.2.0 mongodb-org-mongos=3.2.0 mongodb-org-tools=3.2.0

0x02使用

  • 启动mongo服务:
    sudo service mongod start
  • 停止mongo服务:
    sudo service mongod stop
  • 重启mongo服务:
    sudo service mongod restart

0x03安全配置

注:默认情况下mongodb是没有访问验证的,这才导致了很多的未授权访问泄露铭感信息。
  打开认证需要先建立用户然后开启认证配置。在mongodb中认证是基于数据库的,新建用户的时候申明他的角色(权限),该用户只有在对应的数据库下才能操作,admin需要先在admin数据库下认证然后切换到其他需要操作的数据库

新建用户

NO.1新建管理员用户
shell执行:

  • mongo 192.168.1.101
  • use admin
  • db.createUser({"user":"你的用户名","pwd":"你的密码","roles":[{role:"root",db:"admin"}]})
    注:更加详细的角色配置参考:createUser角色管理

NO.2打开配置文件
sudo nano /etc/mongod.conf

编辑mongd.conf文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:

# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log

# network interfaces
net:
port: 27017
bindIp: 192.168.1.101 #绑定ip


#processManagement:

security: #打开认证
authorization: enabled

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

保存退出

No.3重启mongodb服务
sudo service mongod restart
注:多执行几次,如果发现 stop 提示** unknown就说明配置文件修改不对,认真核对修改mongod.conf文件即可。