zookeeper未授權訪問危害
服務器資訊泄露、集群被破壞
一、 四字命令未授權使用
1.1 測驗
工具:netcat ,Linux或Windows都可以測
命令列輸入echo envi | nc 10.10.10.10 2181即可查看服務器資訊
命令有:envi stat ruok等
1.2 修復:
不想泄露資訊可以修改zookeeper/conf/zoo.cfg(zookeeper為安裝目錄),注釋掉 4lw.commands.whitelist 相關的行,四字命令用于查詢狀態,zookeeper默認不開放這些命令,只有在白名單中才能運行,
二、 未授權連接及節點操作
2.1 測驗
工具:Linux下安裝zookeeper;或Windows下使用Java8運行zktools>>工具作者<<
Linux下,輸入
zookeeper/bin/zkCli.sh -server 10.10.10.10:2181
即可連接,可使用get /node watch或set /node 1等命令去操作節點,如果成功,則證明此節點存在未授權訪問,
Windows下,只要zktools連接成功,則證明所有節點存在未授權訪問,值得注意的是,如果某個節點有權限控制,那么zktools就無法連接成功,無法訪問其他未授權節點了,但是Linux下zkCli.sh仍可訪問其他未授權節點,
2.2 修復:
2.2.1 ip ACL授權策略
可以使用下列操作限制訪問節點的IP
setAcl -R /node ip:127.0.0.1:cdrwa,ip:10.10.11.11:cdrwa
#-R為遞回,cdrwa為權限
2.2.2 auth ACL授權策略
即用戶模式,制定策略后,訪問者必須使用addauth digest user:passwd登錄才能進行節點操作,
策略制定方法為,用zkCli.sh連接后,在其中運行addauth digest user:passwd(digest是固定的)來注冊用戶,可以有多個用戶,然后運行setAcl /node auth::cdrwa(auth是固定的),之后可運行getAcl /node查看,能發現之前注冊的用戶都被配入了節點的權限中,使用quit退出,再連接,可發現只有在使用addauth登錄之后才能操作節點,
2.2.3 digest Acl授權策略
不難發現策略2中,所有用戶對節點的權限都是一致的,只能統一設定,若想使不同用戶對節點的權限不同,可以使用digest Acl授權策略,參見 https://blog.csdn.net/u014630623/article/details/103749103
2.2.4 防火墻策略
使用以上策略限制節點后,任意用戶仍可登錄并用ls / 查看節點名字,但是無法獲得詳細資訊和進行操作,若想不讓任意用戶訪問2181埠,可以配置防火墻,
(??????)??
往期精彩文章推薦:
<style>#topics #no-box-shadow-img { box-shadow: none; height: 120px }</style>《使用博客園的第一件事 - 自定義主題》
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231800.html
標籤:其他
上一篇:35歲程式員被公司辭退,生活壓力太大痛哭,中年危機如何自救?
下一篇:CMSIS-DAP
