如何保护 MongoDB?我被黑了

Jam*_*com 1 mongodb mongodb-query

我之前没有使用过 MongoDB,在设置完所有内容后,我的 mongoDB 被黑客攻击了 1 秒,请帮我回答我的问题:“如何保护我的 mongoDB?”

在此输入图像描述

Sau*_*try 5

为了保护 MongoDB,您需要:

\n
    \n
  • 启用安全性(在 mongod.conf 文件中),
  • \n
  • 创建数据库用户进行身份验证,
  • \n
  • 您可以将端口 27001(默认)更改为任何端口,例如 27000(在 mongod.conf 文件中)
  • \n
  • 您可以添加特定的 IP 地址以允许连接和访问您的数据库(在 mongod.conf 文件中)。
  • \n
\n

你需要找到mongod.conf并打开它。(谷歌一下 mongod.conf 存储在您的电脑 windows/mac/ubuntu 中的位置)

\n
security:\n  authorization: enabled\n
Run Code Online (Sandbox Code Playgroud)\n

关闭端口 27001 上的 MongoDB 实例

\n
mongo admin --port 27001 --eval 'db.shutdownServer()'\n
Run Code Online (Sandbox Code Playgroud)\n

使用新配置重新启动 MongoDB 实例

\n
mongod -f mongod.conf\n
Run Code Online (Sandbox Code Playgroud)\n

使用以下命令在\xc2\xa0管理数据库\xc2\xa0 上创建第一个用户

\n
mongo\n>use admin\n\ndb.createUser({\n  user: "USER_NAME_HERE",\n  pwd: "PASSWORD_HERE",\n  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]\n});\n
Run Code Online (Sandbox Code Playgroud)\n

例子 :

\n
db.createUser({\n  user: "AdminUser",\n  pwd: "57d49$4%0beqwe#adb4d",\n  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]\n});\n
Run Code Online (Sandbox Code Playgroud)\n

之后运行以下命令来检查用户是否经过身份验证

\n

语法: db.auth( "USER_NAME_HERE", "PASSWORD_HERE" )

\n
db.auth( "AdminUser", "57d49$4%0beqwe#adb4d" )\n
Run Code Online (Sandbox Code Playgroud)\n

检查用户:

\n
db.getUsers()\n
Run Code Online (Sandbox Code Playgroud)\n

它将返回:

\n
[\n        {\n                "_id" : "admin.AdminUser",\n                "userId" : UUID("31ccb892-d3ef-46b6-8ac1-2e9b5be11892"),\n                "user" : "globalAdminUser",\n                "db" : "admin",\n                "roles" : [\n                        {\n                                "role" : "userAdminAnyDatabase",\n                                "db" : "admin"\n                        }\n                ],\n                "mechanisms" : [\n                        "SCRAM-SHA-1",\n                        "SCRAM-SHA-256"\n                ]\n        }\n]\n
Run Code Online (Sandbox Code Playgroud)\n

现在您的数据库是安全的,只有经过身份验证的用户才能访问它。

\n

您可以通过以下方式连接 mongo:

\n
mongo admin --port 27001 --username 'AdminUser' --password '57d49$4%0beqwe#adb4d'\n
Run Code Online (Sandbox Code Playgroud)\n