在Debian系統上對MongoDB進行安全加固,可以遵循以下步驟:
首先,確保你的Debian系統是最新的,并安裝MongoDB:
sudo apt update && sudo apt upgrade -y
sudo apt install -y mongodb-org
編輯MongoDB配置文件 /etc/mongod.conf:
sudo nano /etc/mongod.conf
將MongoDB綁定到本地主機(127.0.0.1),以防止互聯網訪問:
net:
port: 27017
bindIp: 127.0.0.1
在配置文件中啟用身份驗證:
security:
authorization: enabled
如果你使用的是MongoDB 3.6或更高版本,可以禁用HTTP接口和REST API:
net:
http:
enabled: false
restApi:
enabled: false
啟動MongoDB shell:
mongo
切換到 admin 數據庫并創建管理員用戶:
use admin
db.createUser({
user: "myAdminUser",
pwd: "myStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
保存配置文件并重啟MongoDB服務以應用更改:
sudo systemctl restart mongod
生成SSL證書和密鑰:
openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key
cat mongodb-cert.key mongodb-cert.crt > mongodb.pem
啟動MongoDB服務器時使用SSL證書:
sudo mongod --ssl --sslmode requireSSL --sslpemfile mongodb.pem
使用 iptables 配置防火墻規則,只允許特定IP地址訪問MongoDB端口:
sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -j DROP
或者使用 ufw:
sudo ufw allow from 192.168.1.0/24 to any port 27017
sudo ufw reload
對于公司內部網絡,可以使用VPN來加強訪問控制。
使用管理員賬戶連接到MongoDB shell以驗證配置:
mongo -u myAdminUser -p myStrongPassword --ssl --sslmode requireSSL --sslpemfile mongodb.pem
使用 mongodump 命令定期備份MongoDB數據,并考慮將備份數據存儲在安全的位置。
在 mongod.conf 中配置審計日志:
security:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
重啟MongoDB服務以應用更改:
sudo systemctl restart mongod
通過以上步驟,你可以在Debian系統上安全地配置MongoDB,確保只有受信任的主機才能訪問數據庫,并且所有通信都是加密的。