溫馨提示×

zookeeper在centos上如何安全設置

小樊
51
2025-09-24 14:16:43
欄目: 智能運維

1. 調整配置文件與目錄權限

確保Zookeeper配置文件(如zoo.cfg)及數據、日志目錄的權限正確,防止未授權訪問。

  • 配置文件權限:將zoo.cfg的所有者設為zookeeper用戶,權限設為644(僅所有者可寫)。
    sudo chown zookeeper:zookeeper /path/to/zoo.cfg
    sudo chmod 644 /path/to/zoo.cfg
    
  • 數據與日志目錄權限:遞歸修改Zookeeper數據目錄(dataDir)和日志目錄(logDir)的所有者為zookeeper,權限設為750(所有者可讀寫執行,組用戶可讀執行,其他用戶無權限)。
    sudo chown -R zookeeper:zookeeper /path/to/dataDir
    sudo chmod -R 750 /path/to/dataDir
    sudo chown -R zookeeper:zookeeper /path/to/logDir
    sudo chmod -R 750 /path/to/logDir
    

2. 配置SELinux(若開啟)

若系統啟用SELinux,需調整策略以允許Zookeeper訪問所需資源。

  • 臨時禁用(測試用):
    sudo setenforce 0
    
  • 永久禁用:編輯/etc/selinux/config文件,將SELINUX=enforcing改為SELINUX=disabled,重啟系統生效。

3. 啟用ACL(訪問控制列表)

通過ACL限制節點訪問權限,確保只有授權用戶可操作特定路徑。

  • 添加用戶認證:使用zkCli.sh工具添加用戶(如user1),并設置密碼。
    ./zkCli.sh -server localhost:2181
    addauth digest user1:password1
    
  • 設置節點ACL:為根節點或其他關鍵節點設置ACL,例如:
    • 根節點允許user1讀寫執行(rwcda),其他用戶只讀(r):
      setAcl / digest:user1:password1:rwcda world:anyone:r
      
    • /configs節點僅允許admin用戶管理(cdrwa):
      setAcl /configs digest:admin:admin_secret:cdrwa
      

4. 配置認證機制(SASL/Kerberos)

使用SASL(推薦)或Kerberos實現客戶端身份驗證,防止非法連接。

  • SASL配置步驟
    1. 創建JAAS配置文件(如/etc/zookeeper/conf/zookeeper_jaas.conf),定義用戶憑證:
      Server {
        org.apache.zookeeper.server.auth.DigestLoginModule required
        user_super="super_secret"
        user_admin="admin_secret";
      };
      Client {
        org.apache.zookeeper.server.auth.DigestLoginModule required;
      };
      
    2. 修改zoo.cfg,啟用SASL認證:
      authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
      requireClientAuthScheme=sasl
      jaasLoginRenew=3600000
      
    3. 重啟Zookeeper服務使配置生效:
      sudo systemctl restart zookeeper
      
  • 客戶端連接認證:使用addauth命令提供認證信息:
    ./zkCli.sh -server localhost:2181
    addauth digest super_super:super_secret
    

5. 啟用SSL/TLS加密通信

加密客戶端與服務器間的數據傳輸,防止中間人攻擊。

  • 生成SSL證書:使用OpenSSL生成自簽名證書(生產環境建議使用CA簽發證書)。
    openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout /etc/pki/tls/private/zookeeper.key -out /etc/pki/tls/certs/zookeeper.crt
    
  • 配置Zookeeper使用SSL:修改zoo.cfg,指定證書路徑并啟用客戶端認證:
    ssl.keystore.location=/etc/pki/tls/certs/zookeeper.jks
    ssl.keystore.password=zookeeper
    ssl.truststore.location=/etc/pki/tls/certs/zookeeper.jks
    ssl.truststore.password=zookeeper
    ssl.clientAuth=need
    

6. 配置防火墻規則

限制僅允許可信IP訪問Zookeeper端口(默認2181為客戶端端口,2888/3888為集群通信端口)。

  • 使用firewalld
    sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp  # 客戶端端口
    sudo firewall-cmd --permanent --zone=public --add-port=2888/tcp  # 集群端口
    sudo firewall-cmd --permanent --zone=public --add-port=3888/tcp  # 集群端口
    sudo firewall-cmd --reload
    
  • 使用iptables(可選):
    sudo iptables -A INPUT -p tcp --dport 2181 -s trusted_ip -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 2181 -j DROP
    

7. 定期升級與監控

  • 升級Zookeeper:定期檢查Apache Zookeeper官網,升級到最新穩定版本,修復已知漏洞。
  • 監控與日志:啟用Zookeeper審計日志(通過log4j.properties配置),記錄節點訪問、操作等信息;使用Prometheus+Granafa等工具監控集群狀態(如CPU、內存、連接數),及時發現異常。

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