实现 MongoDB 白名单 Linux 的步骤

对于刚入行的小白来说,实现 MongoDB 白名单 Linux 可能会有一些困惑。下面我将为你详细介绍实现的步骤,并提供每一步需要做的事情以及相应的代码。

步骤一:启用 MongoDB 认证

在开始实现白名单功能之前,我们首先需要启用 MongoDB 的认证机制。这样才能为用户设置白名单。

代码:

# 打开 MongoDB 配置文件
sudo nano /etc/mongod.conf

在配置文件中找到 security 部分,将 authorization 设置为 enabled

security:
  authorization: enabled

保存并关闭文件后,重启 MongoDB 服务:

sudo systemctl restart mongod

步骤二:创建管理员用户

在启用认证后,我们需要创建一个管理员用户,以便管理白名单和其他用户。管理员用户具有最高权限。

代码:

# 连接到 MongoDB 服务器
mongo

# 切换到 admin 数据库
use admin

# 创建管理员用户
db.createUser(
  {
    user: "admin",
    pwd: "admin_password",
    roles: [ { role: "root", db: "admin" } ]
  }
)

请替换 admin_password 为你自己设置的密码。

步骤三:创建白名单用户

现在我们可以创建白名单用户了。白名单用户只能访问特定的数据库和集合,其他数据库和集合对他们来说是不可见的。

代码:

# 切换到 admin 数据库
use admin

# 创建白名单用户
db.createUser(
  {
    user: "whitelist_user",
    pwd: "whitelist_password",
    roles: [
      { role: "readWrite", db: "whitelist_db" },
      { role: "read", db: "other_db" }
    ]
  }
)

请替换 whitelist_userwhitelist_password 为你自己设置的用户名和密码,whitelist_dbother_db 分别为允许访问的数据库。

步骤四:启用 MongoDB IP 白名单

启用 IP 白名单可以限制只有特定 IP 地址的用户才能访问 MongoDB。

代码:

# 打开 MongoDB 配置文件
sudo nano /etc/mongod.conf

在配置文件中找到 net 部分,添加 bindIp 选项并设置需要允许访问的 IP 地址。

net:
  bindIp: 127.0.0.1,192.168.0.100

这个例子中,我们允许本地回环地址和 IP 地址为 192.168.0.100 的主机访问 MongoDB。你需要根据自己的网络环境进行设置。

保存并关闭文件后,重启 MongoDB 服务:

sudo systemctl restart mongod

步骤五:测试白名单设置

最后,我们可以测试我们的白名单设置是否有效。

代码:

# 以白名单用户身份连接到 MongoDB 服务器
mongo -u whitelist_user -p whitelist_password --authenticationDatabase whitelist_db

# 尝试访问白名单数据库
use whitelist_db

# 查询白名单集合
db.whitelist_collection.find()

如果以上代码没有报错并且能够成功执行,说明白名单设置生效了。

总结

通过以上步骤,我们成功地实现了 MongoDB 白名单 Linux。首先,我们启用了 MongoDB 的认证机制。然后创建了管理员用户和白名单用户。接下来,我们启用了 IP 白名单来限制访问。最后,我们进行了测试以验证设置的有效性。

希望这份指南对你有所帮助!如果还有其他问题,欢迎继续提问。