DhruvKachchhi/pfsense-firewall-lab

GitHub: DhruvKachchhi/pfsense-firewall-lab

一个基于 pfSense 防火墙的虚拟实验室项目,用于模拟、检测并防御 ICMP DoS 攻击,演示完整的 Blue Team 网络防御流程。

Stars: 0 | Forks: 0

# 🛡️ pfSense 防火墙实验室 – DoS 攻击模拟与防御 一个实操性的网络安全家庭实验室,演示如何使用 **pfSense CE**、**Kali Linux**、**Ubuntu Desktop** 和 **Wireshark** 进行**网络隔离、防火墙管理、攻击模拟、流量分析以及基于防火墙的防御**。 ## 📌 项目概述 本项目演示了** pfSense 防火墙**如何在隔离的虚拟网络中检测并防御 **ICMP 拒绝服务 攻击**。 该实验室完全在 **VirtualBox** 中构建,使用了三台虚拟机: - **Kali Linux** – 外部攻击者 - **pfSense CE 2.7.2** – 边界防火墙和网关 - **Ubuntu Desktop 22.04** – 内部受害者主机 攻击是使用 **hping3** 生成的,并在 **Wireshark** 中进行了分析,最终通过在 pfSense 上创建 **WAN 防火墙规则** 成功防御。防火墙日志和网络流量分析被用于验证恶意流量是否已被成功拦截。 ## 🎯 目标 - 使用 pfSense 构建隔离的虚拟网络。 - 配置 WAN 和 LAN 接口。 - 在 LAN 上配置 DHCP 服务。 - 使用 hping3 模拟 ICMP flood 攻击。 - 使用 Wireshark 捕获并分析攻击流量。 - 配置防火墙规则以拦截恶意流量。 - 使用 pfSense 防火墙日志验证防御效果。 - 演示基本的 Blue Team 网络防御概念。 ## 🛠️ 使用的技术 | 类别 | 技术 | |----------|--------------| | 防火墙 | pfSense CE 2.7.2 | | 操作系统 | Kali Linux, Ubuntu Desktop 22.04 | | 虚拟化 | Oracle VirtualBox | | 网络分析 | Wireshark | | 攻击模拟 | hping3 | | 网络 | TCP/IP, ICMP, DHCP, Static Routing | | 安全 | 防火墙规则, 包过滤, 流量监控 | ## 💡 展示的技能 - 防火墙管理 - 网络隔离 - TCP/IP 网络 - ICMP 协议分析 - 数据包捕获与分析 - 防火墙规则管理 - 网络流量监控 - DoS 攻击模拟 - 安全事件验证 - 虚拟实验室部署 - DHCP 配置 - Blue Team 基础 ## 🏗️ 实验室架构 该实验室由在 Oracle VirtualBox 中运行的三台虚拟机组成。Kali Linux 作为 WAN 网络上的外部攻击者,pfSense 充当边界防火墙和网关,而 Ubuntu Desktop 作为内部 LAN 上的受害者主机。防火墙控制着两个网段之间的流量,并通过防火墙规则缓解恶意流量。 ## 🌐 网络拓扑

pfSense Network Topology

## 🖥️ 实验室环境 | 组件 | 配置 | |-----------|---------------| | Hypervisor | Oracle VirtualBox 7.x | | 防火墙 | pfSense CE 2.7.2 | | 攻击机 | Kali Linux | | 受害机 | Ubuntu Desktop 22.04 | | WAN 网络 | 桥接网卡 (家庭网络) | | LAN 网络 | 内部网络 (192.168.1.0/24) | | pfSense WAN IP | 10.182.109.184 | | pfSense LAN IP | 192.168.1.1 | | Kali Linux IP | 10.182.109.85 | | Ubuntu Desktop IP | 192.168.1.100 | | 攻击工具 | hping3 | | 分析工具 | Wireshark | ## 🔀 攻击流程 ``` Kali Linux │ │ ICMP Flood (hping3) ▼ +------------------+ | pfSense | | Firewall Gateway | +------------------+ │ ▼ Ubuntu Desktop ↓ Wireshark captures the traffic ↓ pfSense Firewall Rule blocks the attack ↓ Firewall Logs confirm blocked packets ↓ Traffic returns to normal ``` ## ⚙️ 项目方法论 该实验室采用结构化的方法进行实施,以模拟真实的网络安全场景:外部攻击者试图对受防火墙保护的内部主机发起拒绝服务 攻击。 ### 阶段 1 – 虚拟实验室部署 - 使用 Oracle VirtualBox 创建了三台虚拟机。 - 安装并配置了: - pfSense CE 2.7.2 - Kali Linux(攻击者) - Ubuntu Desktop 22.04(受害者) - 配置了桥接的 WAN 网络和隔离的内部 LAN。 ### 阶段 2 – 防火墙配置 - 在 pfSense 中分配了 WAN 和 LAN 接口。 - 将 LAN 接口 IP 地址配置为 **192.168.1.1/24**。 - 在 LAN 上启用了 DHCP 服务器。 - 配置了 DHCP 地址池 (**192.168.1.100 – 192.168.1.199**)。 - 创建了防火墙规则,允许从 WAN 通过 HTTPS 访问 pfSense WebGUI。 - 添加了临时防火墙规则,允许 Kali Linux 攻击者与 Ubuntu 主机之间进行通信以进行攻击模拟。 ### 阶段 3 – 连接验证 - 验证了所有虚拟机的 IP 地址分配。 - 在 Kali Linux 上添加了静态路由,以通过 pfSense 访问内部 LAN。 - 通过从 Kali Linux 向 Ubuntu Desktop 发送 ICMP Echo 请求 来验证通信是否成功。 ### 阶段 4 – 攻击模拟 - 在 Ubuntu Desktop 上使用 Wireshark 启动了数据包捕获。 - 使用 **hping3** 从 Kali Linux 发起了 ICMP Flood 攻击。 - 观察到达受害者主机的 ICMP 流量显著增加。 - 确认了在攻击期间持续的数据包传输。 ### 阶段 5 – 检测与分析 - 使用 Wireshark 监控实时数据包捕获。 - 通过数据包分析和流量统计验证了 ICMP flood。 - 生成了流量图表以可视化攻击量。 ### 阶段 6 – 防火墙防御 - 在 pfSense WAN 接口上创建了**拦截规则**。 - 配置该规则以拦截源自攻击者 IP 地址的流量。 - 启用了防火墙规则的日志记录。 - 将拦截规则放置在临时允许规则之上,以确保正确的规则处理顺序。 ### 阶段 7 – 验证 - 确认应用防火墙规则后 ICMP flood 流量已停止。 - 通过 pfSense 防火墙日志验证了被拦截的数据包。 - 使用 Wireshark I/O 图表比较了防御前后的网络流量。 - 验证了防火墙成功缓解了模拟的 DoS 攻击。 ## 📸 项目演示 以下截图突出了项目的主要阶段,从初始防火墙配置到攻击模拟、流量分析、缓解和验证。 ### 1. pfSense 仪表盘 成功配置后,pfSense 仪表盘显示防火墙的整体状态、活动接口和系统信息。

