PowerShell:配置Windows防火墙
PowerShell:配置Windows防火墙防火墙控制流量。他们使用状态检查之类的技术来建立与其他网络的连接。在本文中,我将介绍如何使用Windows PowerShell配置基于主机的Windows防火墙。从Windows XP SP2开始,默认情况下,每个Windows操作系统都启用内置的基于主机的防火墙。这意味着每个Windows系统管理员和开发人员都必须熟悉它。但是,我了解到在实...
PowerShell:配置Windows防火墙
防火墙控制流量。他们使用状态检查之类的技术来建立与其他网络的连接。在本文中,我将介绍如何使用Windows PowerShell配置基于主机的Windows防火墙。
从Windows XP SP2开始,默认情况下,每个Windows操作系统都启用内置的基于主机的防火墙。这意味着每个Windows系统管理员和开发人员都必须熟悉它。但是,我了解到在实践中通常并非如此。可能是因为图形界面或缺乏兴趣。谁知道。在许多环境中,防火墙甚至被停用。在本文中,我将展示如何使用PowerShell配置Windows防火墙。您可以建立的基础知识。
图形用户界面
首先,我必须承认我不是Windows防火墙图形界面的忠实拥护者。键入wf.msc。oder搜索系统设置以打开Windows防火墙。谁想到了这些防火墙规则名称?这确实令人沮丧,但是没有出路。
网络安全模块
在Windows PowerShell中,可以在NetSecurity模块中找到所有防火墙命令。
Get-Command -Module NetSecurity | Format-List Name
启用和禁用Windows防火墙
这将我带到我们的第一个PowerShell Cmdlet:Set-NetFirewallProfile。它使您可以启用和禁用基于主机的防火墙。
Set-NetFirewallProfile -All -Enabled false
Set-NetFirewallProfile -All -Enabled true
对于我们中间的cmd粉丝来说,netsh仍然活着。
netsh advfirewall set allprofiles state off
创建新的防火墙规则
好吧,如果您对预先配置的规则不满意,请添加自己的规则。使用New-NetFirewallRule cmdlet。这是一个如何阻止所有传入的HTTP流量的示例。
New-NetFirewallRule -Name "Block HTTP" -DisplayName "Block HTTP" -Enabled 1 -Direction Inbound -Action Block -LocalPort 80 -Protocol TCP
这使我们转到下一个命令:Get-NetFirewallRule。让我们搜索先前配置的规则。
Get-NetFirewallRule -Name *Block* | Select Name,Enabled,Direction,Action,PrimaryStatus
有关New-NetFirewallRule的更多信息,请访问:https ://docs.microsoft.com/zh-cn/powershell/module/netsecurity/new-netfirewallrule ? view = win10-ps
有关Get-NetFirewallRule的更多信息,请访问:https ://docs.microsoft.com/zh-cn/powershell/module/netsecurity/get-netfirewallrule ? view = win10-ps
定义范围
假设我们只想限制对一台计算机的HTTP访问。不要问我为什么,但这是这部分的场景。因此,client01应该是唯一可以通过HTTP到达dc01的计算机。
现在让我们更改范围。我的意思是:
为了完成这项工作,我必须更改规则以允许。然后,我仅将HTTP访问限制为client01。
Set-NetFirewallRule -DisplayName "Block HTTP" -Action Allow
现在,我将禁用Windows Server Role Web服务器随附的默认HTTP规则。如果我不这样做,我的后续测试将无法进行。
Set-NetFirewallRule -DisplayName "World Wide Web Services (HTTP Traffic-In)" -Enabled false
这意味着我的规则是计算机上唯一的HTTP规则。现在我们更改范围。
Set-NetFirewallRule -Name "Block HTTP" -RemoteAddress 192.168.0.102
让我们快速检查一下。在192.168.0.102上我得到了True。在192.168.0.19上我得到了False。这样可行!
Windows防火墙远程管理
如果您的计算机共享相同的Active Directory域,则可以简单地远程配置Windows防火墙设置。确保在客户端系统上启用了远程管理。要启用它,请输入winrm qc或通过组策略配置WinRM。在Windows Server Systems上,无需采取进一步措施。有关通过组策略启用WinRM的更多信息,请参见: 组策略:为Windows客户端操作系统(Windows 10,Windows 8,Windows 7)启用WinRM。
让我们继续前进。我已登录DC01,并想检查client01是否启用了防火墙。为此,请输入
Invoke-Command -ComputerName client01 {Get-NetFirewallProfile -All | Select Name,Enabled}
这看起来不错。在所有配置文件中均已启用。
在这里,您可以找到一条命令来测试所有服务器系统的所有防火墙:
Test-FirewallAllServer:查询所有Windows服务器上的防火墙状态
结论
我希望我能给一个很好的概述。有关Windows防火墙的更多信息,请参见:
https://technet.microsoft.com/zh-CN/library/hh831755(v=ws.11).aspx
更多推荐
所有评论(0)