1. 程式人生 > 實用技巧 >運維堡壘機(跳板機)系統 python

運維堡壘機(跳板機)系統 python

相信各位對堡壘機(跳板機)不陌生,為了保證伺服器安全,前面加個堡壘機,所有ssh連線都通過堡壘機來完成,堡壘機也需要有 身份認證,授權,訪問控制,審計等功能,筆者用Python基本實現了上述功能。

架構:

堡壘機架構

後端主要技術是LDAP,配置了LDAP集中認證伺服器, 所有伺服器的認證都是由ldap完成的,我的做法是每個使用者一個密碼,把密碼加密放到了資料庫中,當用戶輸入ip從跳板機登陸伺服器的時候,跳板機系統取出密碼,並解密,通過pexpect模組將密碼傳送過去,來完成登入的。


登入介面和方法

使用者登入跳板機,用的是祕鑰認證,登入跳板機後會自動執行跳板機的系統

介面1

輸入完整IP或者部分IP可以完成登入,如果輸入的部分ip匹配的ip不是唯一,會有提示,沒有許可權的會提示沒有許可權

介面3

介面4

輸入P/p可以檢視自己擁有許可權的伺服器ip

介面5

輸入E/E可以在幾臺伺服器上執行同樣的命令,IP直接以逗號分隔

介面6

日誌記錄

日誌記錄用的是pexpect自帶的日誌記錄,記錄的日誌既儲存了命令又儲存了命令的輸出,也不小心講傳送的密碼記錄(不滿意),pexpect模組處理有些難做,我的想法是將日誌每天再處理一遍,將密碼等去掉,日誌儲存在logs目錄下面,檔名是 ip_日期_使用者名稱 ps:用的chinaren登入的,提示視窗卻是baidutest,這是由於我個人原因導致的。

http://laoguang.blog.51cto.comFree Linux, Share Linux

日誌1

日誌2

訪問控制和授權

訪問控制和授權是由一套web來實現的

管理員介面

主頁:

web1

檢視使用者:

web2

新增使用者:

web3

主機列表:

主機1

新增主機:

主機2

許可權列表:

許可權1

許可權2

新增許可權:

許可權新增

新增許可權

後面的pptp和open***新增是我根據需要新增的,可以去掉

使用者登入介面:

使用者介面

更改登入密碼:

修改密碼

修改key密碼:

修改keypass


我把程式碼放到 github了,有需要的朋友,可以去看看,大家也可以一同改進,有時間寫寫部署文件

https://github.com/ibuler/jumpserver

博文連結:http://laoguang.blog.51cto.com/6013350/1540080


轉載於:https://blog.51cto.com/lucifer119/1557247