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服务器信息即可

shell实现对Windows服务器的安全基线检查_第1张图片

 

检查结果自动输出,并进行判断,红色为不符合规范,绿色为符合规范

shell实现对Windows服务器的安全基线检查_第2张图片

 

还有HTM格式结果,会通过脚本里的sz命令自动下载到你的secureCRT保存路径里

shell实现对Windows服务器的安全基线检查_第3张图片

 

检查内容主要包括检查项目符合率、服务器性能检查(CPU使用率\内存使用率\磁盘使用率)、安全组策略加固设置检查、注册表加固设置检查、系统服务加固设置检查、是否安装最新补丁、高危端口检查等

 

3.    准备

3.1   一台Centos系统:   我使用的虚拟机centos6.6 (centos7上运行可能会报错)用来执行脚本,然后执行windows命令。需要有python(一般已经安装了)

3.2   软件:freesshd        官网上下载即可,主要是在被管理的windows服务器上安装

4.    实现步骤

4.1各windows服务器安装freesshd:freesshd的安装直接默认下一步即可

freesshd安装完成后需要稍作设置,如图:

shell实现对Windows服务器的安全基线检查_第4张图片

 

 

 

 

shell实现对Windows服务器的安全基线检查_第5张图片

shell实现对Windows服务器的安全基线检查_第6张图片

shell实现对Windows服务器的安全基线检查_第7张图片

第一次运行freesshd如图

shell实现对Windows服务器的安全基线检查_第8张图片

 

然后点击右下角的freesshd图标进行相关设置,SSH选项卡中,将Command shell设置成C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe如图:

shell实现对Windows服务器的安全基线检查_第9张图片

 

Users选项卡中点击“Add…”

shell实现对Windows服务器的安全基线检查_第10张图片

 

在弹出的窗口加入windows服务器的管理员账号,然后将Shell打上√ 如图:

shell实现对Windows服务器的安全基线检查_第11张图片

 

最后可选择是否在Automatic updates里面关闭自动更新,我一般选择关闭

shell实现对Windows服务器的安全基线检查_第12张图片

 

设置完成后,在开始-运行 里面键入”services.msc”将freesshd服务重启一下

shell实现对Windows服务器的安全基线检查_第13张图片

 

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.    脚本下载地址

 

后续:脚本编写思路

明确要检查的内容-收集检查结果-从检查结果里面取需要的数据-对数据进行判断-生成结果

 

 

你可能感兴趣的:(信息安全)