運(yùn)維堡壘機(jī)(跳板機(jī))系統(tǒng) python
相信各位對(duì)堡壘機(jī)(跳板機(jī))不陌生,為了保證服務(wù)器安全,前面加個(gè)堡壘機(jī),所有ssh連接都通過堡壘機(jī)來完成,堡壘機(jī)也需要有 身份認(rèn)證,授權(quán),訪問控制,審計(jì)等功能,筆者用Python基本實(shí)現(xiàn)了上述功能。
架構(gòu):
后端主要技術(shù)是LDAP,配置了LDAP集中認(rèn)證服務(wù)器, 所有服務(wù)器的認(rèn)證都是由ldap完成的,我的做法是每個(gè)用戶一個(gè)密碼,把密碼加密放到了數(shù)據(jù)庫(kù)中,當(dāng)用戶輸入ip從跳板機(jī)登陸服務(wù)器的時(shí)候,跳板機(jī)系統(tǒng)取出密碼,并解密,通過pexpect模塊將密碼發(fā)送過去,來完成登錄的。
登錄界面和方法
用戶登錄跳板機(jī),用的是秘鑰認(rèn)證,登錄跳板機(jī)后會(huì)自動(dòng)執(zhí)行跳板機(jī)的系統(tǒng)
輸入完整IP或者部分IP可以完成登錄,如果輸入的部分ip匹配的ip不是唯一,會(huì)有提示,沒有權(quán)限的會(huì)提示沒有權(quán)限
輸入P/p可以查看自己擁有權(quán)限的服務(wù)器ip
輸入E/E可以在幾臺(tái)服務(wù)器上執(zhí)行同樣的命令,IP直接以逗號(hào)分隔
日志記錄
日志記錄用的是pexpect自帶的日志記錄,記錄的日志既保存了命令又保存了命令的輸出,也不小心講發(fā)送的密碼記錄(不滿意),pexpect模塊處理有些難做,我的想法是將日志每天再處理一遍,將密碼等去掉,日志保存在logs目錄下面,文件名是 ip_日期_用戶名 ps:用的chinaren登錄的,提示窗口卻是baidutest,這是由于我個(gè)人原因?qū)е碌摹?/p>
http://laoguang.blog.51cto.com Free Linux, Share Linux
訪問控制和授權(quán)
訪問控制和授權(quán)是由一套web來實(shí)現(xiàn)的
管理員界面
主頁(yè):
查看用戶:
添加用戶:
主機(jī)列表:
添加主機(jī):
權(quán)限列表:
添加權(quán)限:
后面的pptp和openvpn添加是我根據(jù)需要添加的,可以去掉
用戶登錄界面:
更改登錄密碼:
修改key密碼:
我把代碼放到 github了,有需要的朋友,可以去看看,大家也可以一同改進(jìn),有時(shí)間寫寫部署文檔