Windows防火墙是一种用于控制网络流量和端口的有效机制。管理Windows防火墙有不同的方法,如GUI、Powershell和MS-DOS。今天我们将详细介绍如何使用一个名为 netsh
. Netsh是一个内置工具,它存在于所有Windows版本,如Windows Server 2008、Windows Server 2012、Windows Server 2016、Windows 7、Windows 8和Windows 10。
救命
帮助关于 netsh
命令可以用 /?
选项。
$ netsh /?

从输出netsh命令可以看出,它提供了很多网络管理功能,如Wlan、网桥、Dhcp、Ras等。
交互式Shell
Netsh命令可以从命令行直接发出命令来使用。但也有一个交互式shell,可以使用相同的命令来管理网络。使用交互式shell时 netsh
命令被取消。交互式shell只需使用 netsh
命令如下。
$ neths

还有子shell或模块,它们可以用来发出命令,比如 advfirewall
$ advfirewall

网络配置文件
正如我们所知,Windows操作系统带有内置的配置文件,其中不同的网络安全设置是根据这些配置文件应用的。建立网络连接后,Windows会询问我们连接的网络是什么类型的。我们选择以下配置文件之一。
- 域配置文件
- 个人资料
- 公众简介
列出所有网络配置文件
所有现有的网络配置文件都可以用 advfirewall show allprofiles
命令如下。
$ advfirewall show allprofiles

我们可以从命令输出中看到,提供了以下有关网络配置文件的信息。
-
State
显示此配置文件是否可用 -
Firewall Policy
显示入站和出站连接策略默认情况下是否可以在此配置文件中进行入站或出站连接。 -
Local Firewall Rules
显示是否为本地 防火墙规则存在或组策略已继承。 -
Local Con Sec Rules
-
Inbound User Notification
显示是否已建立入站连接是否将向用户桌面显示通知 -
Remote Management
指定是否 可以使用远程管理端口和机制。 -
Logging
分区是关于创建日志的。 -
Log Allowed Connections
显示是否将记录允许的连接的配置 -
Log Dropped Connections
显示 配置是否已删除 将记录连接 -
File Name
指定防火墙日志的路径和名称。 -
Max File Size
显示日志文件的最大大小
相关文章: “无路由到主机”错误及解决方法
域配置文件
域配置文件是在Windows域中的Windows系统中设计的。
个人资料
专用配置文件设计用于私人生活领域,如家庭或朋友,我们可以半信任网络,而不是由域控制器控制。
公众简介
公共配置文件设计用于存在真正安全线程的公共区域。这些区域是图书馆、咖啡馆等。
关闭防火墙
默认情况下启用Windows防火墙。防火墙规则很严格,通常不能在不同的端口上运行3.party应用程序。另一种情况是,我们已经准备好安装一个端点安全解决方案,我们不需要Windows内置防火墙。我们可以简单地关闭防火墙。 这将禁用 当前活动网络配置文件的防火墙。
$ advfirewall set currentprofile state off

打开防火墙
如前所述,Windows操作系统的防火墙默认启用。但在某些情况下,我们可能需要启用和启动防火墙。这将为当前活动的网络配置文件启用防火墙。
$ advfirewall set currentprofile state on

为所有网络配置文件启用防火墙
前面的步骤打开和关闭当前服务器的防火墙。我们还可以使用以下命令为所有现有配置文件打开防火墙。这将为默认配置的域、私有和公共配置文件打开防火墙。
$ advfirewall set allprofiles state on

列出当前防火墙配置
我们之前列出了所有现有的配置文件。我们也只能列出当前的配置文件配置。
$ advfirewall show currentprofile

开放式港口
现在我们可以开始真正的防火墙管理操作了。最常用的命令和功能之一是打开防火墙端口。我们将指定第4层协议类型,如 TCP
或 UDP
以及具有相关名称的端口号作为标识符。在本例中,我们将启用端口号 443
说出它的名字 MyHttps
.
$ advfirewall firewall add portopening tcp 443 MyHttps
关闭端口
我们可能需要关闭一个端口,以使我们的系统更安全,并加强我们的系统。我们将使用 delete
命令删除现有打开的端口或异常。在这个例子中,我们远程端口号 TCP
443
名字是 MyHttps
.
$ firewall delete portopening tcp 443
丢弃ICMP或Ping数据包
在Ping机制中使用ICMP数据包是IT环境下解决网络连接问题最常用的技术之一。我们通常通过ping远程系统来判断网络是否在运行,远程系统是否启动。但这可能会在关键环境中造成一些安全漏洞。所以禁用ping是更安全的方法。
我们可以使用以下命令禁用ping和丢弃ICMP数据包。
$ firewall set icmpsetting type=all mode=disable
启用日志
日志记录创建 结构信息 事件发生在Windows防火墙中。这些日志可能提供有关用户、远程IP地址、端口和操作的信息。日志可用于与安全相关的机制,如日志收集和SIEM。我们可以使用 set logging
命令如下。
$ firewall set logging %systemroot%system32LogFilesFirewallpfirewall.log 4096 ENABLE
在本例中,我们通过指定日志文件路径、日志文件的最大行数和状态来启用日志记录。达到最大行数后 旧日志将被删除。
相关文章: 如何安装Nmap