ronaksorout/Firewall_configuration_tool

GitHub: ronaksorout/Firewall_configuration_tool

基于 Python 的跨平台防火墙配置工具,通过 YAML 策略文件统一管理 Windows 和 Linux 上的防火墙规则。

Stars: 1 | Forks: 0

# 🔥 防火墙配置工具 ![Python](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python&logoColor=white) ![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux-lightgrey?logo=linux) ![License](https://img.shields.io/badge/License-MIT-green) ![GUI](https://img.shields.io/badge/Interface-CLI%20%26%20GUI-orange) 一款使用 Python 构建的跨平台防火墙管理工具。只需在一个简单的 **YAML policy 文件**中定义一次防火墙规则,即可将它们应用于 **Windows**(通过 PowerShell / `netsh`)或 **Linux**(通过 `iptables`)——并提供完整的 **GUI** 和 **CLI** 接口。 ## ✨ 功能 - 🖥️ **GUI 模式** — 带有实时反馈的可视化规则管理器 - 🖱️ **CLI 模式** — 可脚本化的命令行界面 - 🔒 **Dry Run** — 在应用之前安全地预览命令 - 📜 **YAML Policies** — 便携、易读的规则定义 - 🪟 **Windows 支持** — 使用 PowerShell `New-NetFirewallRule` - 🐧 **Linux 支持** — 使用 `iptables` 命令 - 🔄 **Session 持久化** — 跨 session 保存和恢复规则 - 🛡️ **输入验证** — 防止应用格式错误的规则 ## 📋 前置条件 | 要求 | 详细信息 | |---|---| | Python | 3.8 或更高版本 | | 操作系统 | Windows 10/11 或 Linux | | 权限 | 管理员 (Windows) 或 root/sudo (Linux) | | 依赖项 | `pyyaml`, `tkinter` (内置) | ## 🚀 安装 ``` # 克隆 repository git clone https://github.com/ronaksorout/Firewall_configuration_tool.git cd Firewall_configuration_tool # 安装 dependencies pip install pyyaml ``` ## 💻 用法 ### GUI 模式 *(推荐)* 启动完整的图形界面,以可视化方式添加、删除、启用或禁用防火墙规则。 ``` python gui.py ``` ### CLI 模式 #### Dry Run(安全预览) 检查将要执行哪些命令,而**不会**应用任何更改。 ``` python main.py firewall_tool/policies/sample_policy.yaml --dry-run ``` #### 应用规则 ``` python main.py firewall_tool/policies/sample_policy.yaml ``` #### 强制覆盖平台 无论实际操作系统是什么,都针对特定平台进行测试(对于 dry-run 测试很有用)。 ``` python main.py firewall_tool/policies/sample_policy.yaml --dry-run --platform linux python main.py firewall_tool/policies/sample_policy.yaml --dry-run --platform windows ``` ## 📄 Policy 文件格式 Policy 采用 YAML 编写。请将它们放在 `firewall_tool/policies/` 中。 ``` rules: - name: "Allow HTTP" action: "allow" protocol: "tcp" port: 80 direction: "inbound" - name: "Allow HTTPS" action: "allow" protocol: "tcp" port: 443 direction: "inbound" - name: "Block Suspicious IP" action: "block" protocol: "any" remote_ip: "10.10.10.10" direction: "inbound" ``` ### 支持的字段 | 字段 | 取值 | 必填 | |---|---|---| | `name` | 任意字符串 | ✅ | | `action` | `allow`, `block` | ✅ | | `direction` | `inbound`, `outbound` | ✅ | | `protocol` | `tcp`, `udp`, `any` | ✅ | | `port` | 端口号 (例如 `80`) | ❌ | | `remote_ip` | IP 地址或 CIDR | ❌ | ## 🗂️ 项目结构 ``` firewall-configuration-tool/ ├── gui.py # Tkinter GUI application ├── main.py # CLI entry point ├── firewall_tool/ │ ├── __init__.py │ ├── config_loader.py # YAML policy parser │ ├── firewall_manager.py # Abstract base manager │ ├── platforms/ │ │ ├── windows_firewall.py # Windows PowerShell implementation │ │ └── linux_firewall.py # Linux iptables implementation │ └── policies/ │ ├── sample_policy.yaml # Example policy │ └── default_policy.yaml # Default rules applied on startup ``` ## 📸 截图 ### 主控制台 ![主控制台](https://static.pigsec.cn/wp-content/uploads/repos/cas/2b/2b5d5e80bd9aa569cde1eff50d93faf65077059fa67586ae9bf1e3140af178e9.png) ### 实时防火墙规则 ![实时防火墙规则](https://static.pigsec.cn/wp-content/uploads/repos/cas/8a/8a4265f9095b490eec2501221e3857bc8a14f8de325c318add27b8d5709853d9.png) ### 添加新规则 ![添加新规则](https://static.pigsec.cn/wp-content/uploads/repos/cas/4c/4c29f4557df7683d69f9eb4735ec7ad11c13b0e07a790b20814cb8b0c2bc7458.png) ### Dry Run ![Dry Run](https://static.pigsec.cn/wp-content/uploads/repos/cas/02/0232754617fa6b15dbd462e756b1f3a9c6380c434a4af40e0cff77e98158b053.png) ### 应用实时配置 ![应用实时配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/bf/bfb1d05cb0dd465c7e4060134ef0296a541243655b5f7a8699c6011e04c30296.png) ## 📜 许可证 本项目基于 **MIT License** 授权 — 详情请参阅 [LICENSE](LICENSE) 文件。
标签:AI合规, GUI, Python, 恶意代码分类, 无后门, 网络配置, 逆向工具, 防火墙