1. 程式人生 > >D13——C語言基礎學PYTHON

D13——C語言基礎學PYTHON

C語言基礎學習PYTHON——基礎學習D12

20180918內容綱要:

  堡壘機運維開發

    1、堡壘機的介紹

    2、堡壘機的架構

    3、小結

    4、堡壘機的功能實現需求

1 堡壘機的介紹

百度百科

隨著資訊保安的快速發展,來自內部的安全威脅日益增多,綜合防護、內部威脅防護等思想越來越受到重視,而各個層面的政策合規,如“薩班斯法案”、“資訊系統等級保護”等等也紛紛對運維人員的操作行為審計提出明確要求。堡壘機作為運維安全審計產品將成為資訊系統安全最後一道防線,其作用也將越來越重要。其作用主要是將需要保護的資訊系統資源與安全威脅的來源進行隔離,從而在被保護的資源前面形成一個堅固的“堡壘”,並且在抵禦威脅的同時又不影響普通使用者對資源的正常訪問。

阿里雲堡壘機百度百科:

基於協議正向代理實現,對SSH、Windows遠端桌面、SFTP等常見運維協議的資料流進行全程記錄,再通過協議資料流重組的方式進行錄影回放,達到運維審計的目的。

基於其應用場景,堡壘機可分為兩種型別:

1.1 閘道器型堡壘機 

  閘道器型的堡壘機被部署在外部網路和內部網路之間,其本身不再直接向外部提供服務,而是作為進入內部網路的一個檢查點,用於提供對內部網路特定資源的安全訪問控制。這類堡壘機不提供路由功能,將內 外網從網路層隔離開來,因此除非授權訪問外,還可以過濾掉一些針對內網的來自應用層以下的攻擊,為內部網路資源提供了一道安全屏障。但由於此類堡壘機需要處理應用 層的資料內容,效能消耗很大,所以隨著網路進出口處流量越來越大,部署在閘道器位置的堡壘機逐漸成為了

效能瓶頸,因此閘道器型的堡壘機逐漸被日趨成熟的防火牆、UTM、IPS、網閘等安全產品所取代。 

1.2 運維審計型堡壘機 

  運維審計型堡壘機的原理與閘道器型堡壘機類似,但其部署位置與應用場景不同,且更為複雜。運維審計型堡壘機被部署在內網中的伺服器和網路裝置等核心資源的前面,對運維人員的操作許可權進行控制和操作行為審計;運維審計型堡壘機既解決了運維人員許可權難以控制的混亂局面,又可對違規操作行為進行控制和審計,而且由於運維操作本身不會產生大規模的流量,堡壘機不會成為效能的瓶頸,所以堡壘機作為運維操作審計的手段得到了快速發展。 

堡壘機有什麼用呢?

 1 當你公司的伺服器變的越來越多後,需要操作這些伺服器的人就肯定不只是一個運維人員,同時也可能包括多個開發人員,那麼這麼多的人操作業務系統,如果許可權分配不當就會存在很大的安全風險,舉幾個場景例子:
2 3 設想你們公司有300臺Linux伺服器,A開發人員需要登入其中5臺WEB伺服器檢視日誌或進行問題追蹤等事務,同時對另外10臺hadoop伺服器有root許可權,在有300臺伺服器規模的網路中,按常理來講你是已經使用了ldap許可權統一認證的,你如何使這個開發人員只能以普通使用者的身份登入5臺web伺服器,並且同時允許他以管理員的身份登入另外10臺hadoop伺服器呢?並且同時他對其它剩下的200多臺伺服器沒有訪問許可權 4 5 目前據我瞭解,很多公司的運維團隊為了方面,整個運維團隊的運維人員還是共享同一套root密碼,這樣內部信任機制雖然使大家的工作方便了,但同時存在著極大的安全隱患,很多情況下,一個運維人員只需要管理固定數量的伺服器,畢竟公司分為不同的業務線,不同的運維人員管理的業務線也不同,但如果共享一套root密碼,其實就等於無限放大了每個運維人員的許可權,也就是說,如果某個運維人員想幹壞事的話,他可以在幾分鐘內把整個公司的業務停轉,甚至資料都給刪除掉。為了降低風險,於是有人想到,把不同業務線的root密碼改掉就ok了麼,也就是每個業務線的運維人員只知道自己的密碼,這當然是最簡單有效的方式,但問題是如果你同時用了ldap,這樣做又比較麻煩,即使你設定了root不通過ldap認證,那新問題就是,每次有運維人員離職,他所在的業務線的密碼都需要重新改一次。 6 7 8 9 其實上面的問題,我覺得可以很簡單的通過堡壘機來實現,收回所有人員的直接登入伺服器的許可權,所有的登入動作都通過堡壘機授權,運維人員或開發人員不知道遠端伺服器的密碼,這些遠端機器的使用者資訊都繫結在了堡壘機上,堡壘機使用者只能看到他能用什麼許可權訪問哪些遠端伺服器。 10 11 12 13 在回收了運維或開發人員直接登入遠端伺服器的許可權後,其實就等於你們公司生產系統的所有認證過程都通過堡壘機來完成了,堡壘機等於成了你們生產系統的SSO(single sign on)模組了。你只需要在堡壘機上新增幾條規則就能實現以下許可權控制了: 14 15 允許A開發人員通過普通使用者登入5臺web伺服器,通過root許可權登入10臺hadoop伺服器,但對其餘的伺服器無任務訪問許可權 16 17 多個運維人員可以共享一個root賬戶,但是依然能分辨出分別是誰在哪些伺服器上操作了哪些命令,因為堡壘機賬戶是每個人獨有的,也就是說雖然所有運維人員共享了一同一個遠端root賬戶,但由於他們用的堡壘賬戶都是自己獨有的,因此依然可以通過堡壘機控制每個運維人員訪問不同的機器。
堡壘機的許可權管理
1 審計管理其實很簡單,就是把使用者的所有操作都紀錄下來,以備日後的審計或者事故後的追責。在紀錄使用者操作的過程中有一個問題要注意,就是這個紀錄對於操作使用者來講是不可見的,什麼意思?就是指,無論使用者願不願意,他的操作都會被紀錄下來,並且,他自己如果不想操作被紀錄下來,或想刪除已紀錄的內容,這些都是他做不到的,這就要求操作日誌對使用者來講是不可見和不可訪問的,通過堡壘機就可以很好的實現。
堡壘機的審計管理

