查看原文
其他

Windows系统安全加固与原理

小白客 计算机与网络安全 2022-06-01

信息安全公益宣传,信息安全知识启蒙。

加微信群回复公众号:微信群;QQ群:16004488

加微信群或QQ群可免费索取:学习教程

教程列表见微信公众号底部菜单


对于一台服务器或者说计算机来说,需要对运行在上面的操作系统做怎样的安全加固操作才能保证服务器或者计算机的安全呢?如何才能有效的降低被攻击的风险?


为了达到安全的目的,一般来说我们需要关注操作系统的八个方面:


补丁管理 > 账号漏洞 > 授权管理 > 服务管理 > 功能优化 > 文件管理 > 远程访问控制 > 日志审计


其中:


补丁管理


使用最新版的补丁,避免使系统存在已知的漏洞,从而被攻击者利用。


账号口令


梳理出系统中正在使用和存在的账号和口令,避免使用默认的账号
密码和脆弱的口令如123456、admin等


授权管理


降低操作系统上的软件的权限,将权限降低到不影响软件运行所需的最低权限,避免软件因为拥有过高的权限而被有心人利用。


服务管理


如果操作系统上如果运行着不需要的功能或者服务,尽量关闭。


功能优化


对操作系统上的软件进行安全优化,确保系统的安全性。


文件管理


配置好关键文件的权限,比如说windows文件夹这种关键性的文件夹,不应该允许被非管理员权限的用户访问。


远程访问控制


如果计算机上开启了远程访问功能,需要对访问的人员进行限制,比如说只允许某个ip或者某个网络的人员能够远程登陆,其他的一律拒绝。


日志审计


对于服务器来说,应该要增强操作系统的日志功能,以防发生安全事件后可以追溯源头,提供保障。


这里就以windows系统为例,根据这八大方面的安全操作需要做的有:

加固要点加固方法
补丁管理补丁安装
账号口令优化账号、口令策略
授权管理远程关机、本地关机、用户权限分配、授权账号登陆、授权账号从网络登陆
功能优化

屏幕保护、禁止系统自动登录、隐藏最后的登录名、关闭windows

自动播放功能

服务管理优化服务、关闭共享
文件系统使用NTFS、检查everyone权限、限制命令权限
远程访问控制网络限制、远程连接挂起
日志审核增强日志、增强审核

接下来,以一台windows 2003服务器为例,为大家讲解如何进行加固操作。


一、补丁管理


补丁安装


检查方法,在这里小白介绍三种检查补丁的方法


第一种,查看系统中已安装的补丁包,不过这种方法比较繁琐,容易遗漏未安装的补丁包,需要时时关注官方补丁包何时更新。


相关命令(cmd窗口):


systeminfo
第一步:点击 开始-运行,在运行输入框处输入cmd命令


第二步:在cmd命令行窗口下输入systeminfo命令


按下回车之后我们可以看到系统的详细信息,网下来,有一行写着修补程序这里就可以就看到我们打了多少补丁。可以看到,由于小白的这台windows 2003是新装的,只有一个补丁,显然有非常多的漏洞需要处理。


第二种,使用安全扫描工具对系统进行扫描,根据扫描出来的漏洞进行修复。小白强烈建议大家使用NESSUS进行扫描,然后根据NESSUS给出的建议进行修复,这样工作量就会减轻不少,这里小白就不多赘述了,还不知道NESSUS的用法的同学可以参考我之前的文章。


第三种,安装使用微软安全基准分析器Microsoft Baseline Security Analyzer扫描漏洞。这个分析器是微软自家的东西,是专门用来对windows系列系统进行补丁情况扫描的一款分析器,省去了我们很多的麻烦,是三种方法中相对便捷的做法。


加固方法


加固的方法根据计算机所在环境的不同,加固的方式也不同。


比如说在内网环境,服务器被要求不允许访问公网。这个时候打补丁的方式有两种:一种是根据现在服务器中存在的补丁情况或者漏洞扫描结果到微软的官网手动下载补丁包安装。还有一种就是在内网建立一台专门的存放补丁的服务器(WSUS),且这台补丁服务器可以连接公网,能够自动从微软官网中下载最新的补丁安装包。需要打补丁的服务器通过建立的补丁服务器安装更新。


