Ubuntu環境下MongoDB的安全性保障需通過 分層配置+持續管理 實現,覆蓋安裝、認證、網絡、加密、監控等全流程,以下是關鍵措施:
從MongoDB官方APT倉庫安裝(避免第三方源的安全風險),并安裝OpenSSL等必要依賴:
# 導入MongoDB公鑰
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
# 添加MongoDB官方源(以Ubuntu 20.04為例)
echo "deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# 更新并安裝
sudo apt-get update && sudo apt-get install -y mongodb-org
確保安裝的版本為當前支持的穩定版,減少已知漏洞風險。
編輯MongoDB配置文件(/etc/mongod.conf
),開啟身份驗證機制:
security:
authorization: enabled # 強制要求用戶認證
重啟服務使配置生效:
sudo systemctl restart mongod
創建專用管理員賬號(避免使用默認root),并分配最小必要權限(如root
角色用于全局管理):
use admin
db.createUser({
user: "secureAdmin",
pwd: "StrongPassword@123",
roles: [{ role: "root", db: "admin" }]
})
后續所有數據庫操作需通過該賬號認證(如mongo -u secureAdmin -p --authenticationDatabase admin
)。
通過配置文件約束MongoDB監聽的IP地址,僅允許可信IP連接:
net:
bindIp: 127.0.0.1,192.168.1.100 # 本地+特定內網IP(根據需求調整)
port: 27017 # 避免使用默認端口(如27018)
若無需遠程訪問,可將bindIp
設為127.0.0.1
(僅本地訪問)。同時,使用Ubuntu防火墻(ufw
)進一步限制端口訪問:
sudo ufw allow from 192.168.1.100 to any port 27017 # 僅允許指定IP訪問27017端口
sudo ufw enable # 啟用防火墻
```。
### **4. 啟用傳輸層加密(TLS/SSL)**
為防止數據在傳輸過程中被竊取或篡改,配置MongoDB使用SSL/TLS加密:
1. 申請或生成SSL證書(含私鑰`server.pem`和CA證書`ca.pem`);
2. 在配置文件中添加SSL參數:
```yaml
net:
ssl:
mode: requireSSL # 強制使用SSL
PEMKeyFile: /path/to/server.pem # 服務器證書路徑
CAFile: /path/to/ca.pem # CA證書路徑
重啟服務后,客戶端連接需指定SSL證書(如mongo --ssl --sslCAFile /path/to/ca.pem --sslPEMKeyFile /path/to/client.pem
)。
通過審計日志記錄所有用戶的操作(如查詢、修改、刪除),便于事后追溯異常行為:
在配置文件中添加以下參數:
systemLog:
destination: file
path: /var/log/mongodb/mongod_audit.log # 審計日志路徑
logAppend: true
auditLog:
destination: file
format: JSON # 日志格式(JSON/CSV)
path: /var/log/mongodb/mongod_audit.json
定期審查日志(如使用grep
、ELK
等工具),及時發現未授權訪問或惡意操作。
保持MongoDB及Ubuntu系統的最新狀態,及時修復已知安全漏洞:
# 更新Ubuntu系統
sudo apt-get update && sudo apt-get upgrade -y
# 更新MongoDB(官方倉庫)
sudo apt-get update && sudo apt-get install --only-upgrade mongodb-org
訂閱MongoDB安全公告(如郵件列表、官方博客),第一時間獲取漏洞修復信息。
定期備份MongoDB數據(如使用mongodump
),并將備份文件存儲在安全位置(如異地服務器、云存儲):
# 全量備份
mongodump --out /backup/mongodb_$(date +%F)
# 增量備份(需啟用oplog)
mongodump --oplog --out /backup/mongodb_incremental_$(date +%F)
測試備份的可恢復性(如模擬數據丟失場景,恢復后驗證數據完整性)。
使用監控工具(如Prometheus+Granafa、MongoDB Ops Manager)實時監控MongoDB的運行狀態(CPU、內存、磁盤空間、連接數),設置異常告警(如連接數超過閾值、磁盤空間不足):
# 示例:通過systemd服務監控MongoDB狀態
sudo systemctl status mongod # 檢查服務是否運行
及時響應告警(如重啟服務、擴容資源),防止因系統故障導致數據泄露或丟失。
通過以上措施的組合實施,可顯著提升Ubuntu環境下MongoDB的安全性,覆蓋從安裝到運行的全生命周期防護。需根據實際業務需求調整配置(如調整訪問IP范圍、加密級別),并定期進行安全審計。