Я пытаюсь создать сценарий PS, который создает правило брандмауэра Windows, блокирующее порт "6672" для определенного файла .exe в соединении INBOUND, но позволяет мне иметь возможность вносить в белый список определенные IP-адреса.

Способ сделать это вручную означает, что я должен полностью заблокировать порт (6672) для моего файла .exe для ВСЕХ IP-адресов, а затем добавить диапазон, оставляя IP-адреса, которые я хочу добавить в белый список.

Например, если я хочу добавить «192.168.0.3», я должен установить диапазон для правила для «0.0.0.0» на «192.168.0.2», а затем для «192.168.0.4» на «255.255.255.255». Причина, по которой я должен был это сделать, заключалась в том, что в брандмауэре Windows похоже, что вы не можете внести в белый список отдельные IP-адреса из правила блокировки, а правила блокировки отменяют любые разрешающие правила.

Итак, возвращаясь к моей первоначальной точке, я действительно борюсь за идеи о том, как решить эту проблему в настоящее время, так как я не могу найти обходной путь. Есть ли способ, которым кто-либо знает, чтобы иметь возможность исключить определенные IP-адреса из правила, или как сделать правило разрешения приоритетным по отношению к правилу блока?

РЕДАКТИРОВАТЬ

Так что у меня есть этот код:

New-NetFirewallRule -DisplayName "GTAO" -Direction Inbound -LocalPort 6672 -Protocol UDP -Action Block
New-NetFirewallRule -DisplayName "GTAO" -Direction Outbound -LocalPort 6672 -Protocol UDP -Action Block

Я в основном хочу, чтобы что-то подобное переопределило предыдущее правило, создав "белый список" для этого правила для отдельных IP-адресов.

$UIP = Read-Host "Enter IP to whitelist"
New-NetFirewallRule -DisplayName "GTA$UIP" -Direction Inbound -LocalPort 6672 -Protocol UDP -Action Allow -RemoteAddress $UIP

1 ответ1

0

Это не специфическая проблема PS, а «Как заставить WF делать X или Y, для которых он не предназначен.'

Очень похоже на это обсуждение и предложения, на некоторые из которых вы уже намекали.

Как сделать одно исключение из правила исходящего трафика брандмауэра Windows

Как сделать одно исключение из правила исходящего трафика брандмауэра Windows

Согласно документации брандмауэра Windows, правила блокировки всегда имеют приоритет над правилами разрешения, поэтому даже если ваше правило разрешения выглядит более конкретным, чем правило блокировки, правило разрешения не будет работать, и трафик, соответствующий правилам разрешения и блокировки, будет заблокирован. Параметр «Разрешить этому правилу брандмауэра переопределять правила блокировки» доступен только для правил, для которых требуется IPSec, и недоступен для исходящих правил.

Единственное, что вы можете сделать с помощью брандмауэра Windows для достижения чего-то близкого к тому, что вам нужно, это переключить поведение по умолчанию для исходящих соединений на «Блокировать», а затем добавить явные правила разрешения для всех исходящих соединений, которые вам нужны (не только для этой отдельной программы ). Кроме того, вы можете искать стороннее программное обеспечение брандмауэра с большим количеством функций.

... Вы можете создать вышеприведенное правило для отдельной программы, просто установив правило для программы, а не для всех программ.

поэтому вы устанавливаете 2 или более правил (в зависимости от того, сколько IP-адресов вы хотите разрешить) и блокируете все остальные. так, например, если вы хотите только разрешить

10.10.10.10

а также

20.20.20.20

Вы устанавливаете правила:

блок с 0.0.0.0 по 10.10.10.9 и с 10.10.10.11 по 20.20.20.19 и с 20.20.20.21 до 255.255.255.255

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .