危害:伺服器資訊洩露、叢集被破壞 一、 四字指令未授權使用 1.1 測試工具:netcat 1.2 修複 二、 未授權連接配接及節點操作 2.1 測試 2.2 修複 2.2.1 ip ACL授權政策 2.2.2 auth ACL授權政策
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 ,輸入
zookeeper/bin/zkCli.sh -server 10.10.10.10:2181
即可連接配接,可使用
get /node watch
或
set /node 1
等指令去操作節點,如果成功,則證明此節點存在未授權通路。
Windows也可以安裝zookeeper來測試
Windows下使用Java8運作zktools>>工具作者<<
作者用的百度雲,可能有點慢,我給出藍湊的下載下傳位址,也呼籲大家不要用百度雲分享了 : https://wws.lanzous.com/iIlZvjdutij
如果Java8不是環境變量的話,首先編輯 bin 目錄下的 java-start.cmd 檔案修改Java為你Java8安裝的位址,然後輕按兩下啟動
隻要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端口,可以配置防火牆。
(๑•̀ㅂ•́)و✧
往期精彩文章推薦:
《動态svg圖檔簡單制作》
《使用部落格園的第一件事 - 自定義主題》