5

最近の Zookeeper ビルド (バージョン = 3.4.3-1240972、2012 年 2 月 6 日 10:48 GMT にビルド) を使用しており、すべてのクライアント接続で SASL を強制的に使用するのに問題があります。

リリースのローカル conf/ ディレクトリを使用して、次の構成を使用します (Ubuntu 12.04 で実行)。

conf/zoo.cfg

tickTime=2001
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

conf/jaas.conf

Server {
    org.apache.zookeeper.server.auth.DigestLoginModule required
    user_super="1adminsecret";
};
Client {
    org.apache.zookeeper.server.auth.DigestLoginModule required
    username="super"
    password="1adminsecret";
};

conf/java.env

export JVMFLAGS="-Djava.security.auth.login.config=`pwd`/conf/jaas.conf"

zkCli.sh スクリプトから接続すると、正しく認証されますが、jaas.conf ファイルを変更するとクエリができなくなります。これは予期される動作です。

ただし、ルビーの「zookeeper」gem を使用して (irb を使用して) 実行すると、次のようになります。

require 'zookeeper'
z = Zookeeper.new("localhost:2181")
z.get_children(:path => "/")
z.create(path:'/asdf', data:'test')

結果を適切に返します。ログインに SASL が必要な場合、Ruby クライアントがセキュリティをバイパスしているのはなぜですか。キーも作成できるので、読み取りと書き込みの問題だけではないことはわかっています。

4

3 に答える 3

3

conf / zoo.cfgに、次の行を追加します。

requireClientAuthScheme=sasl

ここのサーバー構成セクションから、

requireClientAuthScheme = saslはオプションです。任意の値に設定されている場合、認証されていないクライアントのみがping、セッションの作成、セッションのクローズ、またはsasl認証を許可します。

于 2012-07-11T05:03:43.073 に答える
0

私は数年後に同様の問題を抱えていました。Zookeeper 3.5 が、Zookeeper サーバーを保護するための別の簡単な方法を追加することを願っています。私の質問をチェックしてください: Zookeeper の保護

于 2015-08-28T14:26:15.577 に答える
0

同様の問題があり、JVM引数をenvファイルに追加して解決しました。(ズーキーパー 3.6.3)

export JVMFLAGS="-Djava.security.auth.login.config=`pwd`/conf/jaas.conf \
-Dzookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider \
-Dzookeeper.allowSaslFailedClients=false \
-Dzookeeper.sessionRequireClientSASLAuth=true \
"
于 2022-01-21T03:52:52.717 に答える