在Ubuntu上安全配置MongoDB涉及多個步驟,包括啟用認證、限制網絡訪問、加密數據傳輸、創建管理員賬戶等。以下是詳細的配置指南:
在MongoDB配置文件 /etc/mongod.conf 中添加或修改以下內容以啟用認證:
security:
authorization: enabled
然后重啟MongoDB服務:
sudo systemctl restart mongod
編輯MongoDB配置文件 /etc/mongod.conf,在 net 部分設置 bindIp 參數來限制允許連接的IP地址。例如,只允許本地連接:
net:
bindIp: 127.0.0.1
或者允許特定的IP地址連接:
net:
bindIp: 192.168.1.100
保存并關閉配置文件后,重啟MongoDB服務以使更改生效:
sudo systemctl restart mongod
生成或獲取有效的SSL證書和私鑰文件,然后在 mongod.conf 配置文件中添加以下參數:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/your/ssl.pem
CAFile: /path/to/your/ca.pem
sslAllowInvalidCertificates: false
重新啟動MongoDB服務使配置生效:
sudo systemctl restart mongod
切換到MongoDB shell:
mongo
切換到 admin 數據庫:
use admin
創建一個管理員用戶并授予其root角色:
db.createUser({
user: "yourAdminUsername",
pwd: "yourAdminPassword",
roles: [ { role: "root", db: "admin" } ]
})
退出MongoDB shell:
exit()
使用 iptables 或 ufw 限制允許哪些實體連接MongoDB服務器。例如,只允許本地連接:
sudo iptables -A INPUT -p tcp --dport 27017 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 27017 -j DROP
或者使用 ufw:
sudo ufw allow 27017/tcp
sudo ufw disable
定期備份MongoDB的數據以確保備份數據的完整性和可恢復性??梢允褂?mongodump 命令進行備份:
mongodump --out /path/to/backup
啟用審計日志記錄所有用戶的操作,定期審查和分析審計日志以檢測異常行為。在 mongod.conf 中配置審計日志:
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
對于企業級應用,可以考慮使用Kerberos進行認證,以提供更高的安全性。
通過以上步驟,您可以顯著提高MongoDB在Ubuntu上的安全性。請根據您的具體需求和環境調整配置。