溫馨提示×

Linux上MongoDB安全配置有哪些

小樊
46
2025-10-07 23:59:47
欄目: 云計算

1. 啟用身份驗證(核心安全措施)
啟用MongoDB的身份驗證機制,強制用戶通過用戶名和密碼訪問數據庫,防止未授權訪問。配置方法:編輯/etc/mongod.conf文件,添加或修改security.authorization參數為enabled;重啟MongoDB服務使配置生效(sudo systemctl restart mongod)。注意:啟用前需先創建管理員賬戶(見下文),否則會導致無法管理數據庫。

2. 創建管理員賬戶與權限管理
在未啟用認證的模式下,登錄MongoDB Shell(mongo),切換至admin數據庫,創建具有管理權限的管理員賬戶(如admin用戶,賦予root角色)。示例命令:

use admin;
db.createUser({
  user: "admin",
  pwd: "StrongPassword123!",
  roles: ["root"]
});

后續為用戶分配最小必要權限(如應用賬戶使用readWrite角色,僅允許讀寫指定數據庫;報表賬戶使用read角色,僅允許查詢)。

3. 限制網絡訪問范圍
通過配置bindIp參數,將MongoDB綁定至特定IP地址(如127.0.0.1僅本地訪問,或192.168.1.100允許內部網絡訪問),避免暴露在公網。同時,使用防火墻(如ufwiptables)限制訪問源IP:

  • ufw配置:sudo ufw allow from 192.168.1.0/24 to any port 27017(僅允許192.168.1.0/24網段訪問);
  • iptables配置:sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.100 -j ACCEPT(允許指定IP訪問),并默認拒絕其他IP。

4. 配置TLS/SSL加密通信
使用SSL/TLS加密MongoDB客戶端與服務器之間的通信,防止數據泄露。步驟如下:

  • 生成SSL證書(可使用OpenSSL生成自簽名證書,或從CA機構獲取正式證書):
    sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout /etc/ssl/mongodb-key.pem -out /etc/ssl/mongodb-cert.pem
    
  • 修改mongod.conf文件,添加SSL配置:
    net:
      ssl:
        mode: requireSSL  # 強制使用SSL
        PEMKeyFile: /etc/ssl/mongodb-cert.pem  # 證書路徑
        CAFile: /etc/ssl/mongodb-cert.pem  # CA證書路徑(自簽名時與PEMKeyFile相同)
    
  • 重啟MongoDB服務使配置生效。

5. 配置審計日志(Enterprise版功能)
MongoDB Enterprise支持審計日志,記錄所有用戶的操作(如認證、授權、DDL/DML操作),用于安全審計和合規性檢查(如SOC 2、PCI DSS)。配置方法:在mongod.conf中添加:

security:
  auditLog:
    destination: file  # 日志輸出到文件
    format: JSON  # 日志格式(JSON易解析)
    path: /var/log/mongodb/mongodb-audit.log  # 日志文件路徑

重啟服務后,審計日志將記錄所有操作,便于后續分析異常行為。

6. 使用非特權用戶運行MongoDB
避免以root用戶運行MongoDB,降低系統權限泄露的風險。步驟如下:

  • 創建專用用戶(如mongodb):sudo useradd -r -s /bin/false mongodb-r表示系統用戶,-s /bin/false禁止登錄);
  • 修改MongoDB數據目錄和日志目錄的權限:sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb;
  • 使用專用用戶啟動服務:sudo -u mongodb mongod --config /etc/mongod.conf。

7. 禁用不必要的接口與功能
關閉MongoDB的非必要功能,減少攻擊面:

  • 禁用HTTP接口:在mongod.conf中設置net.http.enabled: false(默認關閉,無需額外配置);
  • 禁用REST接口:net.restInterfaceEnabled: false(默認關閉);
  • 禁用JSONP:net.JSONPEnabled: false(默認關閉)。

8. 定期更新與補丁管理
定期檢查MongoDB官方安全公告(如MongoDB Security Advisories),及時升級到最新穩定版本,修復已知漏洞。使用包管理器(如apt、yum)升級:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get upgrade mongodb-org

# CentOS/RHEL
sudo yum update mongodb-org

升級前備份數據,避免升級失敗導致數據丟失。

9. 文件與目錄權限管理
確保MongoDB的關鍵文件(配置文件mongod.conf、數據目錄/var/lib/mongodb、日志目錄/var/log/mongodb、證書文件)的權限正確,僅允許mongodb用戶和mongodb組訪問:

sudo chmod -R 750 /var/lib/mongodb
sudo chmod -R 750 /var/log/mongodb
sudo chmod 600 /etc/ssl/mongodb*.pem  # 證書文件權限設為600(僅所有者可讀寫)

定期審計文件權限,防止未經授權的修改。

10. 備份與災難恢復
制定定期備份策略(如每日全量備份+每小時增量備份),使用mongodump(邏輯備份)或文件系統快照(物理備份)備份數據。備份文件需加密存儲(如使用GPG加密),并定期測試恢復流程(如恢復至隔離環境),確保備份有效性。

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