ceph 認證高可用

2021-06-29 08:47:11 字數 1569 閱讀 5483

為了識別使用者和防止中間人攻擊,ceph提供了cephx 認證系統來認證使用者和程序。
注:cephx不提供對位址資料的加密和 rest的加密。

cephx是通過共享秘鈅來實現認證的,也就是說,客戶端和服務端擁有相同的秘鑰。認證協議是這樣的,互動的雙方能夠相互證明彼此有秘鑰的副本而不把它暴露出來。這樣就能提供相互認證,即:客戶端確信使用者擁有秘鑰,使用者也確信客戶端也有乙個秘鑰的副本。

ceph key 的可伸縮特性是避免ceph 物件儲存的介面集中,也就是說ceph client必須可以直接與osd互動。為了保護資料,ceph提供了cephx認證系統,它主要認證使用者操作的客戶端。cephx協議操作在某種意義上類似於kerberos。

使用者或者角色通過client來聯絡monitor。這個跟kerberos不同,每個moniter都能夠認證使用者和分發秘鑰,所以使用cephx認證系統就不會有單點故障和瓶頸。monitor會返回乙個結構類似於kerberos ticket的認證資料,裡面包含使用ceph service的時候需要的session key。session key是經使用者的秘鑰加密過得,所以只有使用者本身可以從monitors請求服務。client使用session key從monitor那請求需要的服務,monitors會傳送給客戶端乙個key,這個key用於client和osd之間的認證。ceph的monitors和osd共享乙個秘鑰,所以客戶端可以在集群中和osd ,metadata server共同使用這個monitors提供的key。類似於kerberos,ceph ticket是有期限的,所以攻擊者不能夠使用過期的ticket或者session key。這種認證方式可以防止攻擊者中間偽造使用者訊息,或者篡改使用者訊息,只要使用者的密碼沒有暴露出來。

使用cephx,首先管理員必須要先建立乙個使用者。下面這張圖展示了,使用者client.admin呼叫命令ceph auth get-or-create-key 建立乙個使用者和秘鑰。ceph的子系統auth會產生乙個使用者名稱和秘鑰,在monitor中儲存乙個副本,然後把使用者的秘鑰傳給client.admin使用者。這意味著client和monitor共用同乙個密碼。

在使用monitors認證的時候,客戶端要把使用者名稱提供給monitor,monitor產生乙個session key,而且使用使用者的秘鑰對session key加密,然後,monitor把加了密的session key傳遞給client,客戶端使用共享的秘鑰對接收到的包解密得到session key。session key是用來鑑別正在會話的使用者。client 然後使用session key向monitor請求乙個代表使用者簽名的ticket。monitor就會為使用者產生乙個ticket,使用使用者的秘鑰對其進行加密,然後再傳送給client。client再對ticket解密,然後使用ticket簽署對osd和metadata server的請求。
使用cephx協議在client和ceph sever之間互動的時候,在經過認證之後,client 和server之間的訊息都要經 monitor,osd和metadata 使用共享秘鑰審查的ticket簽名。

認證只存在於client和server之間,對於對client的訪問是沒有認證機制的,使用者主機到client主機之間的認證是無效的。

CEPH高可用配置

就是再增加乙個物件閘道器rgw root node1 ceph s rgw 1 daemons active node1 現在只有乙個rgw節點 1 在管理節點的工作目錄下,給 ceph 物件網關節點安裝ceph物件所需的軟體包 root node1 yum install y ceph rados...

Ceph高可用集群搭建超級詳細步驟

設定三颱linux主機並配置不同的ip位址以及內網位址 設定三條主機名分別為node1 node2 node3 hostnamectl set hostname node1 bash 使得命名生效 編寫hosts檔案並傳遞到另外兩個主機上 免金鑰登入 keygen 生成公鑰和私鑰 將公鑰派發到三個節...

Centos7 3上搭建Ceph高可用集群

ceph是今年越來越火的乙個分布式儲存開源軟體,包含了塊儲存,物件儲存和檔案儲存,相比於glusterfs更加全面,hdfs適合處理大檔案,ceph也適合於小檔案處理。集群包含乙個admin節點,三個monitor節點,其他都是node節點。架構圖 注意 host必須是hostname的short ...