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運行腳本開始檢查
5. 腳本下載地址
後續:腳本編寫思路
明確要檢查的內容-收集檢查結果-從檢查結果裏面取需要的數據-對數據進行判斷-生成結果