1. PXE 启动授权
PXE 启动授权控制哪些客户端可以通过 WDS 部署系统,防止未授权设备接入。
1.1 PXE 响应策略
| 策略 | 安全级别 | 说明 |
|---|---|---|
| 不响应未知客户端 | ⭐⭐⭐ | 仅响应 AD 中已预创建的计算机对象 |
| 响应所有客户端 + 审批 | ⭐⭐ | 响应所有请求,但未知客户端需管理员审批 |
| 响应所有客户端 | ⭐ | 任何设备都可 PXE 部署(仅实验环境) |
PowerShell - 配置安全 PXE 策略
# 仅响应已知客户端(最安全)
WDSUTIL /Set-Server /PxePromptPolicy:Known
# 预创建计算机对象
New-ADComputer -Name "Client01" `
-SAMAccountName "Client01$" `
-Path "OU=WDS-Clients,OU=Computers,DC=iehang,DC=cn"
1.2 审批待处理客户端
PowerShell - 审批待处理客户端
# 查看待审批的客户端
Get-WdsClient -PxePromptPolicy "PendingApproval"
# 审批指定客户端
Approve-WdsClient -DeviceName "Client01" `
-JoinDomain $true `
-Domain "iehang.cn" `
-OU "OU=WDS-Clients,OU=Computers,DC=iehang,DC=cn"
# 拒绝客户端
Deny-WdsClient -DeviceName "UNKNOWN-PC"
2. 网络启动安全性
2.1 TFTP 安全
- 限制 TFTP 访问范围:仅在部署子网开放 UDP 69
- 启用 TFTP 日志:记录所有文件传输请求
- 配置 TFTP 最大块大小:防止缓冲区攻击
2.2 DHCP 安全
- 启用 DHCP 审计日志
- 配置 MAC 地址过滤(仅允许已知设备获取 IP)
- 启用 DHCP Snooping(交换机层面)
2.3 网络隔离
💡 生产环境建议
- WDS 服务器放在 专用部署 VLAN
- 使用 802.1X 网络访问控制
- 部署完成后将客户端移至生产 VLAN
3. 映像签名与完整性
确保部署的映像未被篡改。
3.1 映像哈希校验
PowerShell - 映像哈希校验
# 计算映像文件哈希
Get-FileHash "E:\RemoteInstall\Images\Windows Server 2022\install.wim" `
-Algorithm SHA256
# 批量校验所有映像
Get-ChildItem "E:\RemoteInstall\Images" -Recurse -Filter "*.wim" | ForEach-Object {
$hash = Get-FileHash $_.FullName -Algorithm SHA256
[PSCustomObject]@{
File = $_.Name
SHA256 = $hash.Hash
}
}
3.2 映像访问控制
PowerShell - 映像目录权限
# 设置映像目录 NTFS 权限
$acl = Get-Acl "E:\RemoteInstall\Images"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
"BUILTIN\Administrators", "FullControl",
"ContainerInherit,ObjectInherit", "None", "Allow"
)
$acl.AddAccessRule($rule)
Set-Acl -Path "E:\RemoteInstall\Images" -AclObject $acl
4. WDS 服务器安全配置
PowerShell - WDS 服务器安全加固
# 防火墙规则:仅开放必要端口
# WDS 需要的端口
Enable-NetFirewallRule -DisplayGroup "Windows Deployment Services"
# 禁用不必要的端口
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
# 仅允许管理网段访问 WDS 管理端口
New-NetFirewallRule -DisplayName "WDS Admin" `
-Direction Inbound `
-LocalPort 135 `
-Protocol TCP `
-RemoteAddress "192.168.10.0/24" `
-Action Allow
5. 审计与日志
PowerShell - WDS 审计配置
# 启用 WDS 日志
WDSUTIL /Set-Server /EnableLog:Yes
# 查看 WDS 事件日志
Get-WinEvent -LogName "Microsoft-Windows-Deployment-Services/Operational" `
-MaxEvents 50
# 查看 WDS 服务器日志
Get-WinEvent -LogName "Microsoft-Windows-Deployment-Services-Server/Operational" `
-MaxEvents 50
# 审计文件系统访问
Auditpol /set /subcategory:"File System" /success:enable /failure:enable
6. 常见问题
Q1:如何防止非授权客户端通过 PXE 安装系统
① 设置 PXE 策略为 "仅响应已知客户端" ② 在 AD 中预创建计算机对象 ③ 启用 "未知客户端需审批" ④ 交换机层面启用 802.1X 或 DHCP Snooping
Q2:映像文件被篡改如何发现
① 定期对映像文件计算 SHA256 哈希 并比对 ② 启用 NTFS 审计,监控映像目录的写操作 ③ 使用文件完整性监控工具(FIM)
Q3:WDS 服务器被入侵的风险点在哪里
主要风险:① TFTP 无认证,可能被滥用下载映像 ② 映像被替换后部署后门 ③ DHCP 选项被篡改指向恶意 PXE 服务器。需做好网络隔离和访问控制。