偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Zookeeper權(quán)限訪問(wèn)控制簡(jiǎn)介及實(shí)操

安全 漏洞
近日在某項(xiàng)目部署實(shí)施過(guò)程中,進(jìn)行了線上漏洞掃描后,在出具的漏掃報(bào)告中存在一個(gè)需修復(fù)項(xiàng)“Zookeeper 未授權(quán)訪問(wèn)”。通過(guò)查詢了解,得知需通過(guò)添加身份認(rèn)證的方式來(lái)解決該修復(fù)項(xiàng),在修復(fù)、驗(yàn)證以及后續(xù)應(yīng)用上線的過(guò)程中,碰到了系列問(wèn)題,特作記錄分享。

近日在某項(xiàng)目部署實(shí)施過(guò)程中,進(jìn)行了線上漏洞掃描后,在出具的漏掃報(bào)告中存在一個(gè)需修復(fù)項(xiàng)“Zookeeper 未授權(quán)訪問(wèn)”。通過(guò)查詢了解,得知需通過(guò)添加身份認(rèn)證的方式來(lái)解決該修復(fù)項(xiàng),在修復(fù)、驗(yàn)證以及后續(xù)應(yīng)用上線的過(guò)程中,碰到了系列問(wèn)題,特作記錄分享。

一、 問(wèn)題介紹

Zookeeper是分布式協(xié)同管理工具,常用來(lái)管理系統(tǒng)配置信息,提供分布式協(xié)同服務(wù)。Zookeeper以樹(shù)狀結(jié)構(gòu)保存數(shù)據(jù),znode是Zookeeper的基本單元,可以存放數(shù)據(jù)信息、版本信息等等。如下圖,/是Zookeeper的根節(jié)點(diǎn),A、B、C和D均為znode。

Zookeeper這樣的樹(shù)狀結(jié)構(gòu),在默認(rèn)情況下,只需要提供Zookeeper服務(wù)端的IP和Port信息,任何用戶或者客戶端都可以直接連接服務(wù)端,不需要任何額外的認(rèn)證,就擁有對(duì)znode增、刪、改、查、管理等操作權(quán)限。這樣的訪問(wèn)方式是非常不安全,比較容易受到攻擊和數(shù)據(jù)的篡改。

二、 Zookeeper使用ACL進(jìn)行訪問(wèn)控制

鑒于存在這樣的安全隱患,Zookeeper通過(guò)ACL(Access Control List)的機(jī)制來(lái)解決這個(gè)問(wèn)題。當(dāng)客戶端連接到Zookeeper并且做認(rèn)證的時(shí)候,Zookeeper驗(yàn)證所有從連接的服務(wù)端收集到的id,當(dāng)服務(wù)端試圖訪問(wèn)不同的znode節(jié)點(diǎn)時(shí),將通過(guò)ACL來(lái)做驗(yàn)證。

ACL是由(scheme:expression, perms)對(duì)構(gòu)成,expression的格式為如下內(nèi)置schemes:

a. world 有一個(gè)特定的的id, anyone,代表所有人。

b. auth 不使用任何id,代表任何已認(rèn)證的用戶。

c. digest 用 username:password 字符串來(lái)產(chǎn)生一個(gè)MD5串,然后該串被用來(lái)作為ACL ID。認(rèn)證是通過(guò)明文發(fā)送username:password 來(lái)進(jìn)行的,當(dāng)用在ACL時(shí),表達(dá)式為username:base64 ,base64是password的SHA1摘要的編碼。

d. ip 使用客戶端的主機(jī)IP作為ACL ID 。

Perms的格式為如下操作權(quán)限:

a. CREATE:可以創(chuàng)建子節(jié)點(diǎn),縮寫(xiě)為C;

b. DELETE:可以獲取節(jié)點(diǎn)下的數(shù)據(jù)以及目錄下的列表,縮寫(xiě)為D;

c. WRITE:可以在節(jié)點(diǎn)中寫(xiě)入數(shù)據(jù),縮寫(xiě)為W;

