Windows
iis 伺服器將入站流量列入一組有限 IP 地址的白名單
我們希望將在 Windows 2008 伺服器中的 IIS 上執行的網站的 IP 地址列表列入白名單。由於這個 IP 地址列表是動態的,我們希望將其儲存在一個文本文件中,該文件將使用 Web 服務進行更新。你是怎麼做的,我們必須避免任何類型的手動干預,例如打開 GUI 或重新啟動伺服器。我們知道如何在 Linux 上通過 IP 表或通過為 Apache 或 Nginx 動態生成規則來實現這一點。
有人可以幫助我們解決這個問題。
您可以使用 PowerShell 和計劃任務來完成此操作。可以使用New-NetFirewallRule Cmdlet 創建新的防火牆規則。您的規則可能如下所示:
New-NetFirewallRule -DisplayName "name" -Direction Inbound -LocalPort 80 -Protocol TCP -RemoteAddress $IPs -Action Allow | Out-Null
您必須將允許的 IP 地址放在一個數組中(請參閱變數 $IPs)才能使其正常工作。當然,這部分腳本取決於您的文本文件的佈局。如果您的文件如下所示:
8.8.8.8 8.8.4.4
然後以下程式碼片段應該可以工作:
$IPs = Get-Content -Path "Path\to\file.txt" New-NetFirewallRule -DisplayName "name" -Direction Inbound -LocalPort 80 -Protocol TCP -RemoteAddress $IPs -Action Allow | Out-Null
要更新規則,您可以使用 Remove-NetFirewallRule Cmdlet 刪除並使用 IP 地址的網路集重新創建它,使用顯示名稱作為標識符。
Remove-NetFirewallRule -DisplayName "name"
或者,您可以使用Set-NetFirewallRule Cmdlet 使用相同的參數集修改現有規則。