Skip to content

Windows 服务器安全配置 综合实验

Windows 服务器安全配置 综合实验

Section titled “Windows 服务器安全配置 综合实验”

适用课程:信息安全 / 网络与系统管理 适用系统:Windows Server 2019 / 2022 / 2025(2016 操作基本一致;2025 的”设置”入口布局与 Defender 配置方式见任务八适配说明) 操作方式:优先图形界面(GUI)操作,部分验证步骤辅以命令行 建议学时:4 ~ 6 学时


  1. 理解 Windows 服务器面临的主要安全风险(弱口令、暴力破解、越权访问、远程入侵等)。
  2. 掌握使用 本地安全策略(secpol.msc)组策略编辑器(gpedit.msc)计算机管理(compmgmt.msc) 等图形化工具加固服务器的方法。
  3. 能够独立完成账户、密码、审核、防火墙、服务、权限、远程桌面等核心安全配置。
  4. 掌握 IIS Web 服务器的安全加固方法(最小化安装、目录与执行权限、请求过滤、身份验证隔离、HTTPS 与日志)。
  5. 学会通过日志和验证手段检验安全配置是否生效。
项目说明
虚拟化软件VMware Workstation / Hyper-V / VirtualBox 任选其一
服务器系统Windows Server 2019 / 2022(1 台)
测试客户端Windows 10 / 11 或另一台服务器(1 台,用于验证远程访问)
网络模式两台虚拟机置于同一网段(如 NAT 或仅主机 Host-Only)
账户权限使用本地 Administrator 或具有管理员权限的账户登录

实验前准备:建议先对服务器虚拟机创建一个”快照(Snapshot)“,命名为”实验前-初始状态”,以便实验出错后快速回滚。

工具名称运行命令打开方式(GUI)
本地安全策略secpol.msc开始 → 运行 → 输入命令
组策略编辑器gpedit.msc开始 → 运行 → 输入命令
计算机管理compmgmt.msc右键”此电脑” → 管理
本地用户和组lusrmgr.msc计算机管理 → 本地用户和组
服务管理services.msc开始 → 运行 → 输入命令
事件查看器eventvwr.msc计算机管理 → 事件查看器
防火墙高级设置wf.msc控制面板 → 系统和安全 → 防火墙
IIS 管理器inetmgr服务器管理器 → 工具 → Internet Information Services (IIS) 管理器

提示:按 Win + R 打开”运行”对话框,输入上表命令即可快速打开对应的图形化管理工具。


实验任务一 账户与密码安全策略配置

Section titled “实验任务一 账户与密码安全策略配置”

安全风险:默认账户名已知、口令过于简单,极易被暴力破解或字典攻击。

操作步骤(GUI):

  1. Win + R,输入 secpol.msc,回车,打开 “本地安全策略” 窗口。
  2. 在左侧依次展开:账户策略 → 密码策略
  3. 在右侧逐项双击进行设置,建议值如下:
策略项建议设置值说明
密码必须符合复杂性要求已启用须包含大小写字母、数字、特殊符号中的 3 类
密码长度最小值8 个字符(建议 ≥12)防止短口令
密码最长使用期限30 ~ 90 天强制定期更换
密码最短使用期限1 天防止用户连续改密绕过历史限制
强制密码历史5 个(记住的密码数)防止重复使用旧密码
  1. 每项设置后点击 “应用” → “确定”

验证方法:尝试将某用户密码改为 123,系统应提示”密码不满足复杂性要求”,说明策略生效。

任务 1.2 配置账户锁定策略(防暴力破解)

Section titled “任务 1.2 配置账户锁定策略(防暴力破解)”

操作步骤(GUI):

  1. 在”本地安全策略”中展开:账户策略 → 账户锁定策略
  2. 按下表设置:
策略项建议设置值说明
账户锁定阈值5 次无效登录连续输错 5 次即锁定
账户锁定时间30 分钟锁定后自动解锁的等待时间
重置账户锁定计数器30 分钟计数清零的时间窗口

设置”账户锁定阈值”时会弹出提示,建议将锁定时间和复位时间一并设为 30 分钟,点击”确定”自动应用。