如果说服务器能够上网,这就很简单了,只要在服务器上面把自动更新的功能勾选上就ok了。打开自动更新的方法:我的电脑-属性-自动更新,选择自动(推荐)。


二、账号口令


账号优化


账号优化的目的是为了减少系统中的无用账号,降低系统的风险。


检查方法


第一步,点击 开始-运行,在运行窗口中输入compmgmt.msc命令,打开计算机管理窗口。相关命令(运行窗口)


compmgmt.msc


第二步,以此展开 系统工具-本地用户和组-用户,确保右边框中Guest处于被停用状态(红叉)。



#加固方法


假设存在一个无用的账户xiaobaike,并且启用了guest账号。这时候就需要删除无用的账号xiaobaike,并且停用guest。相关命令(cmd窗口):


删除用户:net user 用户名 /del
停用用户:net user 用户名 /active:no



使用命令进行删除停用:


口令策略


设置口令策略的目的是为了增强口令的复杂度及锁定策略等,强制用户使用强口令,防止用户设置弱口令,降低被暴力破解的可能性。


加固方法


第一步,点击 开始-运行,在运行处输入secpol.msc打开本地安全策略窗口,相关命令(运行窗口):


secpol.msc


第二步,打开 账户策略-密码策略


设置如下:


密码必须符合复杂性要求:启用
密码长度最小值:8个字符
密码最长使用期限:90天
密码最短使用期限:0天
强制密码历史:5个记住密码
用可还原的加密来存储密码:已禁用


第三步,打开 账户策略-账户锁定策略,设置如下:


复位帐户锁定计数器:30分钟
帐户锁定时间:30分钟
帐户锁定阀值:5次无效登录(必须先设置这一项)


第四步,打开 本地策略-安全选项设置如下:


交互式登录:不显示上次的用户名:启用



第五步,在cmd窗口下输入gpupdate /force命令强制策略生效,相关命令(cmd窗口):


gpupdate /force


三、账号授权


1.远程关机


在这里我们需要设置只允许管理员可以通过远程进行关机操作,不允许其他用户进行关机操作,尤其是如果安装了某些软件,软件自动创建的用户可能拥有关机的权限,应该属于禁止的范畴内。


*检查与加固方法


第一步,开始-运行,在运行输入框处输入secpol.msc命令,打开本地安全设置。
相关命令(运行窗口)

secpol.msc


第二步,点开 安全设置-用户权限分配,在右边找到“从远程系统强制关机”设置,查看是不是只指派给administrators用户组。



如果有多个用户和组,请删除。


2.本地关机


不止是远程关机,本地关机也应该禁止除了管理员以外的用户进行关机这样的危险操作,防止给业务造成不必要的损失。


*检查与加固方法


还是在同样的地方,在右边找到“关闭系统”设置,查看,是不是只指派给administrators用户组。


3.权限分配


一般来说我们部署业务和应用的时候,应该遵循的是最小权限的原则,能够不用到管理员权限就尽量不用到,尽量使用普通权限用户部署。这样,即使黑客入侵到了我们的服务器,也并不会得到太大的权限,将损失降低到最小。


所以,在这里设置权限分配的目的就是为了让普通用户的权限尽可能的低,除了管理员之外,其他账号均不能取得文件的所有权。


*检查与加固方法


第一步,开始-运行,在运行输入框处输入secpol.msc命令,打开本地安全设置。
相关命令(运行窗口)

secpol.msc


第二步,点开 安全设置-用户权限分配,在右边找到“取得文件或者其它对象的所有权”设置,查看是不是只指派给administrators用户组。


4.授权账号登陆


授权账号登陆的意思是允许哪些账号可以登录系统。比如说如果计算机上面有安装apache、mysql等,这些软件在安装的过程中都会默认创建一个系统账号,这一步设置的目的也是为了不允许这些非管理员创建的账号登陆系统,防止被黑客利用。


*检查与加固方法


第一步,开始-运行,在运行输入框处输入secpol.msc命令,打开本地安全设置。
相关命令(运行窗口)

secpol.msc


第二步,点开 安全设置-用户权限分配,在右边找到“允许本地登录”设置,查看是不是为授权的账号。


如果存在其它可以用户或用户组,请删除。


5.授权账号从网络访问


