更新:部署文檔見: http://laoguang.blog.51cto.com/6013350/1540793
免費Python視頻教程: http://edu.51cto.com/course/course_id-1386.html
相信各位對堡壘機(跳板機)不陌生,爲了保證服務器安全,前面加個堡壘機,所有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和open***添加是我根據需要添加的,可以去掉
用戶登錄界面:
更改登錄密碼:
修改key密碼:
我把代碼放到 github了,有需要的朋友,可以去看看,大家也可以一同改進,有時間寫寫部署文檔
https://github.com/ibuler/jumpserver
本文出自 “Free Linux, Share Linux” 博客,請務必保留此出處http://laoguang.blog.51cto.com/6013350/1540080