Windows Server 2025 适配提示:较新版本(Win11 22H2+ / Server 2022 含更新 / Server 2025)账户锁定策略默认已启用,阈值通常为 10 次、锁定时长约 10 分钟,因此打开策略时会看到已有默认值而非空值,可在其基础上调到本表建议的 5 次即可。

(加分项)允许内置管理员账户被锁定:在”账户锁定策略”中可看到 “允许管理员账户锁定”(对应安全策略项 AllowAdministratorAccountLockout,自 2022‑10 更新 KB5020282 起可用)。默认情况下内置 Administrator 被排除在锁定之外,建议启用该项,使管理员账户同样受暴力破解保护。

验证方法:注销后,故意输错某账户密码 5 次,第 6 次应提示”账户已被锁定”。

任务 1.3 重命名/禁用内置高危账户

Section titled “任务 1.3 重命名/禁用内置高危账户”

操作步骤(GUI):

  1. Win + R,输入 compmgmt.msc 打开 计算机管理
  2. 展开:系统工具 → 本地用户和组 → 用户
  3. 重命名管理员账户:右键 Administrator重命名,改为不易猜测的名称(如 SecAdmin01)。
  4. 禁用来宾账户:右键 Guest属性,勾选 “账户已禁用” → 确定。
  5. (可选加固)创建一个名为 Administrator 的**普通权限”陷阱账户”**并禁用其登录,用于迷惑攻击者。

也可在”本地安全策略 → 本地策略 → 安全选项”中通过 “账户:重命名系统管理员账户”“账户:重命名来宾账户” 进行重命名。

验证方法:在”本地用户和组”中确认 Guest 账户图标带有向下箭头(表示已禁用),Administrator 名称已更改。


实验任务二 用户权限与安全选项配置

Section titled “实验任务二 用户权限与安全选项配置”

安全风险:权限分配不当导致越权操作;登录信息泄露便于攻击者社工。

操作步骤(GUI):

  1. 打开 secpol.msc → 展开:本地策略 → 用户权限分配
  2. 按下表进行核查与配置(双击策略项 → 添加/删除用户或组):
策略项建议配置目的
从网络访问此计算机仅保留必要组,移除 Everyone减少网络暴露面
拒绝从网络访问此计算机添加 Guest、匿名等阻断匿名网络访问
允许通过远程桌面服务登录仅保留 Administrators 和指定运维组限制可远程登录的人员
关闭系统Administrators防止普通用户关机
  1. 设置后点击”应用 → 确定”。

操作步骤(GUI):

  1. secpol.msc 中展开:本地策略 → 安全选项
  2. 按下表设置关键项:
安全选项建议值说明
交互式登录:不显示最后的用户名已启用隐藏上次登录账户名
交互式登录:试图登录的用户的消息标题填写”安全警告”登录前法律告知横幅
交互式登录:试图登录的用户的消息文本填写警示语同上
网络访问:不允许 SAM 账户的匿名枚举已启用防止匿名枚举账户
网络访问:不允许 SAM 账户和共享的匿名枚举已启用防止匿名枚举共享
关机:允许系统在未登录前关闭已禁用关闭登录界面关机按钮
  1. 逐项设置后”应用 → 确定”。

验证方法:注销后重新进入登录界面,应不再显示上次登录用户名,并显示自定义的安全警告横幅。


实验任务三 审核策略与安全日志

Section titled “实验任务三 审核策略与安全日志”

安全风险:缺少审计日志,入侵行为无法追溯。

操作步骤(GUI):

  1. 打开 secpol.msc → 展开:本地策略 → 审核策略
  2. 按下表双击各项,勾选 “成功”“失败”
审核项成功失败监控目的
审核登录事件监控本地/远程登录尝试
审核账户登录事件监控账户验证
审核账户管理监控账户增删改
审核策略更改监控安全策略被修改
审核对象访问配合 NTFS 审计文件访问
审核特权使用监控权限滥用
  1. 设置完成后”应用 → 确定”。

任务 3.2 配置安全日志大小与留存

Section titled “任务 3.2 配置安全日志大小与留存”

