zoukankan      html  css  js  c++  java
  • zookeeper未授权访问测试、修复

    zookeeper未授权访问测试参考文章:
    https://www.cnblogs.com/Hi-blog/p/Zookeeper-UnAuthorization-Access.html#_label04

    探测2181

    探测Zookeeper服务开放
    如使用nmap探测某个目标地址是否运行Zookeeper服务,探测2181端口开放。
    root@kali:~# nmap -Pn -p 2181 xx.xx.xx.xx


    探测四字命令

    用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交四字命令,来探测四字命令是否开启
    参考文章:
    https://www.cnblogs.com/kuku0223/p/8428341.html
    https://www.jianshu.com/p/1d638fac4da8
    https://zookeeper.apache.org/doc/r3.6.1/zookeeperAdmin.html#sc_zkCommands

    • conf命令
    输出相关服务配置的详细信息,端口、数据路径、日志路径、session 超时时间,最大连接数等。
    root@kali:~# echo conf | nc xx.xx.xx.xx 2181
    
    • cons命令
    列出所有连接到当前服务器的客户端/会话的详细信息
    root@kali:~# echo cons | nc xx.xx.xx.xx 2181 | more
    
    • dump命令
    输出未处理的会话和临时节点,leader 节点有效。
    root@kali:~# echo dump | nc xx.xx.xx.xx 2181 | more
    
    • envi命令
    输出服务器的详细信息。
    root@kali:~# echo envi | nc xx.xx.xx.xx 2181
    

    用安装好zk环境的客户端连接测试

    ./zkCli.sh -server x.x.x.x:2181
    ls /
    # 输出目录就是 连接成功
    
    # 输出 Authentication is not valid : /   就是没有权限
    

    修复

    修复步骤一 关闭四字命令

    ZooKeeper3.4.6支持某些特定的四字命令与其的交互。它们大多是查询命令,但也有重启zk之类的命令,四字命令可以用来获取、重启 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。
    从运维的角度看,这个功能很方便,但是从安全角度来看,就需要关闭这些特定的四字命令来确保安全了,修复方式为:升级zookeeper>=3.5.3(旧版本不能给四字命令加白名单哦,升级请自行评估风险),然后设置四字命令白名单、关闭http使用四字命令工具即可,示范如下:

    /home/work/software/apache-zookeeper-3.6.1-bin/conf/zoo.cfg
     
    #限制tcp使用4字命令的白名单,添加了白名单的四字命令才能执行 (升级到高版本以后默认的白名单4字命令里只有srvr这一个,请按需增加)
    4lw.commands.whitelist=stat, srvr 
     
    #是否开启jetty服务允许使用http方式执行4字命令,默认为true开启,false为关闭(升级到高版本以后默认开启http方式)
    admin.enableServer=false
    
    • 如果真的有需求要开启http功能
    如果有需求要开启http功能,可以修改根路径名称,改成20位的随机字符
    #修改http四字命令的根路径,默认为/commands
    admin.commandURL=/2cgyS2rQGW4yzjJlXV0k
    
    访问路径就会变成:curl http://10.39.27.200:8080/2cgyS2rQGW4yzjJlXV0k/envi
    

    设置成功之后 ,继续做修复步骤二;
    参考文章:
    https://www.cnblogs.com/kuku0223/p/8428341.html
    https://www.jianshu.com/p/1d638fac4da8
    https://zookeeper.apache.org/doc/r3.6.1/zookeeperAdmin.html#sc_zkCommands


    修复步骤二 关闭未授权访问

    开启SASL_PLAINTEXT认证(用户名和密码认证)
    https://www.cnblogs.com/iamsach/p/9234624.html

    或者用下面的方式

    添加IP白名单对连接ZK的客户端进行限制
    通过IP白名单对连接ZK的客户端进行限制,比较简单,只需要收集一下IP即可。因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
    

    设置完setAcl,然后用getAcl 查看一下是否配置成功.

  • 相关阅读:
    leetcode 190 Reverse Bits
    vs2010 单文档MFC 通过加载位图文件作为客户区背景
    leetcode 198 House Robber
    记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence
    逆序数2 HDOJ 1394 Minimum Inversion Number
    矩阵连乘积 ZOJ 1276 Optimal Array Multiplication Sequence
    递推DP URAL 1586 Threeprime Numbers
    递推DP URAL 1167 Bicolored Horses
    递推DP URAL 1017 Staircases
    01背包 URAL 1073 Square Country
  • 原文地址:https://www.cnblogs.com/mysticbinary/p/13536093.html
Copyright © 2011-2022 走看看