堡壘跳板機(jī)實(shí)現(xiàn)——整體架構(gòu)
背景介紹
最近,筆者接手公司的一項(xiàng)任務(wù):建造服務(wù)器的堡壘跳板機(jī)。
關(guān)于跳板機(jī)的實(shí)現(xiàn),其實(shí)簡(jiǎn)單版本網(wǎng)上一大堆,甚至更有開(kāi)源堡壘機(jī)Jumpserver可供選擇,方案很多。接下來(lái)會(huì)就我的實(shí)現(xiàn)方案,整理出幾篇文章來(lái)做概要描述。
覆蓋功能
正所謂兵馬未動(dòng),糧草先行,在設(shè)計(jì)之前,先整理出我們一期中堡壘機(jī)要覆蓋的基本功能點(diǎn):
- 服務(wù)器統(tǒng)一賬號(hào)權(quán)限管理,包括哪些用戶可以對(duì)哪些服務(wù)器進(jìn)行l(wèi)ogin,哪些用戶有sudo權(quán)限;
- 用戶行為記錄,可在必要時(shí)回看審查;
- 用戶登錄校驗(yàn)審查;
現(xiàn)在初期的目標(biāo)是將所有的linux服務(wù)器通過(guò)堡壘機(jī)進(jìn)行管理把控,將來(lái)擴(kuò)展下,同樣可以通過(guò)ssh協(xié)議對(duì) 交換機(jī)、路由器、甚至是Windows進(jìn)行管理(目前windows已經(jīng)可以實(shí)現(xiàn)通過(guò)ssh登錄,不過(guò)這種方式就沒(méi)有圖形界面了且只能通過(guò)powershell來(lái)進(jìn)行管理)。
架構(gòu)設(shè)計(jì)
基于以上幾點(diǎn)功能點(diǎn),設(shè)計(jì)架構(gòu)如下:
下面對(duì)這個(gè)架構(gòu)圖做下說(shuō)明:
整體分為三層,總體來(lái)說(shuō),
***層 校驗(yàn)用戶是否有登錄堡壘機(jī)的權(quán)限;
第二層真正為用戶分配權(quán)限,同時(shí)判斷經(jīng)過(guò)***層的用戶是否有對(duì)目標(biāo)機(jī)器操作的權(quán)限;
第三層則是真正登錄/操作服務(wù)器的方式,在這里我將服務(wù)器的auth+sudo權(quán)限通過(guò)ldap來(lái)進(jìn)行分布式動(dòng)態(tài)管理,稍后會(huì)有專門的說(shuō)明;
***層:
登錄入口,凡是有堡壘機(jī)使用權(quán)限的均可以由此入口處登錄成功。
涉及主要服務(wù): user login shell。
服務(wù)主要功能:
- 讀取用戶信息,判斷是否有登錄權(quán)限;
- 調(diào)用動(dòng)態(tài)Token服務(wù),驗(yàn)證用戶passwd;
- 調(diào)用動(dòng)態(tài)token服務(wù),實(shí)現(xiàn)二維碼掃碼快速登錄;
- 調(diào)用第二層中的授權(quán)服務(wù)api,獲取&判斷用戶的login權(quán)限;
- 記錄用戶操作日志;
關(guān)聯(lián)服務(wù):
- 動(dòng)態(tài)Token服務(wù),類似于google auth,每個(gè)人的動(dòng)態(tài)碼均不一樣,每分鐘update一次,以此做登錄堡壘機(jī)的校驗(yàn),當(dāng)然如果想簡(jiǎn)單,單獨(dú)分配一個(gè)靜態(tài)密碼也可以;
第二層:
授權(quán)服務(wù)管理,獲取登錄用戶當(dāng)前的權(quán)限ip列表,判斷用戶的操作是否符合預(yù)授權(quán)。
涉及主要服務(wù):授權(quán)管理服務(wù)
服務(wù)主要功能:
- 設(shè)置用戶/team的 權(quán)限列表;
- 將權(quán)限數(shù)據(jù)下發(fā)至第三層的ldap集群;
- 提供api獲取用戶的權(quán)限list;
關(guān)聯(lián)服務(wù):
- CMDB,以cmdb中的服務(wù)樹(shù)為基本單位做授權(quán),同時(shí)在cmdb中判斷授權(quán)的服務(wù)器對(duì)象是否有效;
- OA,以oa中的用戶組為基本單位做權(quán)限授予,同時(shí)基于oa來(lái)判斷用戶是否有效;
第三層:
登錄實(shí)體服務(wù)器&執(zhí)行命令;
將所有目標(biāo)服務(wù)器的ssh登錄體系對(duì)接ldap集群,通過(guò)在ldap中設(shè)置用戶的publickey & sudo等信息,來(lái)統(tǒng)一控制用戶的登錄權(quán)限&sudo權(quán)限。
目標(biāo)規(guī)模:使用兩臺(tái)服務(wù)器做ldap主從集群,所有實(shí)體服務(wù)器對(duì)接此集群,從而統(tǒng)一進(jìn)行auth驗(yàn)證。
未完待續(xù)
整體的架構(gòu)說(shuō)明就簡(jiǎn)單這樣,接下來(lái)對(duì)就每一層的具體實(shí)現(xiàn)在分別和大家分享。