1. 啟用身份驗證(核心安全機制)
在/etc/mongod.conf
配置文件中添加security.authorization: enabled
,強制要求所有客戶端連接提供有效憑證。修改后需重啟MongoDB服務(sudo systemctl restart mongod
)。啟用后需創建管理員賬戶(如admin
用戶,賦予root
角色)和數據庫級用戶(如readWrite
、dbOwner
等角色),避免未認證訪問。
2. 限制網絡訪問(縮小攻擊面)
通過net.bindIp
參數限制MongoDB僅監聽特定IP地址(如127.0.0.1
僅本地訪問,或添加業務服務器IP如192.168.1.100
)。同時,使用Linux防火墻(如ufw
或firewalld
)放行MongoDB端口(默認27017),拒絕其他IP的非法連接。例如,ufw
配置:sudo ufw allow from 192.168.1.0/24 to any port 27017
。
3. 使用TLS/SSL加密通信(防數據泄露)
生成SSL證書(私鑰mongodb-key.pem
和證書mongodb-cert.pem
),在mongod.conf
中配置net.ssl.mode: requireSSL
、PEMKeyFile
(證書路徑)和CAFile
(CA證書路徑),強制加密客戶端與服務端的通信。加密后可防止中間人攻擊竊取敏感數據。
4. 配置審計日志(追蹤異常行為)
若使用MongoDB Enterprise,可在mongod.conf
中啟用審計日志,記錄用戶操作(如查詢、修改、刪除)。配置示例如下:security.auditLog.destination: file
、format: JSON
、path: /var/log/mongodb/audit.json
。審計日志可幫助快速定位安全事件(如未授權訪問、數據篡改)。
5. 以非特權用戶運行(降低權限風險)
創建專用用戶(如mongodb
)運行MongoDB服務,避免使用root
用戶。操作步驟:sudo useradd -r -s /bin/false mongodb
(創建用戶)、sudo chown -R mongodb:mongodb /var/lib/mongodb
(修改數據目錄權限)、sudo -u mongodb mongod --config /etc/mongod.conf
(以專用用戶啟動)。降低權限后可限制攻擊者獲取系統最高權限。
6. 禁用不必要的接口和功能(減少攻擊入口)
在mongod.conf
中禁用HTTP接口(net.http.enabled: false
)、REST接口(net.RESTInterfaceEnabled: false
)和JSONP(net.JSONPEnabled: false
),這些功能默認開啟會增加安全風險(如通過HTTP暴露數據庫信息)。
7. 定期更新和打補?。ㄐ迯鸵阎┒矗?/strong>
定期檢查MongoDB官方安全公告,及時升級到最新穩定版本(如使用apt
或yum
更新mongodb-org
包)。更新前需備份數據,避免升級失敗導致數據丟失。
8. 定期備份數據(防數據丟失)
使用mongodump
命令定期備份數據(如每天凌晨),備份文件存儲在安全位置(如異地服務器或云存儲)。示例命令:mongodump --out /backup/mongodb-$(date +%F)
。備份可應對數據被篡改、刪除或勒索軟件攻擊的情況。