Ubuntu上MongoDB安全审计实操指南
一 前置条件与版本要求
二 启用审计的两种方式
方式一 配置文件启用(推荐)
security:
authorization: enabled
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
# 可选:仅记录较高严重级别事件
# filter: '{ "severity": { "$gte": 1 } }'
sudo mkdir -p /var/log/mongodb
sudo chown mongodb:mongodb /var/log/mongodb
sudo systemctl restart mongod
sudo systemctl enable mongod
tail -f /var/log/mongodb/audit.json
以上步骤适用于 Ubuntu/Debian 系,JSON 格式便于后续检索与对接 SIEM。
方式二 运行时动态设置(仅部分版本/许可支持)
use admin
db.setAuditLogDestination("file", { format: "JSON", path: "/var/log/mongodb/audit.json" })
db.getAuditLogOptions()
若命令不存在,说明当前版本或许可不支持动态配置,请改用配置文件方式。
三 审计策略与过滤示例
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
filter: '{ atype: { $in: [ "authenticate", "createUser", "dropUser", "dropRole", "grantRolesToUser", "revokeRolesFromUser", "insert", "update", "remove", "find" ] } }'
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
filter: '{ "severity": { "$gte": 1 } }'
四 验证与运维要点
tail -f 实时查看,或用 jq 进行条件检索(如 jq 'select(.atype=="authenticate")' /var/log/mongodb/audit.json)。