d. DELETE:可以刪除子節(jié)點(diǎn),縮寫(xiě)為D:

e. ADMIN:可以設(shè)置權(quán)限,縮寫(xiě)為A;

這里有一點(diǎn)需要注意的是,ACL只適用于當(dāng)前節(jié)點(diǎn),它是非遞歸的,而且是不可遞歸的。比如/aaa節(jié)點(diǎn)對(duì)用戶aaa只讀,但是/aaa/bbb節(jié)點(diǎn),對(duì)所有用戶來(lái)說(shuō)是world的認(rèn)證方式。

三、 Zookeeper權(quán)限配置

通過(guò)文檔了解后,擬嘗試使用digest的認(rèn)證方式作為漏洞的修復(fù)手段。

首先登錄Zookeeper控制臺(tái),如下圖所示:

獲取當(dāng)前目錄權(quán)限:

由于該服務(wù)器是已修復(fù)的,因此顯示的是digest認(rèn)證的信息。

重新在根目錄下創(chuàng)建目錄:

從這個(gè)步驟可以看出,ACL的認(rèn)證是非遞歸的,即使根目錄的權(quán)限是digest,創(chuàng)建的子目錄權(quán)限仍然是world。

下圖通過(guò)setAcl的命令來(lái)設(shè)置新目錄的權(quán)限,并且查看是生效的。

當(dāng)?shù)卿浐笪词褂胐igster認(rèn)證時(shí),就會(huì)提示權(quán)限不足。

四、 應(yīng)用調(diào)用修改

既然提供服務(wù)的Zookeeper增加了認(rèn)證,那么調(diào)用的java程序也是需要進(jìn)行同步修改的。

按公司應(yīng)用的結(jié)構(gòu),只需要添加對(duì)應(yīng)配置即可。

另外在調(diào)試過(guò)程中發(fā)現(xiàn),公司使用的第三方j(luò)ar包zkclient.jar的版本是0.1,是不支持ACL的,需更換成高版本2.0即可。

作者介紹

陳旭,資深應(yīng)用維護(hù)工程師,畢業(yè)于浙江大學(xué)軟件工程學(xué)院,通過(guò)ITIL認(rèn)證。先后在互聯(lián)網(wǎng)創(chuàng)業(yè)公司、地方電子口岸任職。主要負(fù)責(zé)中間件運(yùn)維和自動(dòng)化運(yùn)維工具研發(fā),致力于提升運(yùn)維服務(wù)的規(guī)范性和應(yīng)用服務(wù)的高可用性。

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2019-10-25 17:00:17

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技術(shù)周刊

2010-04-29 11:26:52

2022-09-02 08:33:23

ZooKeeper分布式

2010-04-13 16:30:13

Oracle權(quán)限

2010-05-14 18:16:44

MySQL統(tǒng)計(jì)函數(shù)

2010-04-14 11:22:12

Oracle同時(shí)訪問(wèn)

2019-02-25 17:42:43

TCP協(xié)議狀態(tài)轉(zhuǎn)換

2015-08-31 11:00:10

SPECvirt 云測(cè)試虛擬化

2011-09-01 10:33:38

數(shù)據(jù)控制語(yǔ)言DCL語(yǔ)句操作權(quán)限

2021-04-02 08:02:10

Gin集成Casbin開(kāi)源

2010-04-12 09:36:29

Oacle merge

2010-01-06 10:38:16

Linux安裝JDK

2010-05-17 15:34:30

MySql數(shù)據(jù)庫(kù)

2019-07-31 08:11:46

ACL訪問(wèn)控制列表網(wǎng)絡(luò)通信

2009-12-01 18:03:56

Linux版本

2010-05-18 12:24:16

MySQL binlo

2010-05-18 18:19:40

MySQL修改表結(jié)構(gòu)

2010-05-20 15:53:15

配置MySQL

2010-04-27 10:25:28

Oracle Subs

2009-11-30 13:05:00

Suse防火墻
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)