首页 > 系统相关 >编写 PowerShell 脚本来管理 Windows 防火墙可以帮助自动化配置和监控网络安全设置。以下是一个简单的大纲,涵盖了管理 Windows 防火墙的主要方面:

编写 PowerShell 脚本来管理 Windows 防火墙可以帮助自动化配置和监控网络安全设置。以下是一个简单的大纲,涵盖了管理 Windows 防火墙的主要方面:

时间:2024-07-06 15:19:32浏览次数:18  
标签:NetFirewallRule Set DisplayName Windows 防火墙 PowerShell 规则 Port

编写 PowerShell 脚本来管理 Windows 防火墙可以帮助自动化配置和监控网络安全设置。以下是一个简单的大纲,涵盖了管理 Windows 防火墙的主要方面:

1. 导入模块和设置变量

  • 导入 NetSecurity 模块以访问防火墙 cmdlet。
  • 设置需要使用的变量,如规则名称、端口号等。

2. 查询和列出现有的防火墙规则

  • 使用 Get-NetFirewallRule 列出所有防火墙规则。
  • 根据需要筛选和显示特定规则。

3. 创建新的防火墙规则

  • 使用 New-NetFirewallRule 创建新的防火墙规则。
  • 指定规则的名称、描述、协议、端口、允许/阻止、远程IP地址等。

4. 禁用或启用现有的防火墙规则

  • 使用 Disable-NetFirewallRule 禁用现有的防火墙规则。
  • 使用 Enable-NetFirewallRule 启用现有的防火墙规则。
  • 可以基于规则名称或其他标识符来操作规则。

5. 删除不再需要的防火墙规则

  • 使用 Remove-NetFirewallRule 删除不再需要的防火墙规则。
  • 可以基于规则名称或其他标识符来删除规则。

6. 监控防火墙日志

  • 使用 Get-NetFirewallPortFilter 和 Get-NetFirewallAddressFilter 监控防火墙的端口过滤和地址过滤。
  • 根据需要设置过滤器并分析日志。

7. 设置防火墙高级安全选项

  • 使用 Set-NetFirewallProfile 和 Set-NetFirewallSetting 配置防火墙的高级安全选项。
  • 包括配置公共、专用和域网络的不同选项,如入站规则、出站规则、阻止无法识别的网络等。

示例脚本大纲

powershellCopy Code
# 导入模块
Import-Module NetSecurity

# 设置变量
$RuleName = "MyCustomRule"
$Port = 80
$Protocol = "TCP"
$Action = "Allow"
$RemoteIP = "192.168.1.100"

# 查询并列出现有的防火墙规则
Get-NetFirewallRule

# 创建新的防火墙规则
New-NetFirewallRule -Name $RuleName -DisplayName "Allow HTTP traffic on port $Port" -Protocol $Protocol -LocalPort $Port -Action $Action -RemoteAddress $RemoteIP

# 禁用现有的防火墙规则
Disable-NetFirewallRule -DisplayName "RuleToDisable"

# 启用现有的防火墙规则
Enable-NetFirewallRule -DisplayName "RuleToEnable"

# 删除不再需要的防火墙规则
Remove-NetFirewallRule -Name "RuleToDelete"

# 监控防火墙日志
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 80 }

# 设置防火墙高级安全选项
Set-NetFirewallProfile -Profile Domain, Public, Private -DefaultInboundAction Block
Set-NetFirewallSetting -EnableFirewall $true -UnicastResponseToMulticast $false

以上是一个基本的 PowerShell 脚本大纲,可以根据具体需求和安全策略进一步扩展和定制。

示例脚本继续

powershellCopy Code
# 导入模块
Import-Module NetSecurity

# 设置变量
$RuleName = "MyCustomRule"
$Port = 80
$Protocol = "TCP"
$Action = "Allow"
$RemoteIP = "192.168.1.100"

# 查询并列出现有的防火墙规则
Get-NetFirewallRule

# 创建新的防火墙规则
New-NetFirewallRule -Name $RuleName -DisplayName "Allow HTTP traffic on port $Port" -Protocol $Protocol -LocalPort $Port -Action $Action -RemoteAddress $RemoteIP

# 禁用现有的防火墙规则
Disable-NetFirewallRule -DisplayName "RuleToDisable"

# 启用现有的防火墙规则
Enable-NetFirewallRule -DisplayName "RuleToEnable"

# 删除不再需要的防火墙规则
Remove-NetFirewallRule -Name "RuleToDelete"

# 监控防火墙日志
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 80 }

# 设置防火墙高级安全选项
Set-NetFirewallProfile -Profile Domain, Public, Private -DefaultInboundAction Block
Set-NetFirewallSetting -EnableFirewall $true -UnicastResponseToMulticast $false