操作步骤(GUI):

  1. Win + R 输入 eventvwr.msc 打开 事件查看器
  2. 展开:Windows 日志 → 安全,右键 → 属性
  3. 设置 “日志最大大小” 为较大值(如 102400 KB ≈ 100 MB)。
  4. 留存方式选择 “按需要改写事件(旧事件优先)” 或”归档已满日志,不改写”。
  5. 点击”确定”。

验证方法:故意输错密码登录一次,在”安全”日志中应能查到 事件 ID 4625(登录失败);成功登录则记录 事件 ID 4624


实验任务四 Windows Defender 防火墙配置

Section titled “实验任务四 Windows Defender 防火墙配置”

安全风险:开放端口过多,扩大攻击面。

任务 4.1 启用防火墙并设置默认策略

Section titled “任务 4.1 启用防火墙并设置默认策略”

操作步骤(GUI):

  1. Win + R 输入 wf.msc 打开 “高级安全 Windows Defender 防火墙”
  2. 右键左上角 “本地计算机上的高级安全 Windows Defender 防火墙”属性
  3. 分别在”域配置文件""专用配置文件""公用配置文件”选项卡中:
    • 防火墙状态:启用
    • 入站连接阻止(默认)
    • 出站连接:允许(默认)
  4. 点击”确定”。

任务 4.2 创建入站规则(按需放行端口)

Section titled “任务 4.2 创建入站规则(按需放行端口)”

操作步骤(GUI):

  1. wf.msc 左侧点击 “入站规则” → 右侧点击 “新建规则”
  2. 规则类型选择 “端口” → 下一步。
  3. 选择 TCP,特定本地端口填写需放行的端口(如 3389 远程桌面、80,443 Web)→ 下一步。
  4. 选择 “允许连接” → 下一步。
  5. 勾选适用的配置文件(域/专用/公用)→ 下一步。
  6. 输入规则名称(如”允许-RDP-3389”)→ 完成。

加固建议:对远程桌面规则可点击”属性 → 作用域”,在”远程 IP 地址”中限定为运维管理机的 IP,仅允许特定来源访问。

验证方法:在测试客户端用 telnet 服务器IP 3389 或浏览器访问,确认放行端口可通、未放行端口被拒。


实验任务五 系统服务安全加固

Section titled “实验任务五 系统服务安全加固”

安全风险:开启不必要的服务会引入漏洞(如老旧的 Telnet、SNMP 等)。

操作步骤(GUI):

  1. Win + R 输入 services.msc 打开 服务管理器
  2. 找到不需要的服务,右键 → 属性,将 “启动类型” 改为 “禁用”,并点击 “停止”
  3. 常见可评估关闭的服务(须结合实际业务判断,不可盲目关闭):
服务名称说明建议
Telnet明文传输,极不安全禁用
Print Spooler打印服务(非打印服务器)评估后禁用(防 PrintNightmare)
Remote Registry远程修改注册表禁用
SNMP Service简单网络管理(默认弱口令)评估后禁用
Server(如无文件共享需求)文件/打印共享谨慎评估
  1. 设置后”应用 → 确定”。

注意:禁用服务前务必确认其不影响业务,建议在快照保护下操作。

Windows Server 2025 提示TelnetSNMP Service 等属于可选功能,默认可能根本未安装,因此在 services.msc 列表中找不到时属正常现象——本就未安装即无需(也无法)禁用,可改用”添加/删除功能”确认其未启用即可。Print SpoolerRemote RegistryServer 等通常默认存在,可按上表评估关闭。

验证方法:服务列表中对应服务”状态”应为空(已停止),“启动类型”为”禁用”。


实验任务六 NTFS 权限与共享安全

Section titled “实验任务六 NTFS 权限与共享安全”

安全风险:共享权限过松(如 Everyone 完全控制)导致数据泄露或被篡改。

操作步骤(GUI):

  1. 新建测试文件夹,如 D:\ShareData
  2. 右键文件夹 → 属性“安全” 选项卡 → “编辑”
  3. 选中 Everyone 组 → 点击 “删除”(移除过松权限)。
  4. 点击 “添加” → 输入指定用户/组(如 Users 或某部门组)→ 确定。
  5. 为该组按需勾选权限(如仅”读取和执行""列出文件夹内容”),避免授予”完全控制”
  6. 点击”应用 → 确定”。

关闭权限继承(精细化控制时):在”安全 → 高级”中点击”禁用继承 → 将已继承的权限转换为此对象的显式权限”,再逐项调整。

操作步骤(GUI):

  1. 文件夹 属性 → “共享” 选项卡 → “高级共享”
  2. 勾选 “共享此文件夹”,可点击”权限”按钮。
  3. 在共享权限中移除 Everyone,添加指定用户并赋予最小必要权限(读取/更改)。
  4. 点击”确定”。

最小权限原则:实际访问权限 = NTFS 权限与共享权限的交集(取最严格者)

验证方法:在测试客户端用 \\服务器IP\ShareData 访问,验证授权用户可访问、未授权用户被拒绝、只读用户无法写入。


实验任务七 远程桌面(RDP)安全配置

Section titled “实验任务七 远程桌面(RDP)安全配置”

安全风险:默认 3389 端口 + 弱口令是被入侵的高发途径。

任务 7.1 启用网络级别身份验证(NLA)

Section titled “任务 7.1 启用网络级别身份验证(NLA)”

操作步骤(GUI):

  1. 右键 “此电脑” → 属性“远程设置”(或 设置 → 系统 → 远程桌面)。
  2. 选择 “仅允许运行使用网络级别身份验证的远程桌面的计算机连接(更安全)”
  3. 点击 “选择用户”,仅添加必要的运维账户,移除多余用户。
  4. 点击”确定”。

任务 7.2 限制可登录用户与会话

Section titled “任务 7.2 限制可登录用户与会话”

操作步骤(GUI,组策略):

  1. 打开 gpedit.msc → 依次展开: 计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机
  2. “会话时间限制” 中,可启用”达到时间限制时断开会话""空闲会话限制”等。
  3. “安全” 中可启用 “要求使用特定的安全层进行远程(RDP)连接” 并选择 “RDP 安全层”“协商”(配合 NLA 使用)。

    Windows Server 2025 提示:旧版教材常建议选 “SSL(TLS 1.0)“,但 TLS 1.0 已属淘汰协议。Server 2025 默认启用 NLA 并支持 TLS 1.2/1.3,建议保留 NLA + 协商,不要显式降级到 TLS 1.0。

任务 7.3 (进阶)修改远程桌面端口

Section titled “任务 7.3 (进阶)修改远程桌面端口”

修改端口属于注册表操作,可降低被自动化扫描命中的概率。为选做项,操作前请做好快照。

  1. Win + R 输入 regedit 打开注册表编辑器。
  2. 定位到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  3. 双击 PortNumber,选择”十进制”,改为非默认端口(如 13389)→ 确定。
  4. 在防火墙中新增对应端口的入站规则(见任务四),并删除/调整原 3389 规则。
  5. 重启服务器或重启”Remote Desktop Services”服务后生效。

验证方法:从测试客户端使用”远程桌面连接(mstsc)“以 服务器IP:新端口 形式连接,确认 NLA 生效(连接前即要求输入凭据)。


实验任务八 系统更新与防病毒

Section titled “实验任务八 系统更新与防病毒”

安全风险:未打补丁的系统易被已知漏洞利用;无防病毒易被恶意软件感染。

操作步骤(GUI):

  1. 打开 设置 → Windows 更新

    Windows Server 2025 适配提示:旧版的 “更新和安全” 大类已被拆分,“Windows 更新” 现在是”设置”中的顶级项(不再嵌套在”更新和安全”下)。Server 2025 还支持经 Windows Update 就地升级(opt-in),普通打补丁流程不受影响。

  2. 点击 “检查更新”,安装重要安全更新。
  3. 点击 “高级选项”,设置自动下载安装、配置活动时间避免业务中断重启。

任务 8.2 配置 Windows Defender 防病毒

Section titled “任务 8.2 配置 Windows Defender 防病毒”