这里设置的是哪些账号可以通过远程登陆的方式访问我们的计算机。如果在这里,我有一个xiaobaike的账号,但是我不想要让这个账号能够远程登陆如果xiaobaike这个账号出现在这个策略列表中,那就显得很奇怪的。如果发现,请删除。


*检查与加固方法


第一步,开始-运行,在运行输入框处输入secpol.msc命令,打开本地安全设置。
相关命令(运行窗口)

secpol.msc


第二步,点开 安全设置-用户权限分配,在右边找到“从网络访问此计算机”设置,查看是不是为授权的账号。


上图发现列表中存在Everyone这个用户,表示任何人都可以通过远程登陆的方式登陆你的计算机,这相当的危险。就像前面小白介绍的《一次完整的攻击行为》这篇文章,最后就是通过新创建一个账号登陆了计算机。所以除非必要,请删除everyone这个账号!


第三步,在cmd命令行界面中输入gpupdate /force命令,使设置立即生效。
相关命令(cmd窗口)

gpupdate /force


四、系统优化


1.设置屏幕保护


有的时候,攻击者不一定要从网络上攻击你的计算机,也可能趁着你离开时时候操控你的计算机,偷取存在你计算机上面的重要资料!所以小白在这里提醒大家,离开的时候电脑要锁屏!锁屏!锁屏!重要的话说三遍


然而,百密也有疏忽的一天,假设某天突然忘记了,计算机被人动了,咋办?小白这里有一个办法,就是设置屏幕保护程序,并且设置屏幕保护程序的同时设置“在恢复时使用密码保护”,增加保护措施。


*检查与加固方法


进入“控制面板->外观和个性化->个性化->更改屏幕保护程序”:查看是否启用屏幕保护程序,设置等待时间为“10分钟”,是否启用“在恢复时使用密码保护”


2.禁止系统自动登录


同刚在防止电脑在你离开时被别人乱动的例子,在这里设置第三重保护措施。设置当系统自动休眠后,激活的时候需要输入密码才能继续使用。


*检查与加固方法


第一步,点击 开始-运行,在运行输入框处输入cotrol userpasswords2命令,进入用户账户设置,相关命令(运行窗口)

control userpasswords2


第二步,勾选“要是用本地,用户必须输入用户名和密码”复选框


3.隐藏最后一次登录名


不知道大家有没有注意到一点,我们平时在使用计算机的时候,如果登陆过一次这台计算机,系统就会默认显示最后一次的登陆名。其实这是一个很不好的点,尤其是当攻击者尝试登陆的时候,他可以一下子就看到你系统的登录名。这时候他只要写一个爆破密码的小脚本,那么他入侵你计算机的可能性就大大增加。


*检查与加固方法


第一步,点击 开始-运行,在运行输入框处输入secpol.msc命令,打开本地安全设置。


第二步,点开 安全设置-本地策略-安全选项,在右边找到“交互式登录:不显示最后的用户名” 查看设置是否处于已启用状态,如果没有,请启用。


4.关闭windows自动播放功能


这个地方非常的重要,为什么呢?windows默认如果系统检测到存在新的设备,它会去自动运行这个设备。假设如果我们打开了自动播放功能,当攻击者插入一个带有恶意病毒的U盘时,windows就会自动的执行这个U盘上面的病毒,从而使我们的计算机处于非常危险的状态,所以必须要关闭windows的自动播放功能。


*检查与加固方法


第一步,点击 开始-运行,在运行输入框处输入gpedit.msc命令,打开组策略编辑器


第二步,在的出现“组策略”窗口中依次选择 计算机配置-管理模板-系统,右边找到 “关闭自动播放”,双击,查看是否设置“已启用”


第三步,在cmd命令行界面中输入gpupdate /force命令,使设置立即生效。


五、服务管理


1.优化管理


关闭windows上不需要的服务,减小风险。在这里,小白建建议将以下服务停止,并将启动方式修改为手动:

DHCP ClientMessengerRemote RegistryPrint Spooler(不使用打印可以关闭)Server(不使用文件共享可以关闭)Simple TCP/IP ServiceSimple Mail Transport Protocol (SMTP)SNMP ServiceTask ScheduleTCP/IP NetBIOS Helper

关闭的方法:


第一步,点击 开始-运行,在运行输入框处输入services.msc命令,打开服务管理器,相关命令(运行窗口)