解释

  1. 导入模块和设置变量:

    • 使用 Import-Module NetSecurity 导入 NetSecurity 模块,以便使用防火墙管理的 cmdlet。
    • 设置了变量 $RuleName$Port$Protocol$Action$RemoteIP,用于创建和管理防火墙规则。
  2. 查询和列出现有的防火墙规则:

    • 使用 Get-NetFirewallRule 列出当前系统中所有的防火墙规则。
  3. 创建新的防火墙规则:

    • 使用 New-NetFirewallRule 创建名为 $RuleName 的新防火墙规则,允许TCP流量通过指定的端口 $Port,并允许来自指定远程IP地址 $RemoteIP 的流量。
  4. 禁用和启用现有的防火墙规则:

    • 使用 Disable-NetFirewallRule 和 Enable-NetFirewallRule 分别禁用和启用具有特定显示名称的现有防火墙规则。
  5. 删除不再需要的防火墙规则:

    • 使用 Remove-NetFirewallRule 根据规则名称删除不再需要的防火墙规则。
  6. 监控防火墙日志:

    • 使用 Get-NetFirewallPortFilter 获取防火墙端口过滤器,并通过 Where-Object 筛选出本地端口为 $Port 的日志。
  7. 设置防火墙高级安全选项:

    • 使用 Set-NetFirewallProfile 和 Set-NetFirewallSetting 分别配置防火墙配置文件和设置的高级安全选项,如默认的入站操作和多播响应。

这些示例涵盖了基本的防火墙管理操作,可以根据具体需求和安全策略进行进一步扩展和定制。

# 导入模块
Import-Module NetSecurity

# 设置变量
$RuleName = "MyCustomRule"
$Port = 80
$Protocol = "TCP"
$Action = "Allow"
$RemoteIP = "192.168.1.100"

# 查询并列出现有的防火墙规则
Get-NetFirewallRule

# 创建新的防火墙规则
New-NetFirewallRule -Name $RuleName -DisplayName "Allow HTTP traffic on port $Port" -Protocol $Protocol -LocalPort $Port -Action $Action -RemoteAddress $RemoteIP

# 禁用现有的防火墙规则
Disable-NetFirewallRule -DisplayName "RuleToDisable"

# 启用现有的防火墙规则
Enable-NetFirewallRule -DisplayName "RuleToEnable"

# 删除不再需要的防火墙规则
Remove-NetFirewallRule -Name "RuleToDelete"

# 监控防火墙日志
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 80 }

# 设置防火墙高级安全选项
Set-NetFirewallProfile -Profile Domain, Public, Private -DefaultInboundAction Block
Set-NetFirewallSetting -EnableFirewall $true -UnicastResponseToMulticast $false

解释(续)

  1. 禁用现有的防火墙规则:

    • 使用 Disable-NetFirewallRule -DisplayName "RuleToDisable" 禁用具有特定显示名称的现有防火墙规则。
  2. 启用现有的防火墙规则:

    • 使用 Enable-NetFirewallRule -DisplayName "RuleToEnable" 启用具有特定显示名称的现有防火墙规则。
  3. 删除不再需要的防火墙规则:

    • 使用 Remove-NetFirewallRule -Name "RuleToDelete" 根据规则名称删除不再需要的防火墙规则。
  4. 监控防火墙日志:

    • 使用 Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 80 } 获取防火墙端口过滤器,并筛选出本地端口为 $Port 的日志条目。
  5. 设置防火墙高级安全选项:

    • 使用 Set-NetFirewallProfile -Profile Domain, Public, Private -DefaultInboundAction Block 设置默认情况下拒绝入站连接的防火墙配置文件选项。
    • 使用 Set-NetFirewallSetting -EnableFirewall $true -UnicastResponseToMulticast $false 启用防火墙并禁用对多播请求的单播响应。

这些操作示例展示了如何使用 PowerShell 管理 Windows 防火墙的基本功能,包括创建、禁用、启用和删除规则,以及配置高级安全选项。这些命令可以根据实际需求进行调整和扩展,以满足特定的网络安全需求和策略。

# 导入模块
Import-Module NetSecurity

# 设置变量
$RuleName = "MyCustomRule"
$Port = 80
$Protocol = "TCP"
$Action = "Allow"
$RemoteIP = "192.168.1.100"

# 查询并列出现有的防火墙规则
Get-NetFirewallRule

# 创建新的防火墙规则
New-NetFirewallRule -Name $RuleName -DisplayName "Allow HTTP traffic on port $Port" -Protocol $Protocol -LocalPort $Port -Action $Action -RemoteAddress $RemoteIP

# 禁用现有的防火墙规则
Disable-NetFirewallRule -DisplayName "RuleToDisable"

# 启用现有的防火墙规则
Enable-NetFirewallRule -DisplayName "RuleToEnable"

# 删除不再需要的防火墙规则
Remove-NetFirewallRule -Name "RuleToDelete"

# 监控防火墙日志
Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 80 }