Windows Server 2025 重点提示:服务器版与客户端不同——“Windows 安全中心”(SecurityHealthService / wscsvc)默认不一定可用,Defender 引擎(WinDefend)可能在后台运行却没有图形界面。因此本任务给出两条路径:优先用图形界面(需先安装 GUI 功能),或直接用 PowerShell 管理(服务器版最稳妥)。

路径 A — 启用并使用图形界面(Windows 安全中心):

  1. 先以管理员身份打开 Windows PowerShell,安装 Defender 及其 GUI 功能(也可通过”服务器管理器 → 添加角色和功能”勾选同名功能):
    Terminal window
    Install-WindowsFeature -Name Windows-Defender, Windows-Defender-GUI
    安装后重启服务器,开始菜单才会出现”Windows 安全中心”。
  2. 打开 “Windows 安全中心”(设置 → 隐私和安全性 → Windows 安全中心;或运行 windowsdefender:),进入 “病毒和威胁防护”
    • 确认 “实时保护""云提供的保护""自动提交样本” 均已开启。
    • 点击 “快速扫描” 进行一次扫描。
  3. “病毒和威胁防护设置” 中确认定义库为最新(可手动”检查更新”)。

路径 B — PowerShell 命令行管理(推荐用于 Server 2025 / Server Core):

Terminal window
# 查看运行状态(实时保护、定义库最后更新时间等)
Get-MpComputerStatus | Select-Object AMRunningMode, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
# 确保实时保护开启
Set-MpPreference -DisableRealtimeMonitoring $false
# 更新病毒定义库
Update-MpSignature
# 执行一次快速扫描
Start-MpScan -ScanType QuickScan

若服务器安装了第三方杀毒软件,则以第三方软件策略为准,避免冲突。 另注:Microsoft Defender for Endpoint 对 Windows Server 2025 的完整支持自 2025 年 2 月起逐步铺开。


实验任务九 IIS Web 服务器安全配置

Section titled “实验任务九 IIS Web 服务器安全配置”

安全风险:Web 服务器直接面向网络,是攻击面最大的服务之一。默认或配置不当的 IIS 常见风险包括:开启目录浏览导致目录结构与文件暴露、响应头泄露服务器版本(Server: Microsoft-IIS/10.0X-Powered-By: ASP.NET)便于攻击者信息收集与精准利用、上传目录允许脚本执行从而被上传 Webshell、仅使用明文 HTTP 致凭据与数据被嗅探、错误页返回详细堆栈、日志字段不全无法溯源等。

本任务前置说明:IIS(Internet Information Services)是 Windows Server 自带的 Web 服务器角色。以下操作以 IIS 管理器(inetmgr 图形界面为主。若实验环境中服务器尚未安装 IIS,请先完成任务 9.1。

任务 9.1 安装 IIS 并最小化功能组件

Section titled “任务 9.1 安装 IIS 并最小化功能组件”

操作步骤(GUI):

  1. 打开 服务器管理器 → 右上角 “管理” → “添加角色和功能”,一路”下一步”到 “服务器角色”
  2. 勾选 “Web 服务器 (IIS)“,弹出”添加功能”提示时点击”添加功能”。
  3. “角色服务” 步骤按”最小化安装”原则精简勾选(注意下表高危项默认可能已勾选):
角色服务建议说明
常见 HTTP 功能 → 目录浏览取消勾选防止列目录暴露文件
常见 HTTP 功能 → WebDAV 发布不勾选WebDAV 常被用于上传攻击,非必要不装
应用程序开发 → ASP.NET 4.x按需勾选仅在需要运行 .NET 应用时安装
FTP 服务器不勾选实验无 FTP 需求,减少攻击面
安全 → IP 和域限制勾选任务 9.2 需要用到
  1. “下一步” → “安装”,完成后关闭向导。

命令行等效(PowerShell,可选)

Terminal window
Install-WindowsFeature -Name Web-Server, Web-IP-Security, Web-Stat-Compression -IncludeManagementTools

验证方法:在本机浏览器访问 http://localhost,应看到 IIS 默认欢迎页;按 Win + R 输入 inetmgr 可打开 IIS 管理器。

操作步骤(GUI):

  1. 打开 IIS 管理器inetmgr),左侧展开服务器节点 → 网站 → Default Web Site
  2. 确认关闭目录浏览:双击”目录浏览”图标 → 在右侧”操作”面板点击 “禁用”(默认即禁用,确认状态为已禁用)。
  3. 配置默认文档:双击”默认文档”,确认 index.htmliisstart.htm 等顺序合理(业务首页置于顶部)。
  4. 配置 IP 和域限制(白名单):双击 “IP 地址和域限制”
    • 在”操作”面板点击 “编辑功能设置” → 将”未指定的客户端的访问”改为 “拒绝”(默认拒绝,仅白名单放行)。
    • 点击 “添加允许条目” → 填入测试客户端 IP(特定 IP 或网段)→ 确定。
  5. (可选)勾选”启用域名限制”时务必谨慎,域名限制会在每次请求触发反向 DNS,影响性能,通常仅用 IP 限制即可

