MongoDB突然丢失/未找到数据

时间:2017-01-07 09:39:44

标签: mongodb digital-ocean

我们在Digital Ocean的MongoDB数据库突然失踪了。当我运行mongod时,它会说:

MongoDB starting : pid=27161 port=27017 dbpath=/data/db 64-bit host=unifyhub-db
2017-01-07T17:36:06.617+0800 I CONTROL  [initandlisten] db version v3.0.11
2017-01-07T17:36:06.617+0800 I CONTROL  [initandlisten] git version: 48f8b49dc30cc2485c6c1f3db31b723258fcbf39
2017-01-07T17:36:06.617+0800 I CONTROL  [initandlisten] build info: Linux ip-10-65-215-98 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2017-01-07T17:36:06.617+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2017-01-07T17:36:06.617+0800 I CONTROL  [initandlisten] options: {}
2017-01-07T17:36:06.676+0800 E NETWORK  [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
2017-01-07T17:36:06.677+0800 E NETWORK  [initandlisten]   addr already in use
2017-01-07T17:36:06.677+0800 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-01-07T17:36:06.677+0800 I CONTROL  [initandlisten] dbexit:  rc: 100

你知道这里发生了什么吗?我们实际上没有做任何事情,我们发现整个应用程序都无法正常工作,因为无法找到数据库。

2 个答案:

答案 0 :(得分:1)

我认为你被劫持了!

根据http://thehackernews.com/2017/01/secure-mongodb-database.htmlhttp://securityaffairs.co/wordpress/55018/cyber-crime/mongodb-hacked.html,有一名黑客瞄准打开的MongoDB数据库,并要求勒索赎回数据。

我遇到了和你一样的问题。我认为这是与数字海洋相关的事情,但在阅读这些帖子后,我检查了我的服务器并确认它被劫持了。

我打开了一个mongo shell

mongo;

列出了数据库

show dbs;

找到一个名为READ1的数据库我检查了它,发现只有一条记录的集合,来自劫持者的消息

use READ1;
show collections; // found a collection called info
db.info.find()

找到了这个文件:

  

{“_ id”:ObjectId(“5877674456ae6684507ac017”),“mail”:   “ha******@si*****.org”,“text”:“发送0.1 BTC到这个地址*****   并使用您的服务器的IP联系此电子邮件以恢复您的数据库   !“}

不幸的是,我一段时间没有检查服务器而且我只保留了最后五个备份,所以我丢失了数据。但幸运的是,我们仍处于开发模式,我们没有敏感数据。

无论如何,我发现我的Mongodb版本(2.4.10 Tokumx发行版)默认允许远程访问。我从我的本地机器上尝试了以下操作,并且令人惊讶地连接了!!

mongo server-ip:27017/database-name 

最后,我做了以下步骤来禁用远程访问

ps aux | grep mongo //found path of the configuration file (/etc/tokumx.conf)

然后如here所述,我使用vim将行bind_ip = 127.0.0.1附加到配置文件 然后重新启动我的tokumx服务(在你的情况下为mongodb)

sudo service tokumx restart

现在禁用远程访问。

答案 1 :(得分:0)

运行mongod时,请确保通过显式调用来加载配置文件:

mongod --config /etc/mongod.conf

在你的/etc/mongod.conf文件中确保你有

bindIp: 127.0.0.1

现在用这个配置文件重新启动之后,就像Ahmed ElBayaa说的那样(由于声誉很低我无法发表评论),请尝试使用远程机器进行连接:

mongo server-ip:27017/

如果所有配置都正确,则应拒绝此连接!