Mongodb 添加安全设置
2016-12-26
在digitalocen上部署了mongodb,为了测试方便,对mongodb全部采用默认设置,处于裸奔状态。让人意想不到的是,居然被黑了。所有数据被删除,且让交0.15比特币的赎金。从网上查了查,很多人遇到同样问题。
基础的安全加固,就是对mongodb设置安全认证。将步骤记录如下:
环境:
OS:OSX EI Captain
mongodb:v3.2.8
步骤
- 以非认证模式启动服务
./mongod —dbpath db
不需要任何用户名和密码即可操作mongodb - 添加角色用户
use admin
db.createUser( { user: “admin”,
pwd: “changeMe”,
roles: { role: “clusterAdmin”, db: “nodded” }, ]( { role: “readAnyDatabase”, db: “nodedb” },
“readWrite”] },
{ w: “majority” , wtimeout: 5000 } )
\这里在admin 数据库中 创建一个admin 的用户,其有clusterAdmin,readAnyDatabase和readWrite的角色。
mongodb有一些列build-in的role。
- 以认证模式启动服务
./mongod —dbpath db —auth
此时再操作数据库需要,根据操作需要提供相对应的权限。
- shell中操作
在shell中权限认证,有两种方式:
- 在连接数据时提供认证
格式如下:./mongo 数据库名称 -u 用户名 -p 密码
可以-p后面填写密码,但是会prompt 让输入密码 - 在使用数据是提供该库认证
命令行如下:use noddb
db.auth(“用户名“,”密码“)
认证成功,返回1,失败返回0