以下是在Linux上对MongoDB进行安全审计的步骤,需使用MongoDB企业版(社区版不支持审计功能):
security.authorization: enabled)。root权限。通过修改配置文件/etc/mongod.conf启用审计,关键参数如下:
security:
authorization: enabled # 启用认证
auditLog:
destination: file # 日志输出方式(file/syslog)
format: JSON # 日志格式(JSON/BSON)
path: /var/log/mongodb/audit.json # 日志路径
filter: '{ "atype": { "$in": ["authCheck", "insert", "update", "delete"] } }' # 可选:过滤需记录的事件类型
atype可指定审计事件类型,如authCheck(认证检查)、insert(插入操作)等。filter中添加对应类型。sudo mkdir -p /var/log/mongodb
sudo chown mongodb:mongodb /var/log/mongodb # 确保MongoDB用户有写入权限
sudo systemctl restart mongod
cat /var/log/mongodb/audit.json | jq # 使用jq工具格式化查看
{
"atype": "insert",
"ts": ISODate("2025-08-17T12:00:00Z"),
"localAddress": "127.0.0.1:27017",
"user": "admin",
"db": "testDB",
"collection": "users",
"operation": "insert",
"documentKey": { "_id": ObjectId("...") }
}
logrotate工具定期清理旧日志,避免磁盘占满。filter参数,避免记录过多冗余信息。参考来源: