Mongodb遭到黑客入侵,如何创建新用户并有办法恢复?

时间:2017-06-11 13:36:03

标签: mongodb

我试图访问我曾经使用过几周的旧mongodb服务器。但是RoboMongo和3TStudio都被拒绝了,所以我用putty登录并发现了这个:

> show dbs;
WRITE_ME  0.000GB
admin     0.000GB
local     0.000GB
thaihome  0.000GB

这看起来很像我们被黑了,这真的很奇怪,因为mongodb密码非常长,并且充满了数字/字母/字符等。所以我们不知道他们是如何进入的。

我确实备有所有东西,所以没有伤害(除了伤害骄傲嘿嘿)。

问题:目前管理员中没有任何内容,所以我如何从例如数据库登录到数据库。 Robomongo还是Studio3T?如何创建用户以便再次登录?

问题2:debian / ubuntu是否有取消删除命令或其他方法来恢复已删除的数据? (如果不是我将从备份恢复,但需要时间)

2 个答案:

答案 0 :(得分:3)

首先,我建议您更改mongodb服务器的密码(我猜您现在已经这样做了。)

其次,我建议您将mongodb端口default(27017)更改为其他端口。当您的mongodb服务器托管在默认端口27017上时,最容易入侵。检查this链接以更改端口。

接下来,我建议你只访问某些IP ,这样只有那些IP才能访问你的数据库,从而减少被黑客攻击的可能性。一种方法是bind mongodb 127.0.0.1只有本地连接mongodb configuration file,世界上没有其他人可以访问你的数据库。

您可以编辑systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: journal: enabled: true processManagement: fork: true net: bindIp: 127.0.0.1 // if you want to provide multiple do this : [127.0.0.1,X.X.X.X] port: 27017 // change this to some other port : 12345 setParameter: enableLocalhostAuthBypass: false 以绑定IP并更改端口。

阅读MongoDB configuration options以获取有关如何更改端口和绑定IP的详细信息。

它将是这样的:

createRole

接下来,您可以创建新的管理员用户来访问您的数据库。使用use admin db.createRole( { role: "mongostatRole", privileges: [ { resource: { cluster: true }, actions: [ "serverStatus" ] } ], roles: [] } ) 创建基于角色的新用户。最好在你的mongodb服务器中进行基于角色的身份验证。

.then

阅读How to Manage users and Roles以获取详细说明和资源。

最后,很少有Blogs / Links解释如何保护数据库。我认为你应该阅读它们并使你的数据库安全和破解证明。

https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-mongodb-on-ubuntu-16-04

https://www.cyberciti.biz/faq/how-to-secure-mongodb-nosql-production-database/

我希望这会帮助你!很高兴保护MongoDB。 :D:)

答案 1 :(得分:0)

添加到第一个答案:

如果你想通过 bindip 绑定多个 IP 地址,那么你需要将 IP 地址配置到服务器的网络接口,否则 MongoDB 不会让你绑定多个 IP 地址。

Here is more