首页主机资讯MongoDB如何在Linux上进行安全加固

MongoDB如何在Linux上进行安全加固

时间2025-11-21 16:50:04发布访客分类主机资讯浏览1446
导读:MongoDB 在 Linux 上的安全加固清单 一 身份与访问控制 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段落开启授权,保存后重启服务。示例:security: authorization:...

MongoDB 在 Linux 上的安全加固清单

一 身份与访问控制

  • 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段落开启授权,保存后重启服务。示例:
    security:
      authorization: enabled
    
    重启:sudo systemctl restart mongod。随后在 admin 库创建管理员(示例赋予 root 角色,生产环境可按最小权限原则细化):
    use admin
    db.createUser({
    
      user: "admin",
      pwd: "StrongPass!23",
      roles: ["root"]
    }
    )
    
  • 最小权限分权:为业务库创建仅具所需权限的用户,避免滥用高权限账户。示例:
    use mydb
    db.createUser({
    
      user: "app_rw",
      pwd: "AppPass!45",
      roles: [{
     role: "readWrite", db: "mydb" }
    ]
    }
        )
    
  • 连接认证:客户端连接时显式指定认证库,例如:
    mongo -u app_rw -p AppPass!45 --authenticationDatabase mydb
    
  • 安全提示:优先采用 SCRAM-SHA-256 认证机制;为关键账户开启多因素认证(如企业版支持);定期审计用户与角色分配。

二 网络与防火墙

  • 绑定地址最小化:在 net.bindIp 仅列出需要监听的内网或管理网 IP,默认端口 27017。示例:
    net:
      port: 27017
      bindIp: 127.0.0.1,192.168.10.20
    
  • 防火墙精细化放行:仅允许受信任网段访问 27017/TCP。示例:
    • firewalld(CentOS/RHEL):
      sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="27017" protocol="tcp" accept'
      sudo firewall-cmd --reload
      
    • ufw(Ubuntu/Debian):
      sudo ufw allow from 192.168.10.0/24 to any port 27017 proto tcp
      sudo ufw enable &
          &
           sudo ufw status verbose
      
  • 变更生效:修改 bindIp 后需重启服务:sudo systemctl restart mongod

三 加密与传输安全

  • 启用 TLS/SSL:生成或获取证书,配置强制加密通信。示例:
    net:
      ssl:
        mode: requireSSL
        PEMKeyFile: /etc/mongodb/mongodb-key.pem
        CAFile: /etc/mongodb/mongodb-cert.pem
    
    重启生效:sudo systemctl restart mongod。客户端连接时携带证书或使用受信任 CA 验证。
  • 证书建议:使用受信任 CA 签发的证书;为服务器与客户端分别配置证书;妥善保护私钥(权限 600);定期轮换证书。

四 系统与服务加固

  • 以非特权用户运行:创建专用系统用户(如 mongod),调整数据与日志目录属主,使用 systemd 以该用户启动服务,避免使用 root
  • 目录与权限:确保 /var/lib/mongodb/var/log/mongodb 仅对 mongod 可读写;配置文件权限 600 并限制属主。
  • 关闭不必要接口:禁用 HTTP 接口REST/JSONP 管理接口,减少攻击面。示例:
    net:
      http:
        enabled: false
      RESTInterfaceEnabled: false
      JSONPEnabled: false
    
  • SELinux/AppArmor:在 CentOS/RHEL 启用并适配 SELinux 策略;在 Ubuntu/Debian 可使用 AppArmor 对 mongod 进行系统调用约束。

五 审计、备份与运维

  • 审计日志:记录关键操作以满足合规与取证需求。示例:
    security:
      auditLog:
        destination: file
        format: JSON
        path: /var/log/mongodb/audit.json
    
    注意审计会带来一定性能开销,建议按业务重要性选择事件类别与输出目标。
  • 日志与监控:确保 systemLog.destination: filelogAppend: true,集中收集与告警分析日志;结合监控平台观察连接数、慢查询、复制延迟等。
  • 备份与恢复:制定定期备份策略(如每日全量 mongodump),并定期演练恢复流程,验证可用性与完整性。
  • 补丁与版本:保持 MongoDB 与操作系统 安全补丁 及时更新;建立变更评审与回滚预案。

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


若转载请注明出处: MongoDB如何在Linux上进行安全加固
本文地址: https://pptw.com/jishu/753440.html
MongoDB如何在Linux上进行故障排查 MongoDB如何优化Linux上的查询速度

游客 回复需填写必要信息