deminimis/minimalfirewall
GitHub: deminimis/minimalfirewall
一个轻量级的 Windows 防火墙前端工具,通过锁定模式、实时告警和规则审计等功能帮助用户精细化管控程序网络行为,防止数据外泄和不需要的遥测。
Stars: 236 | Forks: 17
Minimal Firewall
Minimal Firewall 增强了内置的 Windows Firewall,默认阻止所有未知的网络连接,从而让您拥有完全的控制权。当应用程序尝试连接时,它会提示您进行操作,让您能够缓解恶意软件、阻止不需要的遥测并防止数据泄露。使用 Minimal Firewall,任何应用程序都绝不会在未经您明确许可的情况下“向外发送数据”。
与大多数其他 Firewall 程序不同,Minimal Firewall 充当前端,避免了通过操作底层 WFP 来扩大计算机的攻击面。Minimal Firewall 还具有审核功能,可以检查添加到 Windows Firewall 的新规则。当您使用 WFP 应用程序时,它充当 Windows Firewall 之上的过滤器。问题在于 Microsoft 为其防火墙规则设置了不同级别的重要性(例如,在组策略编辑器中更改的或与 Windows Defender 相关的规则可能具有更高的重要性)。因此,如果过滤器和 Windows Firewall 规则发生冲突,并不清楚哪一个会优先。Minimal Firewall 通过直接使用 Windows Firewall 来避免这个问题,而无需关闭 Windows 安全的这一关键部分。
### 💾 在 [此处](https://github.com/deminimis/minimalfirewall/releases) 下载最新版本
或使用 Winget 安装(在等待批准期间,版本可能会落后:
winget install Deminimis.MinimalFirewall
#### 前置条件
如果您未安装 .NET 10,可以从 Microsoft [此处](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) 下载桌面运行时(.NET Desktop Runtime x64),或通过 Winget 安装:`winget install Microsoft.DotNet.DesktopRuntime.10`
## 用户指南
该程序的设计直观易用。有关简明的用户指南,请参阅 [wiki](https://github.com/deminimis/minimalfirewall/wiki/Minimal-Firewall-User-Guide)。
## 核心功能
- **锁定模式:** Minimal Firewall 的核心。启用后,它会将 Windows Firewall 配置为阻止所有没有明确“允许”规则的出站连接。
- **实时连接警报:** 当被阻止的程序尝试访问网络时获取即时通知。可选择用于立即操作的交互式弹出窗口,或在仪表板上稍后查看的无提示应用内警报。
- **简单与高级规则创建:**
- **程序规则:** 一键允许或阻止应用程序。
- **高级规则:** 基于协议(TCP/UDP/ICMP)、本地/远程端口、IP 地址、服务和网络配置文件(域、专用、公用)创建详细规则。
- **隔离模式 (Beta):** 位于“审核”选项卡中,此可选安全功能会自动禁用由第三方应用程序创建的任何新防火墙规则。这些规则将保持禁用状态,直到您明确查看并接受它们。
- **防火墙审核:** “审核”选项卡会监视由其他应用程序创建、修改或删除的规则。
- **可视化验证:** 根据数字签名对更改进行颜色编码(绿色代表受信任,黄色代表第三方,红色代表未签名/未知)。
- **批量管理:** 选择多个条目以批量允许、禁用或删除规则。
- **时间线:** 准确查看规则添加到系统的具体时间。
- **实时流量监控:** “实时连接”选项卡通过优化轮询,实时显示系统上所有活动的 TCP 连接,并显示哪个进程连接到了哪个远程地址。
- **通配符规则:** 通过创建应用于特定文件夹中任何可执行文件的规则,轻松管理频繁更新的应用程序(如 Web 浏览器)。对通配符列表的更新现在会立即反映。
- **规则导入与导出**:将您的整个规则配置(包括高级和通配符规则)保存到单个 JSON 文件中。这非常适合备份或将您的设置迁移到新计算机。路径使用环境变量(%LOCALAPPDATA% 等)实现可移植性,以便于共享。您可以选择将导入的规则添加到现有规则集中,也可以完全替换它们。
- **信任发布者/数字证书**:自动允许使用受信任数字证书签名的应用程序。您还可以管理自己的受信任发布者列表,以自动允许他们创建的任何软件。
- **浅色与深色主题:** 简洁现代的用户界面,日夜护眼,并支持多显示器设置的 DPI 缩放。
- **100% 本地化和私密:** Minimal Firewall 不包含任何遥测,不连接到互联网,并将所有规则和日志本地存储在您的 `%LocalAppData%` 文件夹中。
- **便携版:** Minimal Firewall 是一个单一的可执行文件,无需安装。所有规则都是 Windows Firewall 原生的,因此不会留下任何自定义驱动程序或服务。
## 为什么使用 Minimal Firewall?
Minimal Firewall 通过管理原生的 Windows Firewall 提供了一种安全且集成的方法,从而无需自定义驱动程序或进行有风险的系统修改。
|功能|Minimal Firewall|TinyWall|SimpleWall|Fort Firewall|
|---|---|---|---|---|
|**大小**|~2MB|~2MB|~1MB|~6MB|
|**便携性**|✅|❌|✅|✅|
|**需要关闭核心隔离?**|否|否|否|是|
|**连接警报**|✅|❌|✅|✅|
|**高级规则编辑器**|✅|❌|✅|✅|
|**防火墙更改审核**|✅|❌|❌|❌|
|**通配符**|✅|❌|❌|✅|
|**开源**|✅|✅|✅|✅|
|**避免底层过滤器**|✅|✅|❌|❌|
## 截图




## 常见问题
1. **我需要保持应用程序运行吗?**
- 您不需要保持应用程序运行即可确保防火墙规则得到强化。这些是持久性的更改,直到您在应用程序中将其解锁。您只需在想要授权新程序、更改规则或使用隔离模式时运行该应用程序。通配符规则只有在应用程序打开(或关闭到系统托盘)时才会自动添加。如果应用程序已关闭,通配符文件夹的任何新更新都将静默失败,直到您再次打开该应用程序。
2. **如何彻底卸载 Minimal Firewall?**
- 因为该应用程序是便携版的,您只需删除可执行文件即可。要删除配置文件,请删除位于 `%LocalAppData%` 中的 `MinimalFirewall` 文件夹(您可以通过“设置”选项卡快速打开此文件夹)。要清理它创建的规则,您可以在“设置”选项卡上选择两个选项:“删除所有 Minimal Firewall 规则”(仅删除应用程序创建的规则)或“还原 Windows Firewall”(将整个防火墙配置重置为出厂默认设置)。
3. **这可以与其他杀毒软件或安全软件一起使用吗?**
- 是的。Minimal Firewall 旨在与其他安全产品兼容。它不安装任何内核驱动程序或底层服务。它专门使用官方的 `NetFwTypeLib` COM 库,这是用于管理内置 Windows Firewall 的标准 Microsoft API。这可以避免在使用自带过滤驱动程序的防火墙时可能发生的那种冲突。
## 默认安全
通过利用经过实战检验的 Windows Defender Firewall,Minimal Firewall 避免了重复造轮子。它使用有文档记录的 Microsoft API 来确保稳定性和安全性。
- **无需服务:** 创建持久性的 Windows Firewall 规则,从而免去了对其自身后台服务的需求。
- **无网络活动:** 应用程序本身不进行任何网络连接。没有遥测,没有更新检查,没有“向外发送数据”。
- **审核:** 允许您查看其他应用程序是否静默添加或更改了 Windows Firewall 中的规则。
### 安全的规则创建
- 遵循 Microsoft 的[最佳实践](https://support.microsoft.com/en-us/windows/risks-of-allowing-apps-through-windows-firewall-654559af-3f54-3dcf-349f-71ccd90bcc5c) 进行防火墙管理,倾向于使用基于应用程序的规则而不是有风险的基于端口的规则。
- 规则是特定于程序的,绑定到可执行文件的路径或 UWP 应用的包系列名称,从而防止恶意程序在同一端口上冒充被允许的应用程序。
## 技术架构
Minimal Firewall 是一款在 **.NET 10** 平台上使用 **C#** 编写的 **Windows Forms** 应用程序。它充当原生 **具有高级安全性的 Windows Firewall** 的用户友好型管理层。
- **核心交互:** 它使用 `NetFwTypeLib` COM 互操作库与 `INetFwPolicy2` 接口进行交互,这是管理 Windows Firewall 规则和策略的标准 API。
- **连接警报:** 它在 Windows 安全事件日志中侦听事件 ID `5157`(“Windows Filtering Platform 阻止了一个连接”)。这是一种原生、高效的方法,无需自定义驱动程序即可检测被阻止的连接尝试。
- **审核:** 它使用 `ManagementEventWatcher` (WMI) 来监视 `MSFT_NetFirewallRule` 类的实时更改,从而允许它检测其他进程何时修改防火墙规则集。它维护一个完整的本地缓存,以准确跟踪规则历史记录和更改。
- **实时流量:** 实时连接监视器使用 `iphlpapi.dll` 中的 `GetExtendedTcpTable` 函数来检索活动 TCP 连接及其关联的进程 ID 列表。
- **性能:** UI 利用双缓冲实现平滑的数据网格渲染,并优化了实时连接的轮询,以最大程度地减少 CPU 使用率。
- **无驱动程序:** 它不使用任何自定义内核驱动程序,完全依赖有文档记录的 Windows API 以实现最大的稳定性和安全性。
## 特别感谢
对于深色主题,Minimal Firewall 使用了 [Dark-Mode-Forms](https://github.com/BlueMystical/Dark-Mode-Forms) 的修改版本。
## 贡献
欢迎贡献!请提交 issue、讨论或 pull request。欢迎在讨论选项卡中随时提出问题或发起讨论。
## 构建说明
#### 前置条件
* Visual Studio Community 2026
* 安装 Visual Studio 时,请确保选择“.NET desktop development”工作负载(其中包括 Windows Forms)。
#### 第 1 步:克隆此仓库
* 当您打开 Visual Studio 时,如果尚未克隆仓库,请点击克隆该仓库。
#### 第 2 步:打开 .sln
* 打开 `.sln`。它现在应该能够正确构建。如果不能,请转至下一步。
#### 第 3 步:安装依赖项
* 项目打开后,右键单击“解决方案资源管理器”中的“Solution 'MinimalFirewall'”,然后选择“Restore NuGet Packages”。
* 如果这不起作用,请转到 Tools > NuGet Package Manager > Manage NuGet Packages for Solution.... 安装以下两个包:
* Microsoft.Extensions.Caching.Memory
* System.Management
#### 第 4 步:检查 COM 引用
* 在“解决方案资源管理器”中,展开 MinimalFirewall 项目,然后展开 Dependencies > COM。您应该会看到 NetFwTypeLib。如果它带有一个黄色的警告图标,请右键单击它并选择“Remove”。然后,右键单击 Dependencies 并选择 Add COM Reference.... 在列表中,找到并勾选“NetFwTypeLib”的复选框。
#### 第 5 步:构建
* 将配置管理器设置为 x64,然后进行构建。
### 感谢
@shewolf56
@Hanatarou
## 许可证
Minimal Firewall 基于 GNU Affero General Public License v3 (AGPL v3) 授权。有关商业或专有许可,请联系我。标签:Conpot, IP 地址批量处理, Windows安全, Windows防火墙, Winget, 前端控制, 勒索软件防护, 子域名枚举, 恶意软件防御, 无遥测, 系统安全, 网络安全, 网络安全, 规则审计, 轻量级软件, 连接警报, 防火墙, 阻止回传, 隐私保护, 隐私保护, 零信任网络, 默认拒绝