在Debian上配置MongoDB的安全策略主要包括以下幾個方面:
啟用鑒權:
編輯MongoDB配置文件 /etc/mongod.conf
,在 security
部分添加或確認以下行:
security:
authorization: enabled
保存文件后,重啟MongoDB服務以應用更改:
sudo systemctl restart mongod
創建管理員賬戶:
連接到MongoDB實例并創建管理員賬戶:
mongo -u admin -p --authenticationDatabase admin
在MongoDB shell中創建用戶并分配角色,例如:
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myStrongPassword",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
]
})
網絡隔離:
通過配置 bindIp
參數限制MongoDB實例只能從特定IP地址訪問。例如,只允許本機訪問:
net:
port: 27017
bindIp: 127.0.0.1
SSL/TLS加密:
為MongoDB配置SSL/TLS以加密客戶端和服務器之間的通信。需要生成SSL證書和密鑰,然后在 mongod.conf
中配置:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb.pem
重啟MongoDB服務以應用更改:
sudo systemctl restart mongod
角色管理:
使用內置角色或創建自定義角色來控制用戶對數據庫的訪問權限。例如,創建一個具有讀寫權限的用戶:
use mydatabase
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" }
]
})
安全審計:
MongoDB提供了審計功能,可以記錄數據庫操作。在 mongod.conf
中配置審計日志:
security:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
重啟MongoDB服務以應用更改:
sudo systemctl restart mongod
防火墻配置:
使用iptables或其他防火墻軟件限制對MongoDB端口的訪問,確保只有受信任的網絡可以訪問MongoDB實例。
禁用不必要的接口:
如果不需要通過HTTP接口管理MongoDB,可以在 mongod.conf
中禁用HTTP接口和REST API:
net:
http:
enabled: false
RESTinterfaceEnabled: false
定期更新和維護:
保持MongoDB和Debian系統的更新,以便及時修復已知的安全漏洞。
通過上述步驟,可以顯著提高Debian上MongoDB的安全級別。務必定期更新和維護這些安全設置,以應對不斷變化的安全威脅。