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