提示:若需先验证网站可达再收紧白名单,可先把默认设为”允许”并对个别可疑 IP 拒绝;正式加固时再切为”默认拒绝 + 白名单”。

验证方法:在白名单内的客户端访问 http://服务器IP 正常打开页面;将测试客户端 IP 移出白名单后再访问,应返回 HTTP 403 禁止访问

任务 9.3 身份验证与应用程序池身份隔离

Section titled “任务 9.3 身份验证与应用程序池身份隔离”

安全风险:Web 应用以过高权限运行(如 LocalSystem),一旦被攻破可直接控制整台服务器。

操作步骤(GUI):

  1. 应用程序池身份隔离:在 IIS 管理器左侧点击 “应用程序池” → 选中 DefaultAppPool → 右侧 “高级设置”
    • 找到”进程模型 → 标识(Identity)“,确认设为 ApplicationPoolIdentity(每个池对应一个独立的低权限虚拟账户 IIS AppPool\<池名>,是最佳实践)。
  2. 配置网站身份验证:回到 网站 → Default Web Site → 双击”身份验证”:
    • 保留 “匿名身份验证”(对外公开站点)。
    • 禁用”基本身份验证""Windows 身份验证""摘要式身份验证”(除非为内网站点;基本身份验证明文传输,必须配合 HTTPS)。
    • 选中”匿名身份验证” → 右侧 “编辑” → 将”匿名用户标识”设为 “应用程序池标识”(而非默认 IUSR),实现站点间隔离。
  3. 网站目录 NTFS 权限:右键 C:\inetpub\wwwroot属性 → 安全 → 编辑
    • 移除 EveryoneUsers 的多余写入权限。
    • 仅保留 IIS_IUSRS(或对应虚拟账户 IIS AppPool\DefaultAppPool)的”读取和执行”权限,避免”完全控制”

最小权限原则:网站以独立的应用程序池虚拟账户运行,文件系统仅授予该账户最小必要权限——即便 Web 应用被攻陷,攻击者也只获得低权限,难以横向提权。

验证方法:在”身份验证”中确认仅匿名身份验证启用;在 wwwroot 安全选项卡确认无 Everyone/过大权限。

任务 9.4 防止 Webshell:目录执行权限与请求过滤

Section titled “任务 9.4 防止 Webshell:目录执行权限与请求过滤”

安全风险:上传目录若允许脚本执行,攻击者上传一个 .aspx 木马即可获得 Webshell。

操作步骤(GUI):

  1. C:\inetpub\wwwroot 下新建上传测试目录 Uploads,并放入一个测试脚本(如复制 iisstart.htm 改名为 test.aspx)。
  2. 回到 IIS 管理器 → 展开 Default Web Site,选中下方的 Uploads 目录节点。
  3. 取消该目录的脚本执行权限:双击 “处理程序映射” → 右侧 “编辑功能权限” → 仅勾选 “读取”取消”脚本”与”执行” → 确定。
  4. 配置请求过滤(Request Filtering):选中 Uploads(或站点根)→ 双击 “请求过滤”
    • 切到 “文件扩展名” 选项卡 → 右侧 “拒绝文件扩展名”,依次添加高危扩展名:.config.bak.inc.xml.sql(未使用的敏感扩展名一律拒绝访问/下载)。
    • (可选)在 “HTTP 谓词” 中仅放行业务需要的谓词(如 GETPOST),拦截 TRACE/PUT/DELETE 等。
  5. 限制上传大小:在站点根目录编辑/新建 web.config,限制最大请求体(示例限制为 10 MB):
    <configuration>
    <system.webServer>
    <security>
    <requestFiltering>
    <requestLimits maxAllowedContentLength="10485760" />
    </requestFiltering>
    </security>
    </system.webServer>
    </configuration>

