首页主机资讯Ubuntu MongoDB的安全认证如何设置

Ubuntu MongoDB的安全认证如何设置

时间2025-12-05 15:59:04发布访客分类主机资讯浏览577
导读:Ubuntu 上 MongoDB 安全认证设置指南 一 准备与原则 默认情况下,MongoDB 在 Ubuntu 上未启用访问控制,任何能登录服务器的本地用户都可能对数据库进行任意读写;同时,较新版本通常只绑定 127.0.0.1,不会自...

Ubuntu 上 MongoDB 安全认证设置指南

一 准备与原则

  • 默认情况下,MongoDB 在 Ubuntu 上未启用访问控制,任何能登录服务器的本地用户都可能对数据库进行任意读写;同时,较新版本通常只绑定 127.0.0.1,不会自动对外开放,但认证仍应显式开启。建议先创建管理员账户,再开启认证,最后再按需开放远程访问与加密通道。

二 启用认证的步骤

  1. 创建管理员用户(在未开启认证的状态下)
    • 连接 Mongo Shell:mongo
    • 切换到 admin 库并创建用户(示例赋予最高权限,生产可酌情收敛): use admin db.createUser({ user: “AdminSammy”, pwd: “StrongPasswordHere”, roles: [ { role: “root”, db: “admin” } ] } )
    • 退出:exit
  2. 启用认证
    • 编辑配置文件 /etc/mongod.conf,开启授权: security: authorization: enabled
    • 重启服务并设为开机自启: sudo systemctl restart mongod sudo systemctl enable mongod
  3. 验证
    • 未认证执行命令应被拒绝;使用管理员登录验证: mongo -u AdminSammy -p --authenticationDatabase admin db.runCommand({ connectionStatus: 1 } )
    • 看到 authenticatedUserRoles 即表示认证生效。

三 远程访问与网络加固

  • 仅必要时开放远程;优先通过 UFW 或云安全组限制来源 IP,再修改 MongoDB 绑定地址:
    • UFW 示例(仅允许指定客户端 IP 访问 27017): sudo ufw allow from CLIENT_IP to any port 27017
    • 配置 bindIp(示例同时监听本地与内网地址): net: port: 27017 bindIp: 127.0.0.1,192.168.1.100
    • 重启生效:sudo systemctl restart mongod
    • 远程连接测试(注意使用 --authenticationDatabase): mongo -u AdminSammy -p --authenticationDatabase admin --host SERVER_IP
  • 如无需远程,保持仅 127.0.0.1 绑定更安全。

四 加密与进一步加固

  • 启用 TLS/SSL 加密传输(示例为单向校验):
    • 准备证书与密钥(PEM 格式),在配置中启用: net: ssl: mode: requireSSL PEMKeyFile: /path/to/mongod.pem CAFile: /path/to/ca.pem sslAllowInvalidCertificates: false
    • 重启:sudo systemctl restart mongod
  • 其他建议
    • 定期备份:mongodump --out /path/to/backup
    • 审计与日志:确保 systemLog.destination 为 file 并集中审计分析
    • 最小权限原则:按库创建用户,避免使用 overly broad 的角色。

五 常见问题与排错

  • 配置项不存在或无法识别:新版使用 YAML 风格(/etc/mongod.conf),确保缩进与语法正确;旧包可能使用 “auth=true”,以你的实际配置文件为准。
  • 重启失败:检查配置文件语法(mongod --config /etc/mongod.conf --fork 可前台校验),查看日志 /var/log/mongodb/mongod.log 定位错误。
  • 连接被拒绝:确认 UFW/安全组已放行 27017、bindIp 包含客户端来源、用户名与 --authenticationDatabase 正确(管理员通常为 admin)。
  • 忘记管理员密码:在单实例且可停机的场景下,临时以无认证方式启动(命令行加 --auth 关闭或配置 authorization: disabled),登录后重置密码,再恢复认证并重启。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MongoDB的安全认证如何设置
本文地址: https://pptw.com/jishu/764820.html
SecureCRT连接Debian时如何解决乱码 debian分区支持多种文件系统吗

游客 回复需填写必要信息