# 设置防火墙高级安全选项
Set-NetFirewallProfile -Profile Domain, Public, Private -DefaultInboundAction Block
Set-NetFirewallSetting -EnableFirewall $true -UnicastResponseToMulticast $false
  1. 禁用现有的防火墙规则:

    • 使用 Disable-NetFirewallRule -DisplayName "RuleToDisable" 禁用具有特定显示名称的现有防火墙规则。
  2. 启用现有的防火墙规则:

    • 使用 Enable-NetFirewallRule -DisplayName "RuleToEnable" 启用具有特定显示名称的现有防火墙规则。
  3. 删除不再需要的防火墙规则:

    • 使用 Remove-NetFirewallRule -Name "RuleToDelete" 根据规则名称删除不再需要的防火墙规则。
  4. 监控防火墙日志:

    • 使用 Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -eq 80 } 获取防火墙端口过滤器,并筛选出本地端口为 $Port 的日志条目。
  5. 设置防火墙高级安全选项:

    • 使用 Set-NetFirewallProfile -Profile Domain, Public, Private -DefaultInboundAction Block 设置默认情况下拒绝入站连接的防火墙配置文件选项。
    • 使用 Set-NetFirewallSetting -EnableFirewall $true -UnicastResponseToMulticast $false 启用防火墙并禁用对多播请求的单播响应。

这些操作示例展示了如何使用 PowerShell 管理 Windows 防火墙的基本功能,包括创建、禁用、启用和删除规则,以及配置高级安全选项。这些命令可以根据实际需求进行调整和扩展,以满足特定的网络安全需求和策略。

 

标签:NetFirewallRule,Set,DisplayName,Windows,防火墙,PowerShell,规则,Port
From: https://www.cnblogs.com/suv789/p/18287292

相关文章

  • MinGW GCC Windows下编译libmodbus
    最近项目从MSVC切换到GCC,libmodbus官网没提供MinGW下GCC如何编译,官网推荐在类UNIX环境下MSYS下编译,个人更偏向直接拿源文件编译。编译libmodbus版本:libmodbus-3.1.10GCC编译器版本: 5.3.0(i686-posix-dwarf-rev0,BuiltbyMinGW-W64project)CMake版本: 3.29.0在随笔最......
  • 在 Windows 中,你可以通过修改注册表来调整系统对于同时打开 SYN 半连接数目的限制。这
    在Windows中,你可以通过修改注册表来调整系统对于同时打开SYN半连接数目的限制。这个限制通常被用来防范SYN攻击,但有时候需要根据特定的网络环境和需求进行调整。以下是在注册表中修改SYN半连接数目限制的步骤:打开注册表编辑器:按下Win+R组合键打开运行窗口。......
  • 在 Windows 操作系统中,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tc
    在Windows操作系统中,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下的两个重要参数控制着TCP/IP协议栈的行为。这些参数可以通过注册表来配置,影响网络连接和端口资源的管理。1.MaxUserPort路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe......
  • windows下,用PowerShell安装fnm,并安装Node.js步骤
    1#installsfnm(FastNodeManager)/安装fnm2wingetinstallSchniz.fnm3#重新开启powershell4#!不确定是否需要此步骤!5$profile6#!不确定是否需要此步骤!按照上面的输出,创建缺失的文件夹7#创建$profile文件:粘贴到powershell后,按回车8if(!(Test-P......
  • 将jar可执行文件打包为windows安装包体
    当我们希望将java编写的可执行文件.jar打包为一个.exe供用户直接使用,我们需要将jre/jdk也打包到exe中,这样用户环境就不需要安装jdk,直接运行我们做好的exe文件。整个过程分为两步,为了方便演示,这里使用JMonkeyEngineSDK打包一个jme3游戏的方式来解释。工具首先下载这里的工具:链......
  • FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。其中SRT全称为SecureReliableTransport,中文叫做安全可靠传输协议。RIST全称为Reliable......
  • 2.7 在Windows系统下载、安装、汉化、配置搭建PyCharm集成开发环境(IDE)——《跟老吕学P
    2.7在Windows系统下载、安装、汉化、配置搭建PyCharm集成开发环境(IDE)——《跟老吕学Python》在Windows系统下载、安装、汉化、配置搭建PyCharm集成开发环境(IDE)一、PyCharm系统要求二、下载PyCharm1.访问PyCharm官网2.转入PyCharm主页3.选择版本4.转入版本下载页面......
  • Windows传统DOS路径有效性检测(资源篇)
    需求    本篇旨在探索Windows传统DOS路径有效性检测的一种可行方案,实际上许多Windows文件IO相关的API也同样可以作为一种方案,为了锻炼一下我们的思考和解决问题的能力,所以我们需要另辟蹊径。本篇将通过有限自动机来验证路径有效性,仅记录资源,具体的实现原理将在后续篇......
  • windows10小工具脚本
    npm环境搭建nvminstall16.14.0nvmuse16.14.0npminstall-gnrm--registry=https://registry.npmmirror.comnrmusetaobaonpmi-ganywherepnpm@8lessnvm-vwin10右键cmd.regWindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Dire......
  • modifing windows color from registry
    WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\ControlPanel\Colors]"ActiveBorder"="180180180""ActiveTitle"="153180209""AppWorkspace"="171171171""Background"="......