services.msc


第二步,将不需要使用的服务关闭,并设置为手动。


2.关闭共享


默认情况下,计算机的磁盘是默认开启共享的,如果配合windows特有的IPC$空链接的话,攻击者是可以不需要账户名密码就可以窃取你计算机上的资料的(后面的文章中小白会有介绍)


所以在这里,我们要做的就是关闭计算机系统中各个磁盘的共享


*检查与加固方法


第一步,点击 开始-运行,在运行输入框处输入regedit命令,打开注册表编辑器。


第二步,依次打开
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
在右边新建-DWORD,名字为 AutoShareServer,双击设置键值为0。


六、远程访问控制


1.网络限制


远程访问计算机的形式肯定不止通过远程连接你的计算机这一种方法,还有远程连接共享文件夹、远程连接磁盘、远程连接控制器,远程连接cmd命令行等等。尤其是远程连接控制台,windows是可以不需要密码就可以远程连接控制台的,十分危险。


接下来,我们需要做额外的网络限制来保障我们的系统安全。


*检查与加固方法


第一步,点击 开始-运行,在运行输入框中输入secpol.msc打开 本地安全设置


第二步,依次点开 安全设置-本地策略-安全选项,检查右边的下列项


  • 网络访问: 不允许 SAM 帐户的匿名枚举:已启用

  • 网络访问: 不允许 SAM 帐户和共享的匿名枚举:已启用

  • 网络访问: 将 everyone权限应用于匿名用户:已禁用

  • 帐户: 使用空密码的本地帐户只允许进行控制台登录:已启用


第三步,在cmd命令行界面中输入gpupdate /force命令,使设置立即生效。


七、文件系统


1.使用NTFS文件系统

NTFS相比FAT32更具有安全性

*检查与加固方法


第一步,右键磁盘,选择属性,查看是否为NTFS


第二步,如果不是,可以用以下命令转换(无需格式化),也适用于U盘的文件系统转换。转换命令(cmd窗口)

convert <驱动器盘符>: /fs:ntfs


2.检查everyone的权限


为了系统的安全性,everyone不应该拥有磁盘的所有权


*检查和加固方法


第一步,选择磁盘-属性-安全,检查everyone用户是否有所有权


第二步,删除Everyone的权限或者取消Everyone的写权限


3.命令权限限制


除了system和administrators组和必要的组以外,不让其他用户执行以下特殊命令:


cmd.exe、regsvr32.exe、tftp.exe、ftp.exe、telnet.exe、net.exe、net1.exe、cscript.exe、wscript.exeregedit.exe、regedt32.exe、cacls.exe、command.com、at.exe


*检查与加固方法


第一步,打开 我的电脑-c:/windows/system32文件夹找到
cmd.exe、regsvr32.exe、tftp.exe、ftp.exe、telnet.exe、net.exe、net1.exe、cscript.exe、wscript.exeregedit.exe、regedt32.exe、cacls.exe、command.com、at.exe


第二步,点击属性-安全,查看哪些用户拥有执行权限。


如果有其他无关组,请删除。


八、日志审核


1.增强日志


在这里设置增大日志量的大小,避免因为容量太小而日志记录记录不全,发生紧急事情时无法找到对应日志。


*检查与加固方法


第一步,点击 开始-运行,在运行输入框处输入eventvwr.msc 命令,打开 事件查看器。相关命令(运行窗口)


第二步,分别查看“应用程序”、“安全”、“系统”的属性


第三步,根据需要设置日志大小上限


2.增强审核


对系统事件进行审核,在日后出现故障时用于排查故障


*检查与加固


第一步,点击 开始-运行,在运行输入框中输入secpol.msc命令,打开本地安全设置。


第二步,以此点 安全设置-本地策略-审核策略,在右边设置如下


  • 审核策略更改:成功,失败

  • 审核对象访问:成功,失败

  • 审核系统事件:成功,失败

  • 审核帐户登录事件:成功,失败

  • 审核帐户管理:成功,失败

  • 审核登录事件:成功,失败

  • 审核过程跟踪:成功,失败

  • 审核目录服务访问:成功,失败

  • 审核特权使用:成功,失败


第三步,在cmd命令行界面中输入gpupdate /force命令,使设置立即生效。


下面阅读原文有啥

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存