温馨提示×

Ubuntu下MongoDB安全设置有哪些

小樊
48
2025-09-29 18:53:33
栏目: 云计算

Ubuntu下MongoDB安全设置关键措施

1. 安装官方MongoDB包

从MongoDB官方APT仓库安装(而非Ubuntu默认仓库),确保获得最新安全版本和更新支持。操作命令:

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

2. 启用身份验证(核心安全机制)

编辑MongoDB配置文件/etc/mongod.conf,在security section添加authorization: enabled,强制所有连接需提供有效用户名和密码。修改后重启服务:

sudo systemctl restart mongod

创建管理员用户(需切换至admin数据库):

mongo
use admin
db.createUser({
  user: "adminUser",
  pwd: "StrongPassword123!",
  roles: [{ role: "root", db: "admin" }]
})

3. 限制网络访问

  • 配置文件绑定IP:修改/etc/mongod.conf中的net.bindIp,仅允许本地(127.0.0.1)或特定IP访问(如192.168.1.100):
    net:
      bindIp: 127.0.0.1,192.168.1.100  # 多IP用逗号分隔
      port: 27017
    
  • 防火墙规则:使用ufw限制MongoDB端口(默认27017)的访问,仅允许可信IP:
    sudo ufw allow from 192.168.1.100 to any port 27017
    sudo ufw enable
    

4. 配置传输加密(SSL/TLS)

为防止数据在传输中被窃取,需启用SSL/TLS加密。步骤如下:

  • 获取SSL证书(可使用Let’s Encrypt免费证书或自签名证书)。
  • 修改/etc/mongod.conf,指定证书和私钥路径:
    net:
      tls:
        mode: requireTLS
        certificateKeyFile: /path/to/server.pem  # 证书文件(含私钥)
        CAFile: /path/to/ca.pem                  # CA证书(验证客户端证书,可选)
    
  • 重启MongoDB服务使配置生效。

5. 细粒度权限管理

  • 创建数据库用户:为每个数据库创建专用用户,分配最小必要权限(如readWrite仅用于读写,dbAdmin用于数据库维护):
    use mydb
    db.createUser({
      user: "mydbUser",
      pwd: "MyDbPassword456!",
      roles: [{ role: "readWrite", db: "mydb" }]
    })
    
  • 自定义角色:若内置角色无法满足需求,可创建自定义角色(如仅允许查询特定集合):
    use admin
    db.createRole({
      role: "readOnlyOrders",
      privileges: [{
        resource: { db: "mydb", collection: "orders" },
        actions: ["find"]
      }],
      roles: []
    })
    db.createUser({
      user: "orderViewer",
      pwd: "OrderViewerPass789!",
      roles: [{ role: "readOnlyOrders", db: "mydb" }]
    })
    

6. 启用审计日志

审计日志可记录所有用户操作(如查询、插入、删除),便于后续审查异常行为。修改/etc/mongod.conf启用审计:

auditLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/auditLog.json
  filter: '{}'  # 可选,过滤特定操作(如仅记录delete操作)

重启服务后,审计日志将保存至指定路径。

7. 定期更新与补丁管理

保持MongoDB及Ubuntu系统为最新版本,及时修复已知安全漏洞:

sudo apt-get update
sudo apt-get upgrade mongodb-org ubuntu

8. 监控与告警

  • 内置工具监控:使用mongostat(查看操作统计)、mongotop(查看集合级性能)监控数据库状态。
  • 系统工具监控:通过htop(CPU/内存)、iotop(磁盘IO)监控系统资源,设置阈值告警(如CPU使用率超过80%触发邮件通知)。
  • 第三方工具:集成Prometheus+Granafa实现可视化监控,或使用Zabbix、Nagios等工具设置异常告警。

9. 数据备份与恢复

定期备份MongoDB数据(如每日增量备份+每周全量备份),确保备份数据的完整性和可恢复性。使用mongodump工具备份:

# 全量备份
mongodump --out /backup/mongodb/full_$(date +%F)
# 增量备份(基于上次备份的时间戳)
mongodump --out /backup/mongodb/incr_$(date +%F) --oplog

备份文件需存储在安全位置(如异地存储或加密存储)。

0