验证方法:浏览器访问 http://服务器IP/Uploads/test.aspx,应无法被当作脚本执行(返回 404 或直接拒绝,而非运行 ASP.NET);访问 .config/.bak 等扩展名应被拦截。

任务 9.5 隐藏服务器信息与配置安全错误页

Section titled “任务 9.5 隐藏服务器信息与配置安全错误页”

安全风险:响应头中的 Server: Microsoft-IIS/10.0X-Powered-By: ASP.NETX-AspNet-Version 暴露技术栈与版本,便于攻击者精准挑选漏洞;详细错误页泄露物理路径与堆栈。

操作步骤(GUI):

  1. 删除多余响应头:选中 Default Web Site → 双击 “HTTP 响应标头” → 选中 X-Powered-By删除
  2. 关闭 ASP.NET 版本头:编辑站点根目录 web.config,在 <system.web> 下添加:
    <httpRuntime enableVersionHeader="false" />
  3. 关闭远程详细错误:选中站点 → 双击 “错误页” → 右侧 “编辑功能设置” → 将”错误响应”设为 “本地请求的详细错误 / 自定义错误页用于远程请求”(远程仅返回通用错误,不泄露路径)。
  4. (进阶)移除 Server 头:IIS 无法通过 GUI 直接移除 Server 头,需借助 URL 重写(URL Rewrite) 模块的出站规则删除该响应头(选做)。

验证方法:在测试客户端按 F12 打开开发者工具 → “网络”面板 → 查看响应头,确认已无 X-Powered-ByX-AspNet-Version;访问不存在的页面,确认远程返回的是通用错误页而非详细堆栈。

Server 2025 / IIS 10 适配提示:IIS 10 默认支持 HTTP/2 与 TLS 1.2/1.3。建议在注册表(HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL)或借助 IIS Crypto 等工具禁用 TLS 1.0 / 1.1 与弱密码套件,仅保留 TLS 1.2 及以上。

任务 9.6(进阶)启用 HTTPS 与配置 IIS 日志

Section titled “任务 9.6(进阶)启用 HTTPS 与配置 IIS 日志”

安全风险:明文 HTTP 下,登录凭据、Cookie、业务数据可被中间人嗅探与篡改;缺少完整日志则入侵行为无法溯源。

操作步骤(GUI):

  1. 创建服务器证书(实验用自签名):IIS 管理器 → 选中服务器节点 → 双击 “服务器证书” → 右侧 “创建自签名证书” → 输入友好名称(如 IIS-Test)→ 确定(实验环境自签名即可;生产应向 CA 申请正式证书)。
  2. 绑定 HTTPS:选中 Default Web Site → 右侧 “绑定”“添加” → 类型选 HTTPS,端口 443,SSL 证书选择 IIS-Test → 确定。
  3. 配置 IIS 日志:选中 Default Web Site → 双击 “日志”
    • 日志文件格式选 “W3C” → 点击 “选择字段”,确保勾选:日期、时间、客户端 IP、用户名、方法、URI 资源、URI 查询、协议状态、用户代理、引用页
    • 建议将日志目录设到非系统盘、仅授权管理员可写,并制定定期归档策略。
    • 勾选”使用本地时间进行文件命名和滚动更新” → 应用。

关于 HSTS:启用 HTTPS 后,可在 web.config 中通过自定义响应头添加 Strict-Transport-Security(HSTS),强制浏览器后续仅以 HTTPS 访问(实验选做)。

