Zookeeper クラスターデプロイと Dubbo ノードへの認証機能の追加

背景:セキュリティ脆弱性スキャンで Zookeeper に認証が設定されていないことが発覚しました。

環境:OS:CentOS 7、Java:1.8、Zookeeper:3.6

サーバー1192.168.45.243
サーバー2192.168.44.24
サーバー3192.168.44.117

一、Zookeeper クラスターデプロイ

1.1 JDK のインストール

三台のノードそれぞれに JDK パッケージを /opt/java ディレクトリにアップロードし、解压します。

tar -xf jdk-8u77-linux-x64.tar.gz -C /opt/java
export JAVA_HOME=/opt/java/jdk1.8.0_77
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source ~/.bash_profile

Java 環境の確認:

java -version

1.2 Zookeeper クラスタの構築

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
tar -xf apache-zookeeper-3.6.0-bin.tar.gz
mv apache-zookeeper-3.6.0-bin zookeeper
mkdir /opt/zookeeper/data
touch /opt/zookeeper/data/myid

サーバー1、サーバー2、サーバー3それぞれに以下の myid 値を設定します。

サーバー1:1

サーバー2:2

サーバー3:3

設定ファイル zoo.cfg を編集します。

cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg
vim /opt/zookeeper/conf/zoo.cfg

1.3 ファイアウォールの無効化

ファイアウォールを無効化することで、クラスターステータスの確認時に「*Error contacting service. It is probably not running.*」エラーを回避します。

systemctl stop firewalld
systemctl disable firewalld

1.4 Zookeeper の起動

三台のノードそれぞれで Zookeeper を起動します。

/opt/zookeeper/bin/zkServer.sh start

クラスターステータスの確認:

/opt/zookeeper/bin/zkServer.sh status

サーバー3がリーダーとして機能しています。

1.5 Zookeeper の停止

/opt/zookeeper/bin/zkServer.sh stop

1.6 再起動後のリーダー選出確認

再起動後、サーバー2がリーダーとして選出され正常に動作しています。

1.7 Zookeeper クライアントの利用

/opt/zookeeper/bin/zkCli.sh -server 192.168.45.243:2181
/opt/zookeeper/bin/zkCli.sh -server 192.168.44.24

二、Dubbo ノードへの認証機能追加

2.1 Zookeeper クライアントへのログイン

/opt/zookeeper/bin/zkCli.sh -server localhost:2181

2.2 Zookeeper ノードの確認

ls /

Dubbo ノードが存在しない場合は、以下のコマンドでノードを作成します。

create /dubbo

2.3 認証ユーザーとパスワードの設定

addauth digest admin:Admin@2023

2.4 /dubbo ノードへのアクセス許可設定

setAcl /dubbo auth:admin:Admin@2023:rwadc

2.5 Dubbo 設定ファイルの編集

dubbo-config.xml ファイルを編集します。

<dubbo:registry protocol="zookeeper" address="${zookeeper.ip}" username="admin" password="Admin@2023" client="curator"/>

タグ: Zookeeper クラスター Dubbo 認証 安全配置

5月25日 06:29 投稿