MongoDB 在 Debian 上的安全审计方法
一 启用与配置审计日志
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 tail -f /var/log/mongodb/audit.json
二 审计策略与权限控制
use admin
db.createUser({
user: "auditAdmin",
pwd: "StrongPassword!",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "auditAdmin", db: "admin" }
]
})
mongo -u auditAdmin -p --authenticationDatabase admin
db.getAuditLogOptions()
三 审计日志的验证与日常分析
tail -f /var/log/mongodb/audit.json
# 查看失败登录
jq 'select(.result == 13)' /var/log/mongodb/audit.json
# 查看针对特定集合的写操作
jq 'select(.ns == "mydb.mycol" and .atype == "createCollection")' /var/log/mongodb/audit.json
# 按时间窗口统计事件数量
jq -r 'select(.ts) | .ts[:19]' /var/log/mongodb/audit.json | sort | uniq -c
四 审计落地与合规的配套措施