微慑信息网

zookeeper和alibaba dubbo telnetd

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。

zookeeper下载地址:

http://mirror.bit.edu.cn/apache/zookeeper/

传说中的zkClin.sh存在于apache-zookeeper-3.5.5-bin.tar.gz中:

windows下使用bash 运行zkCli.sh:

探测到zookeeper端口2181,可直接telnet登录并执行命令,或使用zkCli.sh -sever IP:PORT或者使用nc.exe 更加直观

如 echo stat| nc.exe IP PORT

相关命令摘抄如下:

四字命令Four Letter Words:

stat 查看状态信息
ruok 查看zookeeper是否启动
dump 列出没有处理的节点,临时节点
conf 查看服务器配置
cons 显示连接到服务端的信息
envi 显示环境变量信息
mntr 查看zk的健康信息
wchs 展示watch的信息
wchc和wchp 显示session的watch信息 path的watch信息

参考:

https://blog.csdn.net/dandandeshangni/article/details/80558383

https://blog.csdn.net/xiaolang85/article/details/13021339

安装参考:https://www.jianshu.com/p/ea0f11ab78c3


zookeeper存在未授权访问的问题,(详见https://www.cnblogs.com/xusweeter/p/8436195.html)

ZooKeeper的节点有5种操作权限:

CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)

注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限

ZooKeeper的身份的认证有4种方式:

world:默认方式,相当于全世界都能访问

auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)

digest:即用户名:密码这种方式认证,这也是业务系统中最常用的

ip:使用Ip地址认证

 

二、解决思路:

1、world方式直接排除。

2、auth和digest通过用户名和密码方式可以有效进行权限控制,因应用中使用duboo和zookeeper做结合,有网友说Dubbo并没有实现认证的逻辑,实际测试发现确实无法进行注册。

报出如下错误:

java.lang.IllegalStateException: Failed to register

cause: org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /dubbo/com.common.crud.IEntityDao

参考资料:

https://yq.aliyun.com/articles/284281?utm_content=m_37169

3、最后只剩下了IP限制方式,通过IP白名单对连接ZK的客户端进行限制。

 

三、操作步骤:

因zookeeper不支持节点间权限的继承,所以需要对关键节点进行权限控制。

目前只对“/”、“/dubbo”、“/zookeeper”进行限制。

<ZooKeeper_HOME>/bin/
./zkCli.sh -server ip:port
setAcl / ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
setAcl /dubbo ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
setAcl /zookeeper ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
以上文章中说的duboo可能是值得apache duboo,在应用中发现alibaba dubbo telnetd(DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,)类似于telnet功能也存在未授权访问的问题;但是大多数类型服务都部署在内网,与外网隔离,且不易做鉴权。
参考:https://yq.aliyun.com/articles/284281?utm_content=m_37169

 

 

 

 

拓展阅读(点评/知识):

使用四字命令需要安装nc命令,(yum install nc)
stat 查看状态信息
[[email protected] bin]# echo stat | nc 192.168.0.68 2181
Zookeeper version: 3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
Clients:
/192.168.0.68:49346[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/4
Received: 62
Sent: 61
Connections: 1
Outstanding: 0
Zxid: 0x50000000a
Mode: follower
Node count: 10
[[email protected] bin]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ruok 查看zookeeper是否启动
[[email protected] bin]# echo ruok | nc 192.168.0.68 2181
imok[[email protected] bin]#
1
2
dump 列出没有处理的节点,临时节点
imok[[email protected] bin]# echo dump | nc 192.168.0.68 2181
SessionTracker dump:
[email protected]7
ephemeral nodes dump:
Sessions with Ephemerals (0):
[[email protected] bin]#
1
2
3
4
5
6
conf 查看服务器配置
[[email protected] bin]# echo conf | nc 192.168.0.68 2181
clientPort=2181
dataDir=/usr/home/zookeeper-3.4.11/data/version-2
dataLogDir=/usr/home/zookeeper-3.4.11/data/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=2
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0
[[email protected] bin]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cons 显示连接到服务端的信息
[[email protected] bin]# echo cons | nc 192.168.0.68 2181
/192.168.0.68:49354[0](queued=0,recved=1,sent=0)

[[email protected] bin]#
1
2
3
4
envi 显示环境变量信息
[[email protected] bin]# echo envi | nc 192.168.0.68 2181
Environment:
zookeeper.version=3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
host.name=localhost
java.version=1.8.0_111
java.vendor=Oracle Corporation
java.home=/usr/local/jdk1.8.0_111/jre
java.class.path=/usr/home/zookeeper-3.4.11/bin/../build/classes:/usr/home/zookeeper-3.4.11/bin/../build/lib/*.jar:/usr/home/zookeeper-3.4.11/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/home/zookeeper-3.4.11/bin/../lib/slf4j-api-1.6.1.jar:/usr/home/zookeeper-3.4.11/bin/../lib/netty-3.10.5.Final.jar:/usr/home/zookeeper-3.4.11/bin/../lib/log4j-1.2.16.jar:/usr/home/zookeeper-3.4.11/bin/../lib/jline-0.9.94.jar:/usr/home/zookeeper-3.4.11/bin/../lib/audience-annotations-0.5.0.jar:/usr/home/zookeeper-3.4.11/bin/../zookeeper-3.4.11.jar:/usr/home/zookeeper-3.4.11/bin/../src/java/lib/*.jar:/usr/home/zookeeper-3.4.11/bin/../conf:
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.version=3.10.0-514.10.2.el7.x86_64
user.name=root
user.home=/root
user.dir=/usr/home/zookeeper-3.4.11/bin
[[email protected] bin]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mntr 查看zk的健康信息
[[email protected] bin]# echo mntr | nc 192.168.0.68 2181
zk_version 3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
zk_avg_latency 0
zk_max_latency 4
zk_min_latency 0
zk_packets_received 68
zk_packets_sent 67
zk_num_alive_connections 1
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count 10
zk_watch_count 0
zk_ephemerals_count 0
zk_approximate_data_size 124
zk_open_file_descriptor_count 32
zk_max_file_descriptor_count 4096
[[email protected] bin]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
wchs 展示watch的信息
[[email protected] bin]# echo wchs | nc 192.168.0.68 2181
0 connections watching 0 paths
Total watches:0
[[email protected] bin]#
1
2
3
4
5
wchc和wchp 显示session的watch信息 path的watch信息
需要在 配置zoo.cfg文件中添加 4lw.commands.whitelist=*
[[email protected] bin]# echo wchc | nc 192.168.0.68 2181
wchc is not executed because it is not in the whitelist.
[[email protected] bin]# echo wchp | nc 192.168.0.68 2181
wchp is not executed because it is not in the whitelist.

本文标题:zookeeper和alibaba dubbo telnetd
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2019/0726_8453.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » zookeeper和alibaba dubbo telnetd
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

微慑信息网 专注工匠精神

访问我们联系我们