Windows 2008 サーバーの IIS で実行されている Web サイトの IP アドレスのリストをホワイトリストに登録したいと考えています。この IP アドレスのリストは動的であるため、Web サービスを使用して更新されるテキスト ファイルに保存したいと考えています。これをどのように行うか、GUI を開いたり、サーバーを再起動したりするなどの手動介入を避ける必要があります。Linux で IP テーブルを使用するか、Apache または Nginx のルールを動的に生成する方法を知っています。
誰かこれを手伝ってくれませんか。
答え1
PowerShellとスケジュールされたタスクを使用してこれを実現できます。新しいファイアウォールルールは、新しいネットファイアウォールルールコマンドレット。ルールはおそらく次のようになります。
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 コマンドレットを使用し、IP アドレスのネット セットでルールを削除して再作成します。
Remove-NetFirewallRule -DisplayName "name"
または、NetFirewallRule の設定同じパラメータ セットを使用して既存のルールを変更するコマンドレット。