本文介紹了壹種跳板機實現思路,闡述了基本原理,並講解了特點和相對優勢。
壹、 跳板機思路簡介
本文所描述的跳板機(下文稱為“jmp”)支持:
有別於市面上常見的jumpserver方案,使用本文所搭建的跳板機將不會存儲任何Linux服務器的賬號、密碼、密鑰等信息,杜絕了信息泄露的可能。本文最大的特點是 借助Linux的PAM機制,通過修改Linux服務器系統層配置,部分接管了Linux系統的身份認證能力 ,關於這壹點,下文將詳細描述。
二、背景知識
2.1 Linux 的 PAM 機制
PAM(Pluggable Authentication Modules)機制,是壹種廣泛應用於當代Unix、Linux發行版的系統層身份認證框架。通過提供壹系列動態鏈接庫和兩套編程接口(Service Programming Interface 和 Application Programming Interface),將系統提供的服務與該服務的認證方式分離,從而使得可以根據需要靈活地給不同的服務配置不同的認證方式而無需更改服務程序。
2.2 PAM 的核心能力
2.3 PAM 模塊類型
2.4 常見 PAM 模塊
三、跳板機系統架構
3.1 微服務和高可用設計
整個跳板機系統可拆分為5個服務,和1個組件。
定時從jmp-api拉取服務和權限信息,緩存到本地文件
根據需要檢測文件改動,確保配置文件不被惡意修改
提供jmp.so動態庫,為pam模塊
安裝腳本釋放配置文件,修改/etc/pam.d/xxx文件,生效jmp的pam模塊
接管身份識別和權限認證,調用jmp-api接口以完成鑒權
jmp中任何壹個服務都是無狀態的,因而支持異地多機房部署
/s?__biz=MzI4NjY4MTU5Nw==&mid=2247493879&idx=2&sn=7af0fb33d5efb3768b0ab168e19bd4df