2 堡壘機的架構

堡壘機的主要作用許可權控制和使用者行為審計。堡壘要想成功完全記到他的作用,只靠堡壘機本身是不夠的, 還需要一系列安全上對使用者進行限制的配合,堡壘機部署上後,同時要確保你的網路達到以下條件:

  • 所有人包括運維、開發等任何需要訪問業務系統的人員,只能通過堡壘機訪問業務系統
    • 回收所有對業務系統的訪問許可權,做到除了堡壘機管理人員,沒有人知道業務系統任何機器的登入密碼
    • 網路上限制所有人員只能通過堡壘機的跳轉才能訪問業務系統 
  • 確保除了堡壘機管理員之外,所有其它人對堡壘機本身無任何操作許可權,只有一個登入跳轉功能
  • 確保使用者的操作紀錄不能被使用者自己以任何方式獲取到並篡改  

3 小結

對於堡壘機看完一遍視訊仍然是懵逼狀態,但覺得這東西很有用。不明覺厲。

對於後續如果有需求再深入研究,目前就這樣吧。等以後在慢慢豐富。

4 堡壘機功能實現需求

業務需求:

  1. 兼顧業務安全目標與使用者體驗,堡壘機部署後,不應使使用者訪問業務系統的訪問變的複雜,否則工作將很難推進,因為沒人喜歡改變現狀,尤其是改變後生活變得更艱難
  2. 保證堡壘機穩定安全執行, 沒有100%的把握,不要上線任何新系統,即使有100%把握,也要做好最壞的打算,想好故障預案

功能需求:

  1. 所有的使用者操作日誌要保留在資料庫中
  2. 每個使用者登入堡壘機後,只需要選擇具體要訪問的設定,就連線上了,不需要再輸入目標機器的訪問密碼
  3. 允許使用者對不同的目標裝置有不同的訪問許可權,例:
    1. 對10.0.2.34 有mysql 使用者的許可權
    2. 對192.168.3.22 有root使用者的許可權
    3. 對172.33.24.55 沒任何許可權
  4. 分組管理,即可以對設定進行分組,允許使用者訪問某組機器,但對組裡的不同機器依然有不同的訪問許可權   

設計表結構:

ssh公鑰登入過程

使用密碼登入,每次都必須輸入密碼,非常麻煩。好在SSH還提供了公鑰登入,可以省去輸入密碼的步驟。

所謂"公鑰登入",原理很簡單,就是使用者將自己的公鑰儲存在遠端主機上。登入的時候,遠端主機會向用戶傳送一段隨機字串,使用者用自己的私鑰加密後,再發回來。遠端主機用事先儲存的公鑰進行解密,如果成功,就證明使用者是可信的,直接允許登入shell,不再要求密碼。

這種方法要求使用者必須提供自己的公鑰。如果沒有現成的,可以直接用ssh-keygen生成一個:

  $ ssh-keygen

執行上面的命令以後,系統會出現一系列提示,可以一路回車。其中有一個問題是,要不要對私鑰設定口令(passphrase),如果擔心私鑰的安全,這裡可以設定一個。

執行結束以後,在$HOME/.ssh/目錄下,會新生成兩個檔案:id_rsa.pub和id_rsa。前者是你的公鑰,後者是你的私鑰。

這時再輸入下面的命令,將公鑰傳送到遠端主機host上面:

  $ ssh-copy-id [email protected]

好了,從此你再登入,就不需要輸入密碼了。

完整示例程式碼

我是尾巴~

雖不才,才要堅持。