ronaksorout/Firewall_configuration_tool
GitHub: ronaksorout/Firewall_configuration_tool
基于 Python 的跨平台防火墙配置工具,通过 YAML 策略文件统一管理 Windows 和 Linux 上的防火墙规则。
Stars: 1 | Forks: 0
# 🔥 防火墙配置工具




一款使用 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
```
## 📸 截图
### 主控制台

### 实时防火墙规则

### 添加新规则

### Dry Run

### 应用实时配置

## 📜 许可证
本项目基于 **MIT License** 授权 — 详情请参阅 [LICENSE](LICENSE) 文件。
标签:AI合规, GUI, Python, 恶意代码分类, 无后门, 网络配置, 逆向工具, 防火墙