1. 程式人生 > >shell實現對Windows伺服器的安全基線檢查

shell實現對Windows伺服器的安全基線檢查

1.    需求及功能

目前對伺服器的管理,始終離不開安全這個話題。如果要對一臺windows伺服器的安全基線進行一個檢查,你認為需要多長的時間呢?

我們的檢查內容主要包括:當前伺服器效能檢查(CPU使用率\記憶體使用率\磁碟使用率)、安全組策略加固設定檢查、登錄檔加固設定檢查、系統服務加固設定檢查等等。要求記錄現有設定,並且通過與我們要求的設定進行對比,判斷檢查結果是否符合安全規範。

如果通過傳統的方式,一個熟練的windows管理員要檢查上述內容,保守估計用時每臺15分鐘,如果檢查10臺就是2個多小時了。有沒有效率一點方法?

答案是肯定的。工作原因,用過某些廠商基線檢查工具,對windows來說,檢查內容都差不多,自己也可以寫一個類似的東西,想檢查什麼都可以自己來定義,介面也簡潔點。反正檢查時只需敲下命令,然後喝茶,坐等1分鐘左右完成檢查,檢視結果就行了。對需要週期性進行安全基線檢查的朋友來說,絕對能大大節約時間。算上前期部署時間也不超過3分鐘,部署後一勞永逸,以後安全基線檢查只需要敲個命令就行。檢查

10臺windows伺服器可能就5分鐘,因為可以在SecureCRT上開多個session來同時跑。

2.    實現原理及展示

2.1原理

原理是利用Python中的paramiko模組,通過ssh協議驗證windows的登入資訊,然後

呼叫windows的PowerShell來實現對window檢查命令的執行,然後取得結果,通過shell進行判斷,輸出結果(包括htm格式的結果)。目前測試過windows server2008R2和 2012R2 伺服器,可以正常執行。當然寫指令碼過程中會遇到一些問題,但是都有解決的思路,對指令碼有興趣的話可以討論下。

2.2展示例子

執行指令碼後,輸入需要檢查的windows伺服器資訊即可

檢查結果自動輸出,並進行判斷,紅色為不符合規範,綠色為符合規範

還有HTM格式結果,會通過腳本里的sz命令自動下載到你的secureCRT儲存路徑裡

檢查內容主要包括檢查專案符合率、伺服器效能檢查(CPU使用率\記憶體使用率\磁碟使用率)、安全組策略加固設定檢查、登錄檔加固設定檢查、系統服務加固設定檢查、是否安裝最新補丁、高危埠檢查等

3.    準備

3.1   一臺Centos系統:   我使用的虛擬機器centos6.6 (centos7上執行可能會報錯)用來執行指令碼,然後執行windows命令。需要有python(一般已經安裝了)

3.2   軟體:freesshd        官網上下載即可,主要是在被管理的windows伺服器上安裝

4.    實現步驟

4.1各windows伺服器安裝freesshd:freesshd的安裝直接預設下一步即可

freesshd安裝完成後需要稍作設定,如圖:

第一次執行freesshd如圖

然後點選右下角的freesshd圖示進行相關設定,SSH選項卡中,將Command shell設定成C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe如圖:

Users選項卡中點選“Add…”

在彈出的視窗加入windows伺服器的管理員賬號,然後將Shell打上√ 如圖:

最後可選擇是否在Automatic updates裡面關閉自動更新,我一般選擇關閉

設定完成後,在開始-執行 裡面鍵入”services.msc”將freesshd服務重啟一下

Sshd在windows伺服器上設定完成。

4.2安全設定(可選):各windows伺服器上配置ipsec只允許我們的centos伺服器連線sshd的22埠,這樣就避免了其他未授權的ssh連線,建議設定。

如果啟用了防火牆的話,還需要在防火牆裡面設定允許freesshd程式通過防火牆,設定完成後可以在centos伺服器上telnet X.X.X.X(windows伺服器IP) 22 的方式來測試連線是否OK,如圖測試正常:

          

4.3指令碼準備

1)在本文後面下載shell指令碼

2)在centos伺服器中上傳指令碼,命令rz然後選擇指令碼上傳即可

4.4執行指令碼開始檢查

後續:指令碼編寫思路

明確要檢查的內容-收集檢查結果-從檢查結果裡面取需要的資料-對資料進行判斷-生成結果