Использование PowerShell для закрытия порта файервола

Вопрос или проблема

Я провожу полное тестирование приложения, и мне нужно иметь возможность закрывать, а затем открывать порт в Защитнике Windows с помощью команд PowerShell. Я нашел скрипт, который добавляет правило брандмауэра для открытия порта, но мне также нужно иметь возможность закрывать порт.

Скрипт для открытия – http://social.technet.microsoft.com/Forums/scriptcenter/en-US/1173b550-9f19-495f-bf70-ea12e3a73866/using-powershell-to-open-ports-on-on-a-windows-2008-server?forum=ITCG

Возможно ли закрывать порт аналогичным образом? Сначала мне нужно его закрыть, выполнить операцию, затем снова открыть и выполнить другую операцию. Надеюсь, команды сработают на Windows 7 (для тестирования локально) и на сервере 2008 и выше.

https://stackoverflow.com/questions/17981391/delete-firewall-rule-using-powershell-on-windows-7

Ссылка выше содержит решения для Отключения или Удаления правил брандмауэра, например:

Используйте netsh для удаления правил брандмауэра:

netsh advfirewall firewall delete rule name="$ruleName"

Чтобы отключить правило брандмауэра:

function Disable-IncomingFirewallRule($ruleName)
{
    $firewall = New-Object -ComObject hnetcfg.fwpolicy2

    try
    {
        $rule = $firewall.Rules.Item($ruleName)
        $rule.Enabled = $false
        Write-Host "Правило брандмауэра отключено"
    }
    catch
    {
       Write-Host -ForegroundColor Red "Правило не существует"

    }

Ответ или решение

Закрытие и открытие портов в брандмауэре Windows с помощью PowerShell

В современном мире информационных технологий управление брандмауэром является одной из ключевых задач для обеспечения безопасности сетевых приложений. К сожалению, многие разработчики и тестировщики сталкиваются с необходимостью изменять настройки брандмауэра в процессе тестирования своих приложений. В этом ответе мы рассмотрим, как с помощью PowerShell выполнять операции по закрытию и открытию портов в брандмауэре Windows на платформах Windows 7 и Windows Server 2008 и выше.

Закрытие порта в брандмауэре

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

1. Удаление правила с помощью PowerShell

Если вы изначально открыли порт с помощью правила брандмауэра, вы можете его удалить с помощью следующей команды PowerShell:

$ruleName = "Имя вашего правила" # Укажите здесь имя вашего правила
Remove-NetFirewallRule -DisplayName $ruleName

Эта команда удаляет правило брандмауэра, и соответствующий порт будет закрыт. Убедитесь, что вы заменили Имя вашего правила на фактическое имя правила, которое вы хотите удалить.

2. Отключение правила

Если вместо удаления правила вы хотите временно отключить его, можно использовать следующую команду PowerShell:

$ruleName = "Имя вашего правила" # Укажите здесь имя вашего правила
Set-NetFirewallRule -DisplayName $ruleName -Enabled False

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

Открытие порта в брандмауэре

Для открытия порта вам потребуется создать или активировать соответствующее правило. Если вы уже знаете, как создать правило для открытия порта, приведем пример команды PowerShell для этой операции:

New-NetFirewallRule -DisplayName "Имя вашего правила" -Direction Inbound -Protocol TCP -LocalPort 12345 -Action Allow

В этом примере, 12345 — это номер порта, который вы хотите открыть для входящих соединений. Не забудьте подставить актуальные значения.

Примеры полного скрипта

Если вы хотите выполнить закрытие порта, сохранить временный статус, а затем открыть его с последующим выполнением некоторых операций, вы можете использовать следующий скрипт:

# Укажите имя вашего правила
$ruleName = "Имя вашего правила"

# Закрываем порт
Remove-NetFirewallRule -DisplayName $ruleName

# Здесь выполняются ваши необходимые операции
# Например, тестирование вашего приложения

# Открываем порт
New-NetFirewallRule -DisplayName $ruleName -Direction Inbound -Protocol TCP -LocalPort 12345 -Action Allow

Заключение

Управление брандмауэром Windows с помощью PowerShell — это мощный инструмент для IT-специалистов. Описанные выше возможности позволяют легко закрывать и открывать порты в зависимости от ваших нужд. Не забывайте проверять актуальные правила и их состояние перед выполнением операций и использованию команды PowerShell.

Если у вас возникнут дополнительные вопросы по данному процессу, пожалуйста, не стесняйтесь спрашивать.

Оцените материал
Добавить комментарий

Капча загружается...