以下是在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
參數,避免記錄過多冗余信息。參考來源: