
Windows 安全加固
本文最后更新于 2024-10-09,文章内容可能已经过时。
🛟主要安全风险
-
核心交换机与服务器之间没有部署防火墙或者其他网安产品
-
没有日志服务器
-
管理主机必须精确到主机级,不能以网段级
-
边界未部署防病毒设备
-
主干链路未做冗余
🧑🏻💻账户管理和认证授权
🎈默认账户安全
-
禁用 Guest 账户
-
禁用或删除其他账户 (建议先禁用账户一段时间,待确认没有问题后删除)
-
设定不同的用户和用户组。例如管理员用户、数据库用户、审计用户、来宾用户等。
注:定期删除或锁定与设备运行、维护等与工作无关的帐户。
💡操作步骤
-
打开 控制面板 > 管理工具 > 计算机管理,在系统工具 > 本地用户和组(lusrmgr.msc) 中
-
删除或锁定与设备运行、维护等与工作无关的帐户
🎈三权用户(类)
在 BMB20-2007《涉及国家秘密的信息系统分级保护管理规范》中提出的系统管理员、安全保密管理员和安全审计员是 3 类岗位或角色,并不是指 3 个人,可以是多人。代表涉密信息系统安全保密管理的三类岗位或角色,对应不同的职责, 由相关人员担任,以相应权限的管理员账号登录设备或系统来完成各项工作。各涉密信息系统应该根据实际情况,配备合理数量的安全保密管理人员,以满足系统安全保密管理的需要。
💡系统管理员
菜单管理、参数管理、角色设置、组织机构管理、系统日常运行维护,包括网络设备、安全保密产品、服务器和用户终端、操作系统、数据库、涉密业务应用系统的安装、配置、升级、维护、运行管理(只能修改和重置密码,不能新建和删除)、不允许查看审计日志
💡安全管理员
用户权限的分配(可以分配业务角色)、可以新建和删除用户、不可修改用户信息;不允许查看审计日志
💡审计管理员
审计管理,只允许查看审计日志,监督系统管理员和安全管理员的操作行为
💡创建三权用户
-
sysadmin 系统管理员:users
-
secadmin 安全管理员:Network Configuration Operators、Access Control Assistance Operators
-
sysaudit 审计管理员:Event Log Readers、Performance Log Users
💡账户不显示最后的用户名
配置登录登出后,不显示用户名称。
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略
-
在 本地策略 > 安全选项 中,双击 交互式登录: 不显示最后的用户名
-
选择 已启用 并单击 确定
💡口令(密码复杂度)
密码复杂度要求必须满足以下策略:
-
最短密码长度要求八个字符。
-
启用本机组策略中密码必须符合复杂性要求的策略。
-
即密码至少包含以下四种类别的字符中的三种:
-
英语大写字母 A, B, C, … Z
-
英语小写字母 a, b, c, … z
-
西方阿拉伯数字 0, 1, 2, … 9
-
非字母数字字符,如标点符号,@, #, $, %, &, * 等
-
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略(secpol.msc)
-
在 帐户策略 > 密码策略 中
-
确认密码必须符合复杂性要求策略已启用
💡口令(密码最长留存期)
对于采用静态口令认证技术的设备,帐户口令的留存期不应长于 90 天。
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略
-
在 帐户策略 > 密码策略 中
-
配置密码最长使用期限 不大于 90 天
💡口令(账户锁定策略)
对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过 5 次后,锁定该用户使用的帐户。
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略
-
在 帐户策略 > 帐户锁定策略 中
-
配置 帐户锁定阈值 不大于 5 次
💡授权
在本地安全设置中,只允许授权帐号从网络访问(包括网络共享等,但不包括终端服务)此计算机。
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略
-
在 本地策略 > 用户权限分配 中
-
配置 从网络访问此计算机 权限给指定授权用户
📒日志配置
🎈设置审核策略(八审核策略)
本地安全策略 ---》 本地策略 ---》审核策略
设置应用日志文件大小至少为 20480 KB,可根据磁盘空间配置日志文件大小,记录的日志越多越好。
并设置当达到最大的日志尺寸时,按需要轮询记录日志。
操作步骤
-
打开 控制面板 > 管理工具 > 事件查看器
-
配置 应用日志、系统日志、安全日志 属性中的日志大小
-
以及设置当达到最大的日志尺寸时的相应策略
🛡️IP 协议安全
🎈启用 SYN 攻击保护
SYN 攻击属于 DOS 攻击的一种,它利用 TCP 协议缺陷,通过发送大量的半连接请求,耗费 CPU 和内存资源。SYN 攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上 SYN 攻击并不管目标是什么系统,只要这些系统打开 TCP 服务就可以实施。从上图可看到,服务器接收到连接请求(syn=j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入 SYN_RECV 状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合 IP 欺骗,SYN 攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的 IP 地址,向服务器不断地发送 syn 包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的 SYN 包将长时间占用未连接队列,正常的 SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
针对 SYN 攻击保护的操作需要在注册表编辑器中进行操作,DWORD 32 位
-
指定触发 SYN 洪水攻击保护所必须超过的 TCP 连接请求数阈值为 5。
-
指定处于 SYN_RCVD 状态的 TCP 连接数的阈值为 500。
-
指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值为 400。
SYN 攻击保护启动路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
💡SynAttackProtect
键值名:SynAttackProtect
推荐值:2
有效值:0 – 2
说明:使 TCP 调整 SYN-ACK 的重传。 配置此值后,在遇到 SYN 攻击时,对连接超时的响应将更快速。在超过 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值后,将 触发 SYN 攻击保护。
💡TcpMaxPortsExhausted
键值名: TcpMaxPortsExhausted
推荐值:5
有效值:0 – 65535
说明:指定触发 SYN 洪水攻击保护所必须超过的 TCP 连接请求数的阈值。
💡TcpMaxHalfOpen
键值名:TcpMaxHalfOpen
推荐值:500
有效值:100 – 65535
说明:在启用 SynAttackProtect 后,该值指定处于 SYN_RCVD 状态的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。
💡TcpMaxHalfOpenRetried
键值名: TcpMaxHalfOpenRetried
推荐值:400
有效值:80 – 65535
说明:在启用 SynAttackProtect 后,该值指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。
📂共享文件夹及访问权限
关闭默认共享 非域环境中,关闭 Windows 默认共享例如 C$,D$。
共享文件夹授权访问 每个共享文件夹的共享权限,只允许授权的帐户拥有共亨此文件夹的权限, 不要设置成为 Everyone。
🛑禁用 TCP/IP 上的 NetBIOS
禁用 TCP/IP 上的 NetBIOS 协议,可以关闭监听的 UDP 137(netbios-ns)、UDP 138(netbios-dgm)以及 TCP 139(netbios-ssn)端口。
操作步骤:
-
1. 在 计算机管理 > 服务和应用程序 > 服务 中禁用 TCP/IP NetBIOS Helper 服务。
-
2. 在网络连接属性中,双击 Internet 协议版本 4(TCP/IPv4),单击 高级。在 WINS 页签中,进行如下设置: 取消勾选 LMHOSTS 查找和禁用 TCP/IP 的 netbios
⛔禁用不必要的服务
使用 services.msc 进入服务页面对以下服务进行操作
服务名称 | 建议 |
---|---|
DHCP Client | 如果不使用动态 IP 地址,就禁用该服务 |
Background Intelligent Transfer Service | 如果不启用自动更新,就禁用该服务 |
Computer Browser | 禁用 |
Diagnostic Policy Service | 手动 |
iP Helper | 禁用。该服务用于转换 IPv6 toIPv4 |
Print Spooler | 如果不需要打印,就禁用该服务 |
Remote Registry | 禁用。Remote Registry 主要用于远程管理注册表 |
Server | 如果不使用文件共享,就禁用该服务。禁用本服务将关闭默认共享,如 ipc$、admins 和 cs 等 |
TCP/IP NetBlos Helper | 禁用 |
Windows Remote Management(Ws-Management) | 禁用 |
Windows Font Cache Service | 禁用 |
WinHTTp Web Proxy Auto-Discovery Service | 禁用 |
Windows Error Reporting Service | 禁用 |
⭕启用安全选项
打开 控制面板 > 管理工具 > 本地安全策略,在 本地策略 > 安全选项 中,进行如下设置:
安全选项 | 配置内容 |
---|---|
交互式登录: 试图登录的用户的消息标题 | 注意 |
交互式登录: 试图登录的用户的消息文本 | 内部系统只能因业务需要而使用,经由管理层授权。管理层将随时监测此系统的使用。 |
Microsoft 网络服务器: 对通信进行数字签名 (如果客户端允许) | 启用 |
Microsoft 网络服务器: 对通信进行数字签名 (始终) | 启用 |
Microsoft 网络客户端: 对通信进行数字签名 (如果服务器允许) | 启用 |
Microsoft 网络客户端: 对通信进行数字签名 (始终) | 启用 |
网络安全: 基于 NTLM SSP 的 (包括安全 RPC) 服务器的最小会话安全 | 要求 NTLMV2 会话安全,要求 128 位加密 |
网络安全: 基于 NTLM SSP 的 (包括安全 RPC) 客户端的最小会话安全 | 要求 NTLMV2 会话安全,要求 128 位加密 |
网络安全:LAN 管理器身份验证级别 | 仅发送 NTLMv2 响应 \ 拒绝 LM & NTLM |
网络访问: 不允许 SAM 帐户的匿名枚举 | 启用 (默认已启用) |
网络访问: 不允许 SAM 帐户和共享的匿名枚举 | 启用 |
网络访问: 可匿名访问的共享 | 清空 (默认为空) |
网络访问: 可匿名访问的命名管道 | 清空 (默认为空) |
网络访问: 可远程访问的注册表路径 | 清空,不允许远程访问注册表 |
网络访问: 可远程访问的注册表路径和子路径 | 清空,不允许远程访问注册表 |
🚫禁用未登录前关机
服务器默认是禁止在未登录系统前关机的。如果启用此设置,服务器安全性将会大大降低,给远程连接的黑客造成可乘之机,强烈建议禁用未登录前关机功能。
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略
-
在本地策略 > 安全选项 中,禁用关机: 允许系统在未登录前关机策略
🧷其他配置
🎈防病毒管理
Windows 系统需要安装防病毒软件
操作步骤:
-
安装企业级防病毒软件,并开启病毒库更新及实时防御功能。
-
限制远程登录空闲断开时间
🎈远程登录的帐户
对于远程登录的帐户,设置不活动超过时间 15 分钟自动断开连接。
操作步骤:
-
打开 控制面板 > 管理工具 > 本地安全策略,
-
在 本地策略 > 安全选项 中,
-
设置 Microsoft 网络服务器:暂停会话前所需的空闲时间数量 属性为 15 分钟。
🎈操作系统补丁
及时更新操作系统补丁
🩹粘滞键
程序要备份
copy sethc.exe sethc.exe.bak
move cmd.exe sethc.exe
改文件所有者为管理员组:
takeown /F sethc.exe /A
takeown /F cmd.exe /A
修改文件的管理员组访问控制位完全控制权限:
cacls sethc.exe /E /G administrators:F
cacls cmd.exe /E /G administrators:F
移动并重命名文件,实现粘滞键操作
move cmd.exe sethc.exe