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
storage:
dbPath: lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: log mongod.log
net:
port: 27017
bindIp: 192.168.1.101
security:
authorization: enabled
保存退出
No.3重启mongodb服务sudo service mongod restart
注:多执行几次,如果发现 stop 提示** unknown就说明配置文件修改不对,认真核对修改mongod.conf文件即可。