IIS 作為對外服務入口,安全設定必須系統化、文件化、自動化驗證。以下五大面向建立基線:
Get-WindowsFeature Web-* | Where Installed
inetpub\wwwroot。建立專用網站指向非系統磁碟 (如 D:\WebApps),套用 NTFS 最小權限 (IIS_IUSRS: 讀取/執行;寫入僅限 App_Data/Uploads)。<system.webServer><security><requestFiltering removeServerHeader="true" /></security></system.webServer>
rapidFailProtection="true" maxFailures="5" failureInterval="00:05:00"。<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />SchUseStrongCrypto = 1)。
[Authorize]、Policy-based、Resource-based,永不信任用戶端傳入的角色/權限參數。date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken。sc-status=401/403/500procdump -ma -e 1 -f \"\" w3wp.exe)# 檢查必要模組
$required = @('Web-WebServer','Web-AppInit','Web-Asp-Net45','Web-Mgmt-Console','Web-Request-Filtering')
$installed = Get-WindowsFeature $required | Where Installed
$missing = $required | Where { $_ -notin $installed.Name }
if ($missing) { Write-Warning "缺少模組: $missing" }
# 檢查 requestFiltering removeServerHeader
$cfg = Get-WebConfigurationProperty -Filter 'system.webServer/security/requestFiltering' -Name 'removeServerHeader'
if (-not $cfg) { Write-Warning "未隱藏 Server 標頭" }
將清單納入基線合規掃描 (SCAP/Ansible/DSC),每日自動檢測、差異報警,確保 IIS 永遠處於已知安全狀態。