溫馨提示×

MongoDB在CentOS的安全配置怎么做

小樊
36
2025-10-06 23:37:39
欄目: 云計算

MongoDB在CentOS上的安全配置步驟

1. 系統與軟件準備

  • 更新系統:運行sudo yum update -y確保CentOS系統為最新版本,修復已知安全漏洞。
  • 安裝MongoDB:通過官方YUM倉庫安裝MongoDB(以4.2版本為例):
    • 創建倉庫文件:sudo vi /etc/yum.repos.d/mongodb-org-4.2.repo,添加以下內容:
      [mongodb-org-4.2]
      name=MongoDB Repository
      baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
      gpgcheck=1
      enabled=1
      gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
      
    • 安裝MongoDB:sudo yum install -y mongodb-org。

2. 啟用身份驗證(核心安全措施)

  • 編輯MongoDB配置文件/etc/mongod.conf,在security section添加:
    security:
      authorization: enabled
    
  • 重啟MongoDB服務使配置生效:sudo systemctl restart mongod。
  • 創建管理員賬戶:使用MongoDB shell創建具有root權限的管理員(需替換your_strong_password為強密碼):
    mongo
    use admin
    db.createUser({
      user: "admin",
      pwd: "your_strong_password",
      roles: [{ role: "root", db: "admin" }]
    })
    
    之后需通過mongo -u admin -p --authenticationDatabase "admin"認證后操作。

3. 配置網絡訪問控制

  • 限制綁定IP:修改/etc/mongod.conf中的net.bindIp,僅允許本地或特定IP訪問(如127.0.0.1為本機,192.168.1.100為服務器IP):
    net:
      bindIp: 127.0.0.1,192.168.1.100  # 根據需求調整
      port: 27017
    
  • 配置防火墻:使用firewalld開放MongoDB默認端口(27017):
    sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
    sudo firewall-cmd --reload
    
    若使用iptables,可運行:sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT并保存規則。

4. 啟用SSL/TLS加密通信

  • 生成SSL證書:使用OpenSSL生成自簽名證書(生產環境建議使用CA簽發的證書):
    sudo mkdir -p /etc/ssl/mongodb
    sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 \
      -keyout /etc/ssl/mongodb/mongodb-key.pem \
      -out /etc/ssl/mongodb/mongodb-cert.pem
    sudo chmod 600 /etc/ssl/mongodb/*.pem
    
  • 配置MongoDB使用SSL:修改/etc/mongod.conf中的net.ssl section:
    net:
      ssl:
        mode: requireSSL  # 強制使用SSL
        PEMKeyFile: /etc/ssl/mongodb/mongodb-cert.pem
        # 若使用CA簽發證書,需添加CAFile路徑
        # CAFile: /etc/ssl/mongodb/ca.pem
    
  • 重啟MongoDB服務:sudo systemctl restart mongod。

5. 細化用戶權限管理

  • 為特定數據庫創建用戶:以管理員身份登錄MongoDB shell,為mydatabase數據庫創建只讀用戶(替換readonlypassword為強密碼):
    use mydatabase
    db.createUser({
      user: "readonlyuser",
      pwd: "readonlypassword",
      roles: [{ role: "read", db: "mydatabase" }]
    })
    
  • 按需分配角色:根據業務需求選擇角色(如readWrite用于讀寫、dbAdmin用于數據庫管理),避免過度授權。

6. 啟用審計日志(可選但推薦)

  • 編輯/etc/mongod.conf,在systemLog section添加審計日志配置:
    systemLog:
      destination: file
      path: /var/log/mongodb/mongod-audit.log
      logAppend: true
      verbosity: 1  # 日志詳細程度(0-5,1為基本審計)
    
  • 重啟MongoDB服務:sudo systemctl restart mongod,審計日志將記錄所有數據庫操作(如查詢、插入、刪除)。

7. 定期維護與更新

  • 更新MongoDB:定期通過sudo yum update mongodb-org升級到最新版本,修復安全漏洞。
  • 備份數據:使用mongodump定期備份數據庫(如每日備份),存儲到安全位置:
    mongodump --out /backup/mongodb-$(date +%F)
    
  • 監控日志:定期檢查/var/log/mongodb/mongod.log和審計日志,及時發現異常行為(如頻繁的失敗登錄嘗試)。

通過以上步驟,可顯著提升CentOS上MongoDB的安全性,覆蓋身份認證、訪問控制、加密通信、權限管理等核心安全需求。根據實際環境(如是否允許遠程訪問、是否需要高可用性),可進一步調整配置(如配置復制集、調整SSL證書路徑)。

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