我试图访问一个几个星期没有使用的旧mongodb服务器。但是RoboMongo和3TStudio都被拒绝了,所以我用putty登录,发现如下:
> show dbs;
WRITE_ME 0.000GB
admin 0.000GB
local 0.000GB
thaihome 0.000GB这看起来就像我们被黑了,这真的很奇怪,因为mongodb密码很长,满是数字/字母/字符等等。所以我们不知道他们是怎么进来的。
我有备份的一切,所以没有伤害(除了伤害自尊呵呵)。
问:现在没有任何管理内容,所以我如何从例如Robomongo或Studio3T登录到数据库?如何创建一个用户,以便您可以再次登录?
Question2: debian/ubuntu有取消删除命令或其他方式来恢复已删除的数据吗?(如果不是,我将从备份中恢复,但这需要时间)
发布于 2017-06-11 14:04:48
首先,我建议您更改您的服务器的密码(我想您现在应该已经这样做了)。
其次,我建议将mongodb端口从default(27017)更改为其他端口。当您的mongodb服务器托管在默认端口27017上时,这是最容易攻击的。检查这链接以更改端口。
接下来,我建议您只访问某些IP,这样只有那些IP才能访问数据库,从而减少了被黑客攻击的可能性。一种方法是使用仅为本地连接的bind mongodb使用127.0.0.1,世界上没有其他人可以访问您的数据库。
您可以编辑您的mongodb configuration file以绑定IP和更改端口。
阅读MongoDB配置选项以获得有关如何更改端口和绑定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: []
}
)有关详细说明和资源,请阅读如何管理用户和角色。
最后,很少有博客/链接来解释如何保护DB。我认为你应该读他们,并使你的数据库安全和黑客的证明。
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 :)
发布于 2021-06-02 12:22:29
https://stackoverflow.com/questions/44484468
复制相似问题