2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

##前言 最近好多mongodb数据库用户数据被删除,并且被勒索。包括我自己。
由于之前不太懂,并没有对数据库设置权限就可以直接用。
于是产生如下悲剧:
2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第1张图片

随后查看服务端日志:
2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第2张图片

详细经过
##一、win7下尝试自己攻击自己的数据库

  • cmd进入自己的mongdb安装目录bin目录,然后做如下操作,轻轻松松可以插入成功,真尴尬!!!
    2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第3张图片

##二、解决问题 网上搜了一下,先给mongodb加权限。

  • 2.1、开启安全验证注意路径匹配好就好了。开启auth参考博客
mongod --dbpath "C:\Program Files\MongoDB\Server\3.2\bin\data\db" --logpath "C:\Program Files\MongoDB
\Server\3.2\bin\data\log\MongoDB.log" --auth 

2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第4张图片

  • 2.2、新建管理员用户和数据库用户,注意这儿不能用addUser,而是createUser。因为addUser貌似是老版本的。参考博客
    这里用到的命令:db.system.users.find();查找所用数据库用户。db.createUser({})创建用户。

2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第5张图片

  • 2.3、(1)、再次连接的时候提示需要auth权限、(2)、先user admin,然后db.auth(用户名,密码);返回1表示授权成功。
    2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第6张图片

  • 2.4、mongoose连接授权过的mongodb。这样应该就可以安全的操作数据库了。

/**
 * 假如我们这里使用数据库test,所设置的用户名和密码都是test。
 */
module.exports={
    mongodb:"mongodb://test:test@localhost/test"
}

参考博客

##二、待解决问题。 robomongo此时可以通过admin的用户名密码可以登录成功。
2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第7张图片
但是admin的用户名密码并不能操作某一个数据库。如我们当我点击test会报错。这样的话,我操作数据库只能再cmd下了,着实不太方便。
2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!_第8张图片

转载于:https://my.oschina.net/u/2480757/blog/821649

你可能感兴趣的:(2017.01数万个mongodb数据库被攻击,一定要给mongodb数据库加权限!)