溫馨提示×

Debian下MongoDB的安全設置有哪些

小樊
40
2025-10-17 04:38:50
欄目: 云計算

1. 更新系統與安裝MongoDB
首先,確保Debian系統及軟件包為最新版本,減少已知漏洞風險:

sudo apt update && sudo apt upgrade -y

添加MongoDB官方APT倉庫(以6.0版本為例),并安裝mongodb-org包:

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [arch=amd64,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

2. 啟用身份驗證(核心安全措施)
編輯MongoDB主配置文件/etc/mongod.conf,在security section添加以下配置以強制身份驗證:

security:
  authorization: enabled
  enableLocalhostAuthBypass: false  # 禁用本地主機的身份驗證繞過(生產環境必須關閉)

重啟MongoDB服務使配置生效:

sudo systemctl restart mongod

創建管理員賬戶(用于管理用戶權限),切換至admin數據庫并執行:

mongo
use admin
db.createUser({
  user: "adminUser",
  pwd: "ComplexPassword123!",  # 使用強密碼(包含大小寫、數字、特殊字符)
  roles: [{ role: "userAdminAnyDatabase", db: "admin" }]  # 分配管理所有數據庫用戶的權限
})

3. 限制網絡訪問(防止未授權連接)
修改/etc/mongod.conf中的net section,將bindIp設置為僅允許本地訪問(生產環境強烈建議):

net:
  port: 27017
  bindIp: 127.0.0.1  # 僅本機可訪問;若需遠程訪問,可添加特定IP(如192.168.1.100),但需配合防火墻

重啟MongoDB服務:

sudo systemctl restart mongod

4. 配置TLS/SSL加密通信(保護數據傳輸)
生成自簽名SSL證書(生產環境建議使用CA簽發的證書):

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  # 合并證書與私鑰

編輯/etc/mongod.conf,啟用SSL并要求客戶端使用:

net:
  ssl:
    mode: requireSSL  # 強制使用SSL
    PEMKeyFile: /etc/ssl/mongodb.pem  # 證書路徑(需替換為實際路徑)

重啟MongoDB服務:

sudo systemctl restart mongod

5. 管理用戶權限(最小權限原則)
使用管理員賬戶登錄MongoDB,為特定數據庫創建只讀或讀寫用戶:

mongo -u adminUser -p --authenticationDatabase admin
use myDatabase
# 創建只讀用戶
db.createUser({
  user: "readOnlyUser",
  pwd: "ReadOnlyPass456!",
  roles: [{ role: "read", db: "myDatabase" }]
})
# 創建讀寫用戶
db.createUser({
  user: "readWriteUser",
  pwd: "ReadWritePass789!",
  roles: [{ role: "readWrite", db: "myDatabase" }]
})

6. 配置防火墻(阻斷非法IP訪問)
使用ufw(Ubuntu防火墻工具)限制MongoDB端口(默認27017)的訪問,僅允許受信任的IP段:

sudo ufw allow from 192.168.1.0/24 to any port 27017 proto tcp  # 允許192.168.1.0/24網段
sudo ufw enable  # 啟用防火墻

或使用iptables(傳統防火墻工具):

sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.100 -j ACCEPT  # 允許特定IP
sudo iptables -A INPUT -p tcp --dport 27017 -j DROP  # 拒絕其他所有IP

7. 啟用安全審計(跟蹤敏感操作)
編輯/etc/mongod.conf,配置審計日志以記錄數據庫操作(如用戶登錄、數據修改):

security:
  auditLog:
    destination: file  # 日志輸出到文件
    format: JSON       # 日志格式為JSON(便于解析)
    path: /var/log/mongodb/audit.json  # 日志文件路徑(需確保目錄存在且有寫入權限)

重啟MongoDB服務:

sudo systemctl restart mongod

8. 定期更新與維護
定期檢查MongoDB及Debian系統的更新,及時安裝安全補丁以修復漏洞:

sudo apt update && sudo apt upgrade -y mongodb-org

定期審查MongoDB日志(/var/log/mongodb/mongod.log)及審計日志,監控異常訪問行為(如頻繁的登錄失敗、未授權的數據訪問)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女