温馨提示×

Ubuntu中MongoDB的安全设置有哪些

小樊
47
2026-01-05 07:00:02
栏目: 云计算

Ubuntu 上 MongoDB 的安全设置清单

一 身份与访问控制

  • 启用访问控制:在配置文件 /etc/mongod.conf 中开启认证,重启服务生效。示例:
    security:
      authorization: enabled
    sudo systemctl restart mongod
    
  • 创建管理员账户:先连入 shell,切换到 admin 库后创建高权限用户(如 root),后续连接需指定认证库。
    use admin
    db.createUser({
      user: "admin",
      pwd: "StrongPassword123!",
      roles: ["root"]
    })
    mongo --host 127.0.0.1 --authenticationDatabase admin -u admin -p
    
  • 最小权限原则:为应用创建专库用户,仅授予所需角色(如 readWritedbAdmin 等),避免使用 root。示例:
    use myAppDb
    db.createUser({
      user: "appUser",
      pwd: "AppPass!23",
      roles: [{ role: "readWrite", db: "myAppDb" }]
    })
    
  • 角色选择建议:常见角色包括 readreadWritedbAdminuserAdmindbOwner、以及实例级 readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabasedbAdminAnyDatabase、集群级 clusterMonitor/clusterManager/clusterAdmin、备份恢复 backup/restore、以及 root。按职责分配,定期审计用户与权限。

二 网络与防火墙

  • 绑定地址最小化:仅监听必要接口,优先 127.0.0.1;如有内网访问需求,显式列出内网 bindIp。示例:
    net:
      bindIp: 127.0.0.1,192.168.1.100
    sudo systemctl restart mongod
    
  • 防火墙限制来源:使用 UFW 仅放行可信网段到 27017/tcp。示例:
    sudo ufw allow from 192.168.1.0/24 to any port 27017
    sudo ufw enable
    sudo ufw status numbered
    
  • 云环境叠加防护:在云厂商安全组/防火墙中同样仅允许内网或跳板机网段访问 27017,避免公网直连数据库。

三 加密与传输安全

  • 启用 TLS/SSL 加密通信:在 mongod.conf 中配置证书与 CA,生产环境务必开启校验。示例:
    net:
      ssl:
        mode: requireSSL
        PEMKeyFile: /path/to/your/ssl.pem
        CAFile: /path/to/your/ca.pem
        sslAllowInvalidCertificates: false
    sudo systemctl restart mongod
    
  • 证书管理:使用受信任 CA 签发证书;妥善保护私钥(权限 600),定期轮换;客户端连接时启用 TLS 参数。

四 审计、日志与备份

  • 启用审计日志:记录关键操作,便于合规与溯源。示例:
    systemLog:
      destination: file
      logAppend: true
      path: /var/log/mongodb/mongod.log
    # 视版本开启审计(如 enterprise 版本支持 auditLog)
    
  • 集中与轮转:结合 logrotate 或系统日志设施进行日志轮转与归档,避免磁盘被占满。
  • 定期备份:使用 mongodump 或企业级备份方案,将备份存放于与数据库隔离的存储,定期校验可恢复性。示例:
    mongodump --out /path/to/backup/$(date +%F)
    
  • 持续监控:关注 mongod.log 与监控指标(连接数、慢查询、复制延迟等),异常及时告警。

五 复制集与密钥文件及运行安全

  • 复制集身份认证:部署 Replica Set 时使用 KeyFile 实现节点间认证,提升集群安全。示例:
    openssl rand -base64 741 > /etc/mongodb-keyfile
    chmod 600 /etc/mongodb-keyfile
    chown mongodb:mongodb /etc/mongodb-keyfile
    # 在 /etc/mongod.conf 的 security 段添加:
    security:
      keyFile: /etc/mongodb-keyfile
    sudo systemctl restart mongod
    
  • 服务运行安全:以 mongodb 系统用户运行守护进程,数据目录(如 /var/lib/mongodb)属主属组设置为 mongodb:mongodb,避免使用 root
  • 系统加固与维护:保持 UbuntuMongoDB 补丁更新;仅开放必要端口与服务;对公网完全隔离数据库;定期审查用户、角色与防火墙规则。

0