Windows系统安全加固
1. 系统安装
系统镜像尽量下载纯净的原版镜像,可以从这两个网站下载 微软软件下载、MSDN,下载完毕后进行SHA1验证,避免镜像损坏或被修改。
2. 账户管理与认证授权
2.1账户
默认账户安全
- 禁用Guest账户
- 禁用或者删除其他无用账户
具体步骤:win+s>输入 计算机管理 >选择系统工具> 本地用户和组> 用户 双击Guest 或者其他无用账户,勾选账户已禁用即可。
控制账户权限
按照业务需求创建不同的用户和用户组。例如管理员用户、数据库用户、审计用户等。
具体步骤:win+s>输入 计算机管理 >选择系统工具> 本地用户和组> 组 右击可以新建组,选中特定的组右击可以将用户添加到该组中。
定期检查并删除无关账户
定期检查删除或者锁定无关账户。
具体步骤:win+s>输入 计算机管理 >选择系统工具> 本地用户和组 查看是否有无关账户
查看是否有隐藏账户
为了安全起见,我们需要查看一下是否有隐藏账户,隐藏账户在计算机管理控制台不显示,使用net user
命令也无法查看到,这时我们就需要通过注册表查看了。
具体步骤:打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SAM\SAM
这个位置,这时我们查看SAM键,发现是空的,这是由于权限不足引起的,我们右击权限,选中Administrators ,并将读取权限允许。 然后按F5刷新一下,这时会发现SAM下不再为空了。 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
定位到这里,展开Names,查看是否有无关账户。如果存在,则需要删除。首先选中要删除的账户,记录默认值,然后删除该键。然后将上方对应的00000xxx的键一并删除即可。
取消显示最后登录的用户名
配置登录登出后,不显示用户名称。
具体步骤:win+s>输入 本地安全策略 具体步骤如下图。
2.2口令
密码复杂度
密码复杂度要求必须满足以下策略:
最短密码长度要求八个字符。
-
启用本机组策略中密码必须符合复杂性要求的策略。
即密码至少包含以下四种类别的字符中的两种:
- 英语大写字母 A, B, C, … Z
- 英语小写字母 a, b, c, … z
- 西方阿拉伯数字 0, 1, 2, … 9
- 非字母数字字符,如标点符号,@, #, $, %, &, *等
具体步骤:本地安全策略 > 帐户策略>密码策略> 开启 密码必须符合复杂性要求,然后配置密码长度最小值,密码最长使用期限应不大于90天,也不宜过短,以免混淆密码。
账户锁定策略
为了防止暴力破解密码,应当配置账户锁定策略。当用户连续认证失败次数超过10次后,锁定该用户使用的帐户。锁定时间30分钟,30分钟后重置计数器。
具体步骤:本地安全策略>账户策略>账户锁定策略 配置账户锁定阈值不大于10次。
2.3 授权
远程关机
在本地安全设置中,从远端系统强制关机权限只分配给Administrators组。
具体步骤:打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 从远端系统强制关机 权限只分配给Administrators组。
本地关机
在本地安全设置中关闭系统权限只分配给Administrators组。
具体步骤:打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 关闭系统 权限只分配给Administrators组。
用户权限指派
在本地安全设置中,取得文件或其它对象的所有权权限只分配给Administrators组。
具体步骤:打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 取得文件或其它对象的所有权 权限只分配给Administrators组。
授权帐户登录
在本地安全设置中,配置指定授权用户允许本地登录此计算机。
具体步骤:打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 允许本地登录 权限给指定授权用户。
授权帐户从网络访问
在本地安全设置中,只允许授权帐号从网络访问(包括网络共享等,但不包括终端服务)此计算机。
具体步骤:打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 从网络访问此计算机 权限给指定授权用户。
3. 日志配置
3.1审核配置
审核登录
设备应配置日志功能,对用户登录进行记录。记录内容包括用户登录使用的帐户、登录是否成功、登录时间、以及远程登录时、及用户使用的IP地址。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核登录事件,成功失败都要审核。
审核策略
启用本地安全策略中对Windows系统的审核策略更改,成功和失败操作都需要审核。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核策略更改,成功失败都要审核。
审核对象访问
启用本地安全策略中对Windows系统的审核对象访问,成功和失败操作都需要审核。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核对象访问。
审核事件目录服务访问
启用本地安全策略中对Windows系统的审核目录服务访问,仅需要审核失败操作。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核目录服务器访问。
审核特权使用
启用本地安全策略中对Windows系统的审核特权使用,成功和失败操作都需要审核。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核特权使用。
审核系统事件
启用本地安全策略中对Windows系统的审核系统事件,成功和失败操作都需要审核。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核系统事件。
审核帐户管理
启用本地安全策略中对Windows系统的审核帐户管理,成功和失败操作都要审核。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核帐户管理。
审核过程追踪
启用本地安全策略中对Windows系统的审核进程追踪,仅失败操作需要审核。
具体步骤: 本地安全策略,在 本地策略 > 审核策略 中,设置 审核进程追踪。
3.2 日志文件大小设置
设置日志文件大小
设置应用日志文件大小至少为 8192 KB,可根据磁盘空间配置日志文件大小,记录的日志越多越好。并设置当达到最大的日志尺寸时,按需要轮询记录日志。
具体步骤: 事件查看器 配置应用日志、系统日志、安全日志属性中的日志大小、以及达到最大日志大小时的相应的策略。
关于Windows系统日志的相关信息 详情参考这篇 文章
3.3 针对特定目录添加审核
针对特定目录添加审核
有时我们需要针对特定目录,特定账户进行的操作进行审核。
具体步骤: 打开文件夹属性,选择高级,点击审核,添加审核主体,审核主体即为用户或用户组。然后设置成功或者失败 亦或者两者都审核。设置权限,设置是否应用于子目录或者文件。
4. IP协议安全配置
IP协议安全
启用SYN攻击保护
启用SYN攻击保护。
- 指定触发SYN洪水攻击保护所必须超过的TCP连接请求数阈值为5。
- 指定处于 SYN_RCVD 状态的 TCP 连接数的阈值为500。
- 指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值为400。
具体步骤:打开注册表编辑器,定位到相应的键值进行修改。
Windows Server 2012
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\SynAttackProtect
推荐值 2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxHalfOpen
推荐值 500
Windows Server 2008
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SynAttackProtect
推荐值 2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpMaxPortsExhausted
推荐值 5
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpMaxHalfOpen
推荐值 500
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpMaxHalfOpenRetried
推荐值 400
5. 文件权限
共享文件夹及访问权限
关闭默认共享
在非域环境中,要关闭Windows硬盘默认共享。
具体步骤: 打开注册表编辑器,根据推荐值设置。
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareServer
推荐值 0
Windows Server 2012版本中 已默认关闭Windows 硬盘共享,且没有此注册表键值
共享文件夹授权访问
每个共享文件夹的共享权限,只允许授权的帐户拥有共享此文件夹的权限。
具体步骤: 每个共享文件夹的共享权限仅限于业务需要,不要设置成为 Everyone。打开 控制面板 > 管理工具 > 计算机管理,在 共享文件夹 中,查看每个共享文件夹的共享权限。
6. 服务安全
6.1 禁用NetBIOS
禁用TCP/IP上的NetBIOS协议,可以关闭监听的 UDP 137(netbios-ns)、UDP 138(netbios-dgm)以及 TCP 139(netbios-ssn)端口。
具体步骤: 打开服务,禁用 TCP/IP NetBIOS Helper 服务。在网络连接属性中,双击Internet协议版本4,单机高级,在WINS页中,关闭LMHOSTS查找,禁用TCP/IP上的NetBIOS。
6.2 禁用不必要的服务
参考如下:
服务名 | 建议 |
---|---|
DHCP Client | 如果不使用动态IP,则建议关闭 |
Background Intelligent Transfer Service | 如果不启用自动更新,建议关闭 |
ComputerBrowser | 建议关闭 |
Diagnostic Policy Service | 建议手动 |
IP Helper | 如果不用双栈建议关闭 |
PrintSpooler | 如果不使用打印服务,建议关闭 |
Remote Registry | 建议关闭 |
TCP/IP NetBIOS Helper | 建议关闭 |
Windows Remote ManageMent | 建议关闭 |
Windows Font Cache Service | 建议关闭 |
WinHTTP Web Proxy Auto-Discovery Service | 建议关闭 |
7. 安全选项
7.1 启用安全选项
具体步骤: 本地安全策略 > 安全选项 进行如下配置
安全选项 | 配置内容 |
---|---|
交互式登录:试图登录的用户的消息标题 | 警告标题 |
交互式登录:试图登录的用户的消息文本 | 警告内容 |
Microsoft网络服务器:对通信进行数字签名(如果客户端允许) | 启用 |
Microsoft网络服务器:对通信进行数字签名(始终) | 启用 |
Microsoft网络客户端:对通信进行数字签名(如果服务器允许) | 启用 |
Microsoft网络客户端:对通信进行数字签名(始终) | 启用 |
网络安全:基于 NTLM SSP的(包括安全RPC)服务器的最小会话安全 | 要求 NTLMv2会话安全 要求128位加密 |
网络安全:基于 NTLM SSP的(包括安全RPC)客户端的最小会话安全 | 要求 NTLMv2会话安全 要求128位加密 |
网络安全:LAN管理器身份验证级别 | 仅发送 NTLMv2响应拒绝LM&NTLM |
网络访问:不允许SAM帐户的匿名枚举 | 启用 |
网络访问:不允许SAM帐户和共享的匿名枚举 | 启用 |
网络访问:可匿名访问的共享 | 空 |
网络访问:可匿名访问的命名管道 | 空 |
网络访问:可远程访问的注册表路径 | 空,不允许远程访问注册表 |
网络访问:可远程访问的注册表路径和子路径 | 空,不允许远程访问注册表 |
7.2 禁止未登录关机
服务器默认是禁止在未登录系统前关机的。如果启用此设置,服务器安全性将会大大降低,给远程连接的黑客造成可乘之机,强烈建议禁用未登录前关机功能。
具体步骤: 本地安全策略 > 安全选项 禁用 关机: 允许系统在未登录前关机 策略。
8. 其他安全配置
8.1 防病毒管理
安装企业级防病毒软件。
8.2 限制远程登录空闲断开时间
对于远程登录的帐户,设置不活动超过时间15分钟自动断开连接。
具体步骤:打开 本地安全策略,在 本地策略 > 安全选项 中,设置 Microsoft网络服务器:暂停会话前所需的空闲时间数量 属性为15分钟。
到此,Windows 安全加固就结束了,要保证安全,光这些还是远远不够的。除此之外,还需要管理员要严格遵守安全规则。