pfSense Dashboard

### 2. 实验室网络配置 网络配置显示了攻击者 (Kali Linux)、pfSense 防火墙接口和受害者 (Ubuntu Desktop) 的 IP 寻址。

Lab Network Configuration

### 3. DHCP 服务器配置 LAN 接口上的 DHCP 配置,为内部网络中的主机提供自动 IP 地址分配。

DHCP Server Configuration

### 4. 连接验证与流量捕获 在实施防火墙防御之前,验证 Kali Linux 和 Ubuntu Desktop 之间的连接,同时使用 Wireshark 捕获 ICMP 流量。

Connectivity Verification

### 5. 防火墙拦截规则配置 在 WAN 接口上创建防火墙规则,以拦截由攻击者生成的恶意 ICMP 流量。

Firewall Rule Configuration

### 6. 最终防火墙规则 最终的 pfSense 防火墙规则集,显示拦截规则位于允许规则之上,以确保正确过滤恶意流量。

Final Firewall Rules

### 7. 防火墙日志 防火墙日志确认在攻击期间生成的 ICMP 数据包已被 pfSense 成功拦截。

Firewall Logs

### 8. Wireshark 流量图表 使用 Wireshark I/O 图表进行流量分析,展示了攻击期间 ICMP 流量的激增以及防火墙防御后的减少情况。

Wireshark Traffic Graph

# 📊 结果与验证 该项目成功演示了基于网络的拒绝服务 攻击的完整生命周期,以及如何使用 pfSense 防火墙进行防御。 ### 主要结果 - 使用 Oracle VirtualBox 成功部署了隔离的虚拟网络。 - 将 pfSense 配置为具有独立 WAN 和 LAN 接口的边界防火墙。 - 为内部网络启用了 DHCP 服务。 - 使用 **hping3** 从 Kali Linux 模拟了 ICMP Flood 攻击。 - 使用 **Wireshark** 捕获并分析了攻击流量。 - 实施了 WAN 防火墙规则以拦截恶意 ICMP 流量。 - 通过 **pfSense 防火墙日志** 验证了成功的防御。 - 使用 **Wireshark I/O 图表** 确认了流量的减少。 # 🎯 展示的技能 本项目展示了以下方面的实践经验: - 防火墙管理 - 网络隔离 - TCP/IP 网络 - ICMP 协议分析 - DHCP 配置 - 防火墙规则管理 - 流量分析 - 数据包捕获 - 网络监控 - 安全验证 - 虚拟实验室部署 - Blue Team 基础 # 📚 关键学习点 在此项目中,我获得了以下方面的实践经验: - 使用 pfSense 设计隔离的网络架构。 - 理解 WAN 和 LAN 网络隔离。 - 配置防火墙规则以允许和拦截网络流量。 - 在受控实验室环境中模拟 DoS 攻击。 - 使用 Wireshark 检查和分析网络数据包。 - 监控防火墙日志以验证安全控制措施。 - 理解防火墙规则顺序和日志记录的重要性。 - 应用 Blue Team 技术来检测和缓解网络攻击。 # 📂 仓库结构 ``` pfsense-firewall-lab/ │ ├── diagrams/ │ └── network-topology.png │ ├── screenshots/ │ ├── 01-pfsense-dashboard.png │ ├── 02-lab-network-configuration.png │ ├── 03-dhcp-server-configuration.png │ ├── 04-connectivity-verification.png │ ├── 05-block-rule-configuration.png │ ├── 06-final-firewall-rules.png │ ├── 07-firewall-logs-blocked.png │ └── 08-wireshark-traffic-graph.png │ ├── docs/ ├── LICENSE └── README.md ``` # 📖 参考 - pfSense CE 文档 - Oracle VirtualBox 文档 - Wireshark 用户指南 - Kali Linux 文档 - Ubuntu Server 文档 - hping3 文档 # 📝 许可证 本项目基于 **MIT License** 授权。
标签:pfSense, Wireshark, 句柄查看, 并发处理, 拒绝服务攻击, 网络安全实验, 网络流量分析, 防火墙配置