Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb遭到黑客攻击,如何创建新用户,有没有办法恢复?_Mongodb - Fatal编程技术网

Mongodb遭到黑客攻击,如何创建新用户,有没有办法恢复?

Mongodb遭到黑客攻击,如何创建新用户,有没有办法恢复?,mongodb,Mongodb,我试图访问一个我已经好几个星期没用过的旧mongodb服务器。但是RoboMongo和3TStudio都被拒绝了,所以我用putty登录并发现: > show dbs; WRITE_ME 0.000GB admin 0.000GB local 0.000GB thaihome 0.000GB 这看起来很像我们被黑客攻击了,这真的很奇怪,因为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是否有取消删除命令或其他方法来恢复删除的数据?(如果没有,我将从备份中恢复,但这需要时间)

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

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

接下来,我建议您只允许访问某些IP,以便只有这些IP可以访问您的数据库,从而减少被黑客攻击的机会。一种方法是使用
127.0.0.1
绑定mongodb来实现,这只是本地连接,世界上没有其他人能够访问您的数据库

您可以编辑
mongodb配置文件
以绑定IP并更改端口

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

它将是这样的:

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
接下来,您可以创建新的管理员用户来访问数据库。使用
createRole
创建新的基于角色的用户。最好在mongodb服务器中使用基于角色的身份验证

use admin
db.createRole(
   {
     role: "mongostatRole",
     privileges: [
       { resource: { cluster: true }, actions: [ "serverStatus" ] }
     ],
     roles: []
   }
)
请阅读详细解释和参考资料

最后,很少有博客/链接解释如何保护数据库。我认为你应该阅读它们,使你的数据库安全和黑客的证据


我希望这对你有帮助!蒙哥达快乐D:)

在第一个答案中添加:

如果要通过
bindip
绑定多个IP地址,则需要将IP地址配置到服务器的网络接口,否则MongoDB将不允许绑定多个IP地址


你检查过写信给我吗?至少看一看,试着找出他们索要赎金的原因何在——他们想要1枚比特币——我从很多付费的人那里听到了一些消息,但他们仍然没有收回数据。付钱给“绑架者”对我来说从来都不是一个选择。我宁愿付100比特币让他“照顾”呵呵呵呵:-哈哈好选择:P@torbenrudgaard很遗憾听到这个消息,但是一个人从自己的错误中学习。需要指出的三点:第一,绝不在生产中使用Robomongo/Studio3T;第二,绝不将您的凭据推送到Github或其他VCS;第三,限制对实例(db服务器)的管理访问(网络级别)。@shikharbansal ahhh。。。。这就是我们所做的-这就是他们获得密码的地方。该死的:-德拉维·尚卡尔,你的回答中充满了火花,我认为你的黑色护目镜是政府强制要求的。哈哈哈@shikharbansal你是对的。我可以使用一些Ravi来保护我们的服务器,这是肯定的:-D谢谢Ravi的回答@RaviShankar非常感谢:)一个简单的问题,我有一个mongodb在本地运行,无法访问外部,我需要将它移动到我们的海洋水滴服务器(mongodb服务器)。我读过关于mongodump/mongorestore的mongo文档,但是它的技术性很强,他们写了太多我不需要知道的东西,完全忘记了我们普通人的一个简单命令示例。我设法把它倒进了一个文件夹。现在我必须恢复:
mongorestore——端口27117——存档
,但是我应该把文件放在新服务器的什么位置?我不需要一个路径来实现这一点吗?通常,除非指定,否则转储是在默认的
dump/
文件夹中创建的。因此,当您使用mongorestore时,必须提供如下位置:
mongorestore——端口27117
这里是官方mongodb文档中的另一个好教程。另外,将端口从27117再次更改为其他端口,人们可能会从这里找到您的mongodb端口:p:D