在Debian系統中配置MongoDB以增強安全性是一個重要的步驟,以下是一個詳細的指南:
首先,確保你的Debian系統是最新的:
sudo apt update && sudo apt upgrade -y
然后,導入MongoDB公鑰并添加MongoDB存儲庫:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ archamd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org
編輯MongoDB配置文件 /etc/mongod.conf
:
sudo nano /etc/mongod.conf
在配置文件中添加或修改以下內容以啟用認證:
security:
authorization: enabled
將MongoDB綁定到本地接口,只允許本機訪問:
net:
bindIp: 127.0.0.1
默認情況下,MongoDB監聽27017端口。你可以根據需要更改端口,但請確保端口未被其他服務占用。
net:
port: 27017
為了加密客戶端和服務器之間的通信,啟用SSL:
net:
ssl:
mode: requireSSL
啟動MongoDB服務并設置其開機自啟:
sudo systemctl start mongod
sudo systemctl enable mongod
使用MongoDB shell創建管理員用戶:
mongo
use admin
db.createUser({
user: "myAdmin",
pwd: "myStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
退出MongoDB shell并嘗試使用新創建的管理員用戶重新連接:
mongo -u myAdmin -p myStrongPassword --authenticationDatabase admin
啟用安全審計功能以記錄數據庫操作:
security:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
使用 iptables
或其他防火墻軟件限制對MongoDB端口的訪問:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo service iptables save