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

1.    需求及功能

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

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

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

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

 

2.    實現原理及展示

2.1原理

原理是利用Python中的paramiko模塊,通過ssh協議驗證windows的登錄信息,然後

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

 

2.2展示例子

執行腳本後,輸入需要檢查的windows服務器信息即可

1.png

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

2.png

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

3.png

檢查內容主要包括檢查項目符合率、服務器性能檢查(CPU使用率\內存使用率\磁盤使用率)、安全組策略加固設置檢查、註冊表加固設置檢查、系統服務加固設置檢查、是否安裝最新補丁、高危端口檢查等

 

3.    準備

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

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

4.    實現步驟

4.1windows服務器安裝freesshdfreesshd的安裝直接默認下一步即可

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

4.png

5.png

6.png

7.png

第一次運行freesshd如圖

8.png

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

9.png

Users選項卡中點擊“Add…

10.png

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

11.png

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

12.png

設置完成後,在開始-運行 裏面鍵入services.mscfreesshd服務重啓一下

13.png

Sshdwindows服務器上設置完成。

4.2安全設置(可選):各windows服務器上配置ipsec只允許我們的centos服務器連接sshd22端口,這樣就避免了其他未授權的ssh連接,建議設置。

如果啓用了防火牆的話,還需要在防火牆裏面設置允許freesshd程序通過防火牆,設置完成後可以在centos服務器上telnet X.X.X.Xwindows服務器IP 22 的方式來測試連接是否OK,如圖測試正常:

          14.png

 

4.3腳本準備

1)在本文後面下載shell腳本

2)在centos服務器中上傳腳本,命令rz然後選擇腳本上傳即可

4.4運行腳本開始檢查

5.    腳本下載地址


後續:腳本編寫思路

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

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章