首页主机资讯Ubuntu中MongoDB如何安全设置

Ubuntu中MongoDB如何安全设置

时间2026-01-20 02:09:06发布访客分类主机资讯浏览213
导读:Ubuntu 上 MongoDB 的安全设置清单 一 基础防护 启用访问控制:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,重启服务后所有连接必须提供凭据。 配置示例: security: aut...

Ubuntu 上 MongoDB 的安全设置清单

一 基础防护

  • 启用访问控制:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,重启服务后所有连接必须提供凭据。
    • 配置示例:
      • security:
        • authorization: enabled
    • 重启:sudo systemctl restart mongod
  • 绑定监听地址:在 net.bindIp 仅绑定必要接口,优先使用 127.0.0.1;如需内网访问,可绑定内网 IP 列表(如 127.0.0.1,192.168.1.100),避免 0.0.0.0
    • 配置示例:
      • net:
        • bindIp: 127.0.0.1,192.168.1.100
        • port: 27017
    • 重启:sudo systemctl restart mongod
  • 防火墙限制:使用 UFW 仅放行可信来源访问 27017/tcp
    • 仅本地:sudo ufw allow 27017/tcp(或默认拒绝入站,仅放开必要来源)
    • 内网网段:sudo ufw allow from 192.168.1.0/24 to any port 27017
    • 启用:sudo ufw enable;核对:sudo ufw status

二 身份与权限

  • 创建管理员账户(在启用认证前完成一次本地连接创建,随后即无法无凭据操作):
    • 连接:mongo
    • 创建:
      • use admin
      • db.createUser({ user: “admin”, pwd: “StrongPassword123!”, roles: [“root”] } )
  • 最小权限原则:为应用创建专库专用户,仅授予所需角色(避免使用 root)。
    • 示例:
      • use myAppDb
      • db.createUser({ user: “appUser”, pwd: “AppPass!23”, roles: [{ role: “readWrite”, db: “myAppDb” } ] } )
  • 连接串示例(注意认证库为 admin 或相应用户所在库):
    • mongo -u admin -p --authenticationDatabase admin
    • mongo -u appUser -p --authenticationDatabase myAppDb
  • 常用角色参考:
    • 只读:read;读写:readWrite;库管理:dbAdmin;用户管理:userAdmin;库所有者:dbOwner
    • 实例级:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    • 集群管理:clusterMonitor、clusterManager、clusterAdmin
    • 备份恢复:backup、restore;超级角色:root

三 加密与传输

  • 启用 TLS/SSL:在 net.ssl 配置证书与 CA,强制加密传输,防止窃听与中间人攻击。
    • 配置示例:
      • net:
        • ssl:
          • mode: requireSSL
          • PEMKeyFile: /path/to/your/ssl.pem
          • CAFile: /path/to/your/ca.pem
          • sslAllowInvalidCertificates: false
    • 重启:sudo systemctl restart mongod
  • 证书建议:使用受信任 CA 签发或企业内网 CA;妥善保护私钥,定期轮换

四 运维与审计

  • 日志与审计:确保日志写入文件并持续监控;按需开启审计日志以记录关键操作(如鉴权成功/失败、授权变更、关键数据访问)。
    • 基础日志示例:
      • systemLog:
        • destination: file
        • logAppend: true
        • path: /var/log/mongodb/mongod.log
    • 审计(示例思路):在配置中启用审计并定义审计事件过滤器,集中到安全信息与事件管理(SIEM)系统分析。
  • 备份与恢复:制定定期备份策略(如每日全量/增量),验证备份可用性与恢复演练;常用工具 mongodump/mongorestore
  • 持续更新与加固:
    • 系统与组件更新:sudo apt update & & sudo apt upgrade;MongoDB 版本可“锁定”避免意外升级引发兼容性问题(如 dpkg hold)。
    • 最小暴露面:仅在需要时开放端口与来源;禁用不必要的接口与插件;定期审查用户、角色与防火墙规则

五 快速验证

  • 本机未认证访问应被拒绝:
    • mongo --eval “db.runCommand({ ping:1} )” 应返回错误(未提供凭据)
  • 管理员可正常连接并具备权限:
    • mongo -u admin -p --authenticationDatabase admin --eval “db.runCommand({ ping:1} )” 应返回 { “ok” : 1 }
  • 应用用户仅能在所属库执行授权操作:
    • mongo -u appUser -p --authenticationDatabase myAppDb
    • 在 myAppDb 可读写;在 admin 或其他库应受限
  • 远程访问仅来自白名单:
    • 从非白名单主机连接应超时/被拒绝;UFW 与 bindIp 规则生效

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


若转载请注明出处: Ubuntu中MongoDB如何安全设置
本文地址: https://pptw.com/jishu/786519.html
Debian系统Filezilla更新后需要重启吗 Debian中Filezilla支持多线程传输吗

游客 回复需填写必要信息