Zookeepersasl安全

bihw5rsg  于 2021-06-06  发布在  Kafka
关注(0)|答案(4)|浏览(557)

我使用的是zookeeper 3.4.12版本,在尝试启用sasl时发现以下错误。有人能帮忙吗。

Client {
 com.sun.security.auth.module.Krb5LoginModule required
 useKeyTab=true
 storeKey=true
 useTicketCache=true
 keyTab="/tmp/kafka/zookeeper.service.keytab
 principal="zookeeper/chefclient.xyz.local@XYZ.LOCAL";
};

错误:
2018-11-02 09:35:01998]错误sasl身份验证使用登录上下文“client”失败,异常:{}(org.apache.zookeeper.client.zookeepersaslclient)javax.security.sasl.saslexception:使用zookeeper仲裁成员进行身份验证时出错:仲裁成员的sasltoken为null

uqzxnwby

uqzxnwby1#

我也遇到了同样的问题。。。

SaslException: Error in authenticating with a Zookeeper Quorum member: the quorum member's saslToken is null

zookeeper服务器日志中也存在此错误:

ERROR [NIOWorkerThread-6:ZooKeeperServer@1191] - cnxn.saslServer is null: cnxn object did not initialize its saslServer properly.

我的配置,在zookeeper示例之间使用相互kerberos身份验证。

解决方案

缺少“服务器”部分
我的问题是我没有 Server 部分出现在我的服务器jaas配置中。
我需要这样的东西:

QuorumServer {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/etc/security/keytabs/zookeeper.keytab"
       storeKey=true
       useTicketCache=false
       debug=false
       principal="zookeeper/zk1.example.com@EXAMPLE.COM";
};

QuorumLearner {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/etc/security/keytabs/zookeeper.keytab"
       storeKey=true
       useTicketCache=false
       debug=false
       principal="zookeeper/zk2.example.com@EXAMPLE.COM";
};

Server {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/etc/security/keytabs/zookeeper.keytab"
       storeKey=true
       useTicketCache=false
       principal="zookeeper/zk3.example.com@EXAMPLE.COM";
};

当客户端连接到zookeeper时,它们将根据 Server 此配置的一部分。这是sasl工作所必需的。
还要确保你有 conf/java.env 设置如下内容:

SERVER_JVMFLAGS="${SERVER_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/server-jaas.conf"
CLIENT_JVMFLAGS="${CLIENT_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/client-jaas.conf"
koaltpgm

koaltpgm2#

我想问题是,你在这个时候少了一个双引号

keyTab="/tmp/kafka/zookeeper.service.keytab
o2gm4chl

o2gm4chl3#

zookeeper安全的第一步是保护仲裁对等通信。这里有完整的解释。
你的zookeeper jaas文件应该有quorumserver和quorumlearner部分。
接下来,您可以像kafka一样保护zookeeper集群和客户机之间的通信。这里有完整的解释
在zookeeper jaas文件中添加一个server部分,而kafka jaas文件应该有一个client部分

ubby3x7f

ubby3x7f4#

问题已经解决,jaas中的空格导致了问题

相关问题