温馨提示×

MongoDB在CentOS中的安全审计方法

小樊
46
2025-11-23 19:34:05
栏目: 云计算

MongoDB 在 CentOS 的安全审计方法

一 审计目标与能力

  • 记录关键事件:包括认证与授权数据 CRUD用户与角色变更系统事件等,用于合规与溯源。
  • 输出格式与存储:支持写入文件,格式可为JSONBSON;BSON 可用工具转换为 JSON 便于检索与分析。
  • 验证方式:通过 getParameter 检查审计是否已启用,并对样例操作进行验证。

二 启用审计的两种方式

  • 方式一 文件输出 JSON(便于直接阅读与采集)
    1. 编辑配置文件 /etc/mongod.conf,在顶层加入:
    security:
      authorization: enabled
    
    auditLog:
      destination: file
      format: JSON
      path: /var/log/mongodb/audit.json
    
    1. 重启服务并检查状态:
    sudo systemctl restart mongod
    sudo systemctl status mongod
    
    1. 验证审计参数:
    mongo --eval "db.runCommand({ getParameter: 1, auditLog: 1 })"
    
    1. 触发样例操作(如创建/删除用户),查看审计日志:
    tail -f /var/log/mongodb/audit.json
    
  • 方式二 文件输出 BSON(体积更小、写入性能更好)
    1. 编辑 /etc/mongod.conf
    security:
      authorization: enabled
    
    auditLog:
      destination: file
      format: BSON
      path: /var/log/mongodb/audit.bson
      # 可按需缩小范围,例如仅审计账号变更
      # filter: '{ atype: { $in: ["createUser", "dropUser", "updateUser"] } }'
    
    1. 重启并验证同上。
    2. 将 BSON 转换为 JSON 便于检索:
    bsondump /var/log/mongodb/audit.bson > /var/log/mongodb/audit.json
    
    1. 按需检索示例:
    grep -i "createUser" /var/log/mongodb/audit.json
    

以上步骤涵盖在 CentOS 上启用审计、重启验证、以及日志格式选择与转换的常用做法。

三 审计策略与最小开销配置

  • 全量审计(合规优先):记录认证、授权、CRUD、用户/角色变更、系统事件,便于完整溯源。
  • 关键事件审计(性能优先):仅记录高风险操作,例如:
    auditLog:
      destination: file
      format: BSON
      path: /var/log/mongodb/audit.bson
      filter: '{ atype: { $in: ["authenticate", "createUser", "dropUser", "grantRolesToUser", "revokeRolesFromUser", "dropDatabase", "dropCollection"] } }'
    
  • 建议将审计日志与数据库运行日志分离,便于独立轮转与访问控制。

四 日志轮转与保护

  • 使用 logrotate 管理审计日志(示例:/etc/logrotate.d/mongodb-audit
    /var/log/mongodb/audit.json
    /var/log/mongodb/audit.bson {
        daily
        rotate 30
        compress
        missingok
        notifempty
        create 0600 mongod mongod
        sharedscripts
        postrotate
            /bin/systemctl reload mongod > /dev/null 2>&1 || true
        endscript
    }
    
  • 权限最小化:确保审计日志文件属主为 mongod,权限 0600,仅 mongod 可读写。
  • 集中采集与备份:将审计日志纳入 rsyslog/ELK 等集中平台,定期异地备份并做完整性校验。

五 与整体安全的协同配置

  • 启用认证与授权:在 /etc/mongod.conf 中设置 security.authorization: enabled,并创建最小权限的业务账户与管理员账户
  • 网络与加密:通过 net.bindIp 限制来源 IP,使用 firewalld 仅放行受信网段;启用 TLS/SSL 保护传输链路。
  • 运行安全:以非 root专用用户运行 MongoDB,禁用不必要的 HTTP/REST/JSONP 接口,降低攻击面。

0