Белый список сервера iis для входящего трафика на ограниченный набор IP-адресов

Белый список сервера iis для входящего трафика на ограниченный набор IP-адресов

Мы хотим добавить в белый список список IP-адресов для веб-сайта, работающего на IIS на сервере Windows 2008. Поскольку этот список IP-адресов будет динамическим, мы хотели бы сохранить его в текстовом файле, который будет обновляться с помощью веб-службы. Как это сделать? Нам нужно избегать любого ручного вмешательства, такого как открытие графического интерфейса или перезапуск сервера. Мы знаем, как это сделать в Linux либо через таблицы IP, либо через динамическую генерацию правил для Apache или Nginx.

Может ли кто-нибудь нам с этим помочь?

решение1

Вы можете использовать PowerShell и запланированную задачу для достижения этого. Новые правила брандмауэра можно создать с помощьюNew-NetFirewallRuleКомандлет. Ваше правило, вероятно, будет выглядеть так:

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

Чтобы обновить правило, вы можете удалить его и создать заново с сетевым набором IP-адресов с помощью командлета Remove-NetFirewallRule, используя отображаемое имя в качестве идентификатора.

Remove-NetFirewallRule -DisplayName "name"

Или вы можете использоватьУстановить-NetFirewallRuleКомандлет для изменения существующего правила с тем же набором параметров.

Связанный контент