验证方法

  • 浏览器访问 https://服务器IP(自签名证书会有不安全警告,点击继续即可),确认 HTTPS 站点可用。
  • 访问站点若干次后,到日志目录(默认 %SystemDrive%\inetpub\logs\LogFiles\W3SVC1\)查看最新日志,确认访问记录已生成且字段完整。

实验任务十 综合验证与日志分析

Section titled “实验任务十 综合验证与日志分析”

完成以上配置后,进行综合验证:

  1. 暴力破解验证:在测试机连续输错密码,确认账户在第 5 次后被锁定;在事件查看器”安全”日志中检索 事件 ID 4625,分析失败登录来源。
  2. 远程访问验证:用授权账户经 NLA 远程登录成功,未授权账户被拒绝。
  3. 共享访问验证:验证最小权限是否生效(只读用户无法写入)。
  4. 端口验证:使用 netstat -ano(命令行辅助)查看监听端口,确认仅开放必要端口。
  5. 日志导出:在事件查看器中右键”安全”日志 → “将所有事件另存为”,导出为 .evtx 文件作为实验证据。
  6. Web 安全验证:在测试客户端按 F12 查看响应头,确认已隐藏 Server/X-Powered-By 版本信息;访问上传目录中的脚本文件确认无法执行(防 Webshell);以 https:// 访问确认加密生效;查看 IIS 日志(W3SVC1)确认访问记录已记录。

实验报告需包含以下内容(每个任务附 操作截图):

  1. 实验目的、环境拓扑图。
  2. 各任务的关键配置截图(密码策略、锁定策略、审核策略、防火墙规则、服务状态、NTFS/共享权限、远程桌面设置、IIS 站点/执行权限/请求过滤/HTTPS 等设置)。
  3. 验证过程截图(账户锁定提示、4625/4624 日志、共享访问被拒提示等)。
  4. 实验中遇到的问题及解决方法。
  5. 实验总结与思考题解答。
  1. “密码复杂性要求”具体要求密码包含哪几类字符?为什么短而复杂的密码仍可能不如长口令安全?
  2. “账户锁定阈值”设置过小(如 3 次)会带来什么副作用?如何平衡安全性与可用性?
  3. NTFS 权限与共享权限同时存在时,用户最终获得的有效权限如何计算?请举例说明。
  4. 为什么远程桌面要启用 NLA(网络级别身份验证)?它防御了哪类攻击?
  5. 仅靠修改 RDP 端口能否真正提升安全性?还应配合哪些措施(结合最小权限、防火墙白名单、强口令等)?
  6. 事件 ID 4624 与 4625 分别代表什么?如何利用安全日志发现暴力破解行为?
  7. IIS 网站中,将上传目录(Uploads)的执行权限改为”仅读取”为什么能有效防止 Webshell?仅靠这一措施是否足够,还需配合哪些加固?
  8. HTTP 响应头中的 ServerX-Powered-By 等信息泄露会带来什么风险?为什么启用 HTTPS(SSL/TLS)不能替代其他 Web 安全配置?
  • 本实验所有操作必须在授权的实验/测试环境(虚拟机)中进行,严禁对未授权的生产系统或他人服务器进行配置更改或攻击测试。
  • 配置遵循 最小权限原则纵深防御原则:单一措施不足以保证安全,需多层叠加。
  • 实验完成后如需还原环境,可恢复实验前创建的虚拟机快照。

附:实验检查清单(自评用)

  • 密码策略已配置(复杂性、长度、有效期)
  • 账户锁定策略已配置(阈值/时间)
  • Guest 已禁用、Administrator 已重命名
  • 用户权限分配与安全选项已加固
  • 审核策略已开启,安全日志大小已调整
  • 防火墙默认阻止入站,按需放行端口
  • 无用/高危服务已禁用
  • NTFS 与共享权限遵循最小权限
  • 远程桌面已启用 NLA 并限制用户
  • 系统更新与 Defender 防病毒已开启
  • IIS 已最小化安装,目录浏览已关闭
  • 上传目录禁止脚本执行,请求过滤已配置
  • IIS 版本信息已隐藏,错误页已安全化
  • IIS 已启用 HTTPS 并开启完整日志
  • 完成综合验证并导出日志证据