我试图build立一个防火墙,只允许来自特定IP地址的端口80和443的入站stream量。 我试图创build一个规则来阻止TCP,本地端口80和443上的所有stream量,然后我添加了一个规则,以允许从一个特定的远程IP地址相同。 但是,我不断从任何IP地址获得stream量。 因此,我禁用了允许stream量的规则,而且我仍然从任何IP地址获取stream量。 然后,我改变了规则,阻止任何端口上的所有TCPstream量,但我仍然获得stream量。
没有规则允许TCP 80,443或任何不限于特定程序的通信。 如何阻止除特定IP地址以外的端口上的传入stream量? 有什么方法可以确定哪个规则让stream量通过? 谢谢!
首先:
你说在端口80和443上的入站stream量是从任何地方都是允许的。 这意味着有一个活跃的规则,允许交通。 您希望只允许来自特定IP地址的stream量通过这些端口。
您首先需要删除允许stream量的规则,然后创build一个只允许来自特定IP地址的stream量的规则。
要找出哪些规则导致您的端口80和443可以访问,请首先获取所有活动规则:
$active_rules = Get-NetFirewallRule -Enabled True -Direction Inbound -Action Allow
下一步是search允许端口80和443上的入站stream量的可能规则:
$port_filters = $active_rules | Get-NetFirewallPortFilter | Where-Object { $_.LocalPort -in (80, 443) }
然后find相关的防火墙规则:
$port_filters | Get-NetFirewallRule
高级防火墙设置的graphics用户界面中的LocalPort列进行sorting可能更容易 。 但是这些命令可能会帮助你以某种方式追踪规则。
要记住的事情 :检查三个不同的configuration文件。 如果您没有find端口filter,则Web应用程序或Web服务可能具有活动的允许规则。
当您find并删除(或禁用)有关规则时,请为端口和地址创build新的允许规则:
New-NetFirewallRule -DisplayName "Allow TCP:80,443 from certain IPs" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443 -RemoteAddress ("8.8.8.8", "8.8.4.4", "…")