我试图访问我曾经使用过几周的旧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是否有取消删除命令或其他方法来恢复已删除的数据? (如果不是我将从备份恢复,但需要时间)
答案 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)