Python自動化開發學習12-Bastion Host開發

來源:互聯網
上載者:User

標籤:唯一約束   好的   環境   ima   項目   實現   記錄   dem   -o   

Bastion Host介紹

很多人覺得,Bastion Host就是跳板機,這是不全面的。跳板功能只是Bastion Host所具備的功能的其中一項。Bastion Host還有以下兩個至關重要的功能:

  • 許可權管理 : 使用者使用Bastion Host帳號登入Bastion Host系統。不需要知道別的主機的帳號和密碼,都是由Bastion Host系統管理的。使用者可以登入的主機和每台主機上所擁有的許可權也是由Bastion Host系統管理的。
  • 審計管理 : 使用者的所有操作都是在Bastion Host上執行的,所以都會被記錄儲存。其實對於操作的結果(就是螢幕上列印的結果),如果需要也是可以記錄儲存的。不過一般不那麼做,而且資料量也會有點大。
開源Bastion Host項目

號稱沒有好的開源項目,因為底層的SSH還是通過paramiko模組的長連結的ssh實現的。但是這個和原生的ssh比還是不太穩定,不太好用。不適合生產環境。要好用還是得去改原生的ssh,但是我們不會,我們只會改python。總之這章就是實現一個Bastion Host的功能,真要做個好用的以後再說吧。
比較有名的大概是這個:jumpserver - 開源跳板機

paramiko模組的長串連

雖然上面說了,用這個模組不穩定,但是我們也沒辦法,畢竟只會這個。
paramiko之前已經學習過了,不過當時用的都是短串連。即:串連一次,執行一條命令,返回結果,斷開。這裡我們要用長串連。
長串連的代碼在demos檔案夾下的demo.py這個檔案裡,另外還要用到interactive.py這個檔案。安裝模組的時候不安裝這個demos檔案夾,所以我們去github上下下來:
https://github.com/paramiko/paramiko/tree/master/demos
利用demo.py程式,我們可以進行ssh的長串連。下面的開發都是基於這個程式為基礎,在這個程式的基礎上,修改該程式的源碼添加上記錄使用者輸入的代碼,並寫入資料庫。於是審計管理便實現了。

Bastion Host構架

任何人只能通過Bastion Host登入裝置,Bastion Host可以連結管理所有的裝置:

配置環境變數

還需要確保使用者一登入Bastion Host就進入你的程式,並且不能退出(一退出就退出整個Bastion Host),就是只能在你的做的shell下運行,不能進入原生的shell。可以通過設定環境變數實現:
環境變數儲存在這裡: ~/.bashrc,修改檔案在最後加上這句: python3 /etc/myJunpServer.py 直接運行你的程式。首次設定完成後如果要讓它立刻生效,可以執行這個命令:source .bashrc 載入最新的配置。

表結構設計

主機表:

id 主機名稱 IP 連接埠號碼
自增id 注釋名稱 字串類型 數實值型別,預設22

主機認證表(和主機表多對多關聯):

id 名稱 使用者名稱 密碼
自增id 注釋名稱 使用者名稱 明文的字串

主機群組表(和主機表+主機認證表多對多關聯):
之前的結合表都是結合2張表,這裡要結合3張表。
因為,不同的群組裡可能包含相同的機器,但是不同群組中同一台機器對應的許可權可能不同。

id 群組名 備忘
自增id 唯一 備忘資訊

Bastion Host帳號表(和主機表多對多關聯,和主機群組表多對多關聯):

id 使用者名稱 密碼
自增id 唯一約束 加密儲存

審計記錄資料表:

id 時間 使用者id 主機id 操作訊息
自增id 操作時間 關聯帳號表的id 關聯主機表的id 操作內容

大概就是這麼個表結構

Python自動化開發學習12-Bastion Host開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.