Windows系统加固指引
-
前言
-
1. 禁用Guest账户禁用或删除其他无用账户
-
2. 更改默认Administrator用户名
-
3. 不显示最后登录的用户名
-
4. 密码复杂度要求设置
-
5. windows帐户锁定策略(防止暴力破解)
-
6. 删除用户和组,从远程系统强制关机权限
-
7. 只允许Administrators组关机
-
8. 只允许Administrators组,取得文件或其它对象的所有权
-
9. 只允许administrators组本地登录
-
10. 只允许Administrators组,从网络访问此计算机
-
11. 不允许SAM账户和共享的匿名枚举(启用)
-
12. 关机:清除虚拟内存页面文件(启用)
-
13. 网络访问:可远程访问的注册表路径和子路径(清除)
-
14. windows日志审核设置
-
15. 交互式登录:无须按ctrl+alt+del(禁用)
-
16. windows日志配置
-
17. 启用SYN攻击保护
-
18. 禁用TCPIP上的NetBIOS
-
19. 关闭默认共享
-
20. 禁用不必要的服务
-
21. 禁用Task Scheduler服务
-
22. 交互式登录:试图登录的用户的消息提示
-
23. Microsoft 网络客户端: 对通信进行数字签名
-
24. 网络安全: 基于 NTLM SSP 的最小会话安全设置
-
25. 网络安全: LAN 管理器身份验证级别
-
26. 网络访问 可匿名访问的共享及命名管道
-
28. 允许系统在未登录的情况下关闭(禁用)
-
29. 屏幕保护程序设置
-
30. Microsoft 网络服务器 暂停会话前所需的空闲时间量
-
31. 防止ICMP重定向攻击
-
32. 防止碎片攻击
-
33. 防止源路由欺骗攻击
-
34. 仅为基本windows程序和服务启动DEP
-
35. 匿名权限限制
-
36. 禁止自动重新启动
-
37. 修改windows远程桌面端口
-
38. 关闭windows防火墙 135 , 137 , 138 , 139 , 445 ,3389 端口
-
总结
前言
现在各行各业都要做等保测评,以下内容是针对windows操作系统的安全加固,需要注意的地方是关于注册表的一些修改,本人测试在win7上是OK的,但其他系统如win10或windows server系统的请不要使用,后果很严重。最后吐槽一下,关于windows防火墙的那些看上去很愚蠢的行为,我之前搭建过实验,windows防火墙有一条看不见的默认规则,那就是默认拒绝所有,其实你只要把所有规则列表统统删除掉,然后把需要开放的端口打开即可。但现实往往很打脸,测评人员只认拒绝的那些规则,与其花时间去费力不讨好的解释,还不如老老实实双击一下批处理,不是吗?但这也不能说明什么,毕竟人家也有人家的工作,拍个照片表示禁用了这些高危端口,也方便出报告不是吗?
1. 禁用Guest账户禁用或删除其他无用账户
操作步骤:Win+R打开运行输入compmgmt.msc打开计算机管理,点击“本地用户和组”—“用户”—右键“Guest”—“属性”—勾选“账户已禁用”
2. 更改默认Administrator用户名
操作步骤:Win+R打开运行输入compmgmt.msc打开计算机管理,点击“本地用户和组”—“用户”—右键“Administrator”—“重命名”
3. 不显示最后登录的用户名
操作步骤:Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略–安全选项,交互式登录:不显示最后的用户名(启用)
4. 密码复杂度要求设置
操作步骤:Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—账户策略—密码策略,
密码必须符合复杂性要求(启用)
密码长度最小值(8个字符)
密码最短使用期限(1天)
密码最长使用期限(90天)
强制密码历史(5个记住的密码)
5. windows帐户锁定策略(防止暴力破解)
操作步骤:Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—账户策略—帐户锁定策略,
账户锁定时间(30分钟)
账户锁定阈值(5次无效登录)
重置账户锁定计数器(30分钟之后)
6. 删除用户和组,从远程系统强制关机权限
操作步骤:Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—用户权限分配,从远程系统强制关机(删除所有用户和组)
7. 只允许Administrators组关机
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—用户权限分配,关闭系统(只保留Administrators组)
8. 只允许Administrators组,取得文件或其它对象的所有权
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—用户权限分配,取得文件或其他对象的所有权(只保留Administrators组)
9. 只允许administrators组本地登录
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—用户权限分配,允许本地登录(只保留Administrators组)
10. 只允许Administrators组,从网络访问此计算机
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—用户权限分配,从网络访问此计算机(只保留Administrators)
11. 不允许SAM账户和共享的匿名枚举(启用)
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,网络访问:不允许SAM账户和共享的匿名枚举(启用)
12. 关机:清除虚拟内存页面文件(启用)
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,关机:清除虚拟内存页面文件(启用)
13. 网络访问:可远程访问的注册表路径和子路径(清除)
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
网络访问:可远程访问的注册表路径(清除)
网络访问:可远程访问的注册表路径和子路径(清除)
14. windows日志审核设置
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—审核策略,
审核策略更改(勾选“成功”和“失败”)
审核登录事件(勾选“成功”和“失败”)
审核对象访问(勾选“成功”和“失败”)
审核进程跟踪(勾选“失败”)
审核目录服务访问(勾选“成功”和“失败”)
审核特权使用(勾选“成功”和“失败”)
审核系统事件(勾选“成功”和“失败”)
审核账户登录事件(勾选“成功”和“失败”)
审核账户管理(勾选“成功”和“失败”)
15. 交互式登录:无须按ctrl+alt+del(禁用)
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
交互式登录:无须按ctrl+alt+del(禁用)
16. windows日志配置
操作步骤:
Win+R打开运行输入compmgmt.msc打开计算机管理—计算机管理(本地)—事件查看器—windows日志,
将“应用程序”,“安全”,“系统”日志属性设置为“日志满时将其存档,不覆盖事件”,日志大小不小于20480KB
17. 启用SYN攻击保护
操作步骤:
新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
#"SynAttackProtect"推荐值为2,"TcpMaxPortsExhausted"推荐值为5,"TcpMaxHalfOpen"推荐值为500,"TcpMaxHalfOpenRetried"推荐值为400。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"SynAttackProtect"=dword:00000002
"TcpMaxPortsExhausted"=dword:00000005
"TcpMaxHalfOpen"=dword:000001f4
"TcpMaxHalfOpenRetried"=dword:00000190
18. 禁用TCPIP上的NetBIOS
操作步骤:
Win+R打开运行输入ncpa.cpl打开网络连接,在对应网卡上右键“属性”,TCP/IPv4“属性”—“高级”—“WINS”选项卡—取消勾选“启用”
19. 关闭默认共享
操作步骤:
新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]
"AutoShareServer"=dword:00000000
"AutoShareWKS"=dword:00000000
20. 禁用不必要的服务
操作步骤:
新建txt文档,复制以下内容,改后缀为bat,双击运行即可:
net stop TermService
sc config TermService start= disabled
net stop RemoteAccess
sc config RemoteAccess start= disabled
net stop Dhcp
sc config Dhcp start= disabled
net stop BITS
sc config BITS start= disabled
net stop Browser
sc config Browser start= disabled
net stop DPS
sc config DPS start= disabled
net stop iphlpsvc
sc config iphlpsvc start= disabled
net stop Spooler
sc config Spooler start= disabled
net stop RemoteRegistry
sc config RemoteRegistry start= disabled
net stop LanmanServer
sc config LanmanServer start= disabled
net stop lmhosts
sc config lmhosts start= disabled
net stop WinRM
sc config WinRM start= disabled
net stop FontCache
sc config FontCache start= disabled
net stop WinHttpAutoProxySvc
sc config WinHttpAutoProxySvc start= disabled
net stop WerSvc
sc config WerSvc start= disabled
21. 禁用Task Scheduler服务
(注意:禁用后,大量的系统功能将会异常。例如,Windows自动更新、时间同步、时区同步、自动磁盘清理、自动StartComponentCleanup清理、自动维护等。)
操作步骤:新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Schedule]
"Start"=dword:00000004
22. 交互式登录:试图登录的用户的消息提示
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
交互式登录: 试图登录的用户的消息标题 (注意)
交互式登录: 试图登录的用户的消息文本 (内部系统只能因业务需要而使用,经由相关负责人授权使用。)
23. Microsoft 网络客户端: 对通信进行数字签名
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,以下内容需启用
Microsoft 网络服务器: 对通信进行数字签名(如果客户端允许)
Microsoft 网络服务器: 对通信进行数字签名(始终)
Microsoft 网络客户端: 对通信进行数字签名(如果服务器允许)
Microsoft 网络客户端: 对通信进行数字签名(始终)
24. 网络安全: 基于 NTLM SSP 的最小会话安全设置
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
网络安全: 基于 NTLM SSP 的(包括安全 RPC)服务器的最小会话安全(勾选“要求 NTLMv2 会话安全”和“要求 128 位加密”)
网络安全: 基于 NTLM SSP 的(包括安全 RPC)客户端的最小会话安全(勾选“要求 NTLMv2 会话安全”和“要求 128 位加密”)
25. 网络安全: LAN 管理器身份验证级别
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
网络安全: LAN 管理器身份验证级别(仅发送 NTLMv2响应。拒绝 LM 和 NTLM)
26. 网络访问 可匿名访问的共享及命名管道
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
网络访问: 可匿名访问的共享 (清除)
网络访问: 可匿名访问的命名管道(清除)
28. 允许系统在未登录的情况下关闭(禁用)
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
关机: 允许系统在未登录的情况下关闭(禁用)
29. 屏幕保护程序设置
操作步骤:
打开“控制面板”—“外观和个性化”—“屏幕保护程序”,
等待时间设置为5分钟,勾选“在恢复时显示登录屏幕”。
30. Microsoft 网络服务器 暂停会话前所需的空闲时间量
操作步骤:
Win+R打开运行输入gpedit.msc打开组策略管理,计算机配置—windows设置—安全设置—本地策略—安全选项,
Microsoft 网络服务器: 暂停会话前所需的空闲时间量(15分钟)
31. 防止ICMP重定向攻击
操作步骤:新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
# 设置"EnableICMPRedirect"的值为0就是防止ICMP攻击,默认值是1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"EnableICMPRedirect"=dword:00000000
32. 防止碎片攻击
操作步骤:新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
# "EnablePMTUDiscovery"值为0表示不自动探测MTU大小,都使用576字节的MTU,1表示自动探测MTU大小,攻击者可能强制MTU值变得非常小,导致堆栈的负荷过大
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"EnablePMTUDiscovery"=dword:00000000
33. 防止源路由欺骗攻击
操作步骤:新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
#"DisableIPSourceRouting"值为0表示转发所以数据包,1表示不转发源路由的数据包,2表示丢弃所以传入源路由的数据包
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"DisableIPSourceRouting"=dword:00000001
34. 仅为基本windows程序和服务启动DEP
操作步骤:Win+R打开运行输入sysdm.cpl打开系统属性,“高级”—性能“设置”—“数据执行保护”—勾选“仅为基本windows程序和服务启用DEP”
35. 匿名权限限制
操作步骤:新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
#"restrictanonymous"值为1表示限制匿名用户权限,默认值为0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000001
36. 禁止自动重新启动
操作步骤:Win+R打开运行输入sysdm.cpl打开系统属性,“高级”—启动和故障恢复“设置”—取消勾选“自动重新启动”
37. 修改windows远程桌面端口
操作步骤:新建txt文档,复制以下内容,改后缀为reg,双击运行即可:
Windows Registry Editor Version 5.00
#修改Windows远程端口号为9833,"PortNumber"的值为十六进制,2669转换十进制为9833
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:00002669
#同上
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002669
38. 关闭windows防火墙 135 , 137 , 138 , 139 , 445 ,3389 端口
操作步骤:新建txt文档复制内容改后缀为bat,双击运行即可:
netsh advfirewall set allprofiles state on
netsh advfirewall firewall add rule name="Disable port 135 - TCP" dir=in action=block protocol=TCP localport=135
netsh advfirewall firewall add rule name="Disable port 135 - UDP" dir=in action=block protocol=UDP localport=135
netsh advfirewall firewall add rule name="Disable port 137 - TCP" dir=in action=block protocol=TCP localport=137
netsh advfirewall firewall add rule name="Disable port 137 - UDP" dir=in action=block protocol=UDP localport=137
netsh advfirewall firewall add rule name="Disable port 138 - TCP" dir=in action=block protocol=TCP localport=138
netsh advfirewall firewall add rule name="Disable port 138 - UDP" dir=in action=block protocol=UDP localport=138
netsh advfirewall firewall add rule name="Disable port 139 - TCP" dir=in action=block protocol=TCP localport=139
netsh advfirewall firewall add rule name="Disable port 139 - UDP" dir=in action=block protocol=UDP localport=139
netsh advfirewall firewall add rule name="Disable port 445 - TCP" dir=in action=block protocol=TCP localport=445
netsh advfirewall firewall add rule name="Disable port 445 - UDP" dir=in action=block protocol=UDP localport=445
netsh advfirewall firewall add rule name="Disable port 3389 - TCP" dir=in action=block protocol=TCP localport=3389
总结
其实没啥好总结的,顺便说一下等保测评的主机漏洞扫描,你就把防火墙打开,只允许ICMP,扫描结果一定是OK的,主机漏洞扫描说白了就是一个端口扫描,例如你的主机有mysql服务,你用nmap只能扫描出一个3306的端口号,而哪些动辄几万软妹币的某某扫描软件,就能探测出你的mysql是什么版本,有啥子漏洞之类的,你直接把端口关闭了,保证漏扫结果OK。前提是你确实不需要对外提供mysql的数据库服务哈,不然你就老老实实整改去吧。最后再说一下,哪些关于注册表修改的事情,特别是关于syn攻击保护,icmp重定向攻击,碎片攻击,源路由欺骗攻击这几项,再我看来根本没必要,或者应该这样说,所有的安全都是有代价的,就像你用一把AK去保护一堆废纸皮一样可笑,黑客没等到,自己的主机却经常性的不稳定,愚蠢至极。