我们在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
你知道这里发生了什么吗?我们实际上没有做任何事情,我们发现整个应用程序都无法正常工作,因为无法找到数据库。
答案 0 :(得分:1)
我认为你被劫持了!
根据http://thehackernews.com/2017/01/secure-mongodb-database.html和http://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/
如果所有配置都正确,则